OSError: [Errno 13] Permission denied: '/var/lib/pgadmin'

倾然丶 夕夏残阳落幕 提交于 2020-01-01 05:02:49

问题


Ubuntu 16.04.3

I'd like to install pgAdmin:

I hvae created a virtualenv with python 2.

Then install pgAdmin 4 v2.0:

pip install https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v2.0/pip/pgadmin4-2.0-py2.py3-none-any.whl

It's time to run pgAdmin:

(pgadmin4) michael@michael-desktop:~/PycharmProjects/venv$ python pgadmin4/lib/python2.7/site-packages/pgadmin4/pgAdmin4.py
Traceback (most recent call last):
  File "pgadmin4/lib/python2.7/site-packages/pgadmin4/pgAdmin4.py", line 55, in <module>
    exec(open(file_quote(setupfile), 'r').read())
  File "<string>", line 46, in <module>
  File "/home/michael/PycharmProjects/venv/pgadmin4/lib/python2.7/site-packages/pgadmin4/pgadmin/setup/data_directory.py", line 23, in create_app_data_directory
    _create_directory_if_not_exists(os.path.dirname(config.SQLITE_PATH))
  File "/home/michael/PycharmProjects/venv/pgadmin4/lib/python2.7/site-packages/pgadmin4/pgadmin/setup/data_directory.py", line 15, in _create_directory_if_not_exists
    os.mkdir(_path)
OSError: [Errno 13] Permission denied: '/var/lib/pgadmin'

Could you give me a kick here?


回答1:


Permission error means the user 'michael' (/var/lib has drwxr-xr-x) has the permission to execute but doesn't have the permission to write on the folder (according to your comment of the folder info below). One of the solutions you can use to be able to access freely the folder would be something like:

chown -R michael:root /path/to/the/directory

The second part of the answer, you've figured it out @Michael. downloading pgadmin by using the command:

wget https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v1.5/pip/pgadmin4-1.5-py2.py3-none-any.whl 

and then execute command:

pip install pgadmin4*.whl.



回答2:


If you do not want to change the permission of anything, you can always override default paths in pgAdmin4.

Create a file named config_local.py (if not already present) at your installation location ../pgadmin4/web/

File location in my case: /usr/local/lib/python2.7/dist-packages/pgadmin4/config_local.py

and add following code in your config_local.py,

import os
DATA_DIR = os.path.realpath(os.path.expanduser(u'~/.pgadmin/'))
LOG_FILE = os.path.join(DATA_DIR, 'pgadmin4.log')
SQLITE_PATH = os.path.join(DATA_DIR, 'pgadmin4.db')
SESSION_DB_PATH = os.path.join(DATA_DIR, 'sessions') 
STORAGE_DIR = os.path.join(DATA_DIR, 'storage')

Restart pgAdmin4 and check.




回答3:


create the folders manually (or add to your pgAdmin installation script, if there is one), and assign the permissions:

sudo mkdir "/var/log/pgadmin"
sudo chmod a+wrx "/var/log/pgadmin"

sudo mkdir "/var/lib/pgadmin"
sudo chmod a+wrx "/var/lib/pgadmin"

this would not assign permissions to the entire /var/log but just for the /var/log/pgadmin only.




回答4:


I installed pgadmin4 v2.1 on Ubuntu 16.04 and had this problem. See the last line of code. (I run this in a script file, lazy.) I also installed 2.0 this way as a test to see if it really is a fix. I did not have to use config_local.py.

cd ..
cd home/vagrant

sudo apt-get install build-essential libssl-dev libffi-dev libgmp3-dev virtualenv python-pip libpq-dev python-dev

virtualenv .pgadmin4
cd .pgadmin4
source bin/activate

wget https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v2.1/pip/pgadmin4-2.1-py2.py3-none-any.whl

pip install pgadmin4-2.1-py2.py3-none-any.whl

# For this either use your remote host panel to edit the file or:
nano lib/python2.7/site-packages/pgadmin4/config.py
# Change:
# DEFAULT_SERVER = '0.0.0.0'

# Here is the trick.  Run this boot up file with sudo.  This fixed it for me.
sudo python lib/python2.7/site-packages/pgadmin4/pgAdmin4.py



回答5:


I had the same problem with pgAdmin4 v3.1, I just write sudo python pgAdmin4.py and it worked!.



来源:https://stackoverflow.com/questions/46707935/oserror-errno-13-permission-denied-var-lib-pgadmin

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!