Ubuntu 16.04.3
J'aimerais installer pgAdmin:
J'ai créé un virtualenv avec Python 2.
Ensuite, installez pgAdmin 4 v2.0:
pip install https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v2.0/pip/pgadmin4-2.0-py2.py3-none-any.whl
Il est temps de lancer 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'
Pourriez-vous me donner un coup de pied ici?
Erreur de permission signifie que l'utilisateur 'michael' (/ var/lib a drwxr-xr-x) a l'autorisation d'exécution mais n'a pas l'autorisation d'écrire sur le dossier (en fonction de votre commentaire sur les informations de dossier ci-dessous) Une des solutions que vous pouvez utiliser pour pouvoir accéder librement au dossier serait quelque chose comme:
chown -R michael:root /path/to/the/directory
La deuxième partie de la réponse, vous l'avez compris @Michael. télécharger pgadmin en utilisant la commande:
wget https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v1.5/pip/pgadmin4-1.5-py2.py3-none-any.whl
puis exécutez la commande:
pip install pgadmin4*.whl.
Si vous ne voulez changer aucune permission, vous pouvez toujours écraser les chemins par défaut dans pgAdmin4.
Créez un fichier nommé config_local.py (s'il n'est pas déjà présent) sur votre emplacement d'installation ../pgadmin4/web/
Emplacement du fichier dans mon cas: /usr/local/lib/python2.7/dist-packages/pgadmin4/config_local.py
et ajoutez le code suivant dans votre 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')
Redémarrez pgAdmin4 et vérifiez.
créez les dossiers manuellement (ou ajoutez-les à votre script d'installation pgAdmin, le cas échéant) et attribuez les autorisations:
Sudo mkdir "/var/log/pgadmin"
Sudo chmod a+wrx "/var/log/pgadmin"
Sudo mkdir "/var/lib/pgadmin"
Sudo chmod a+wrx "/var/lib/pgadmin"
cela n'affecterait pas d'autorisations à la totalité du /var/log
, mais uniquement au /var/log/pgadmin
uniquement.
J'ai installé pgadmin4 v2.1 sur Ubuntu 16.04 et j'ai eu ce problème. Voir la dernière ligne de code. (J'exécute ceci dans un fichier de script, paresseux.) J'ai également installé la version 2.0 de cette façon à titre de test pour voir si c'est vraiment un correctif. Je n'ai pas eu à utiliser 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
J'ai eu le même problème avec pgAdmin4 v3.1, je viens d'écrire Sudo python pgAdmin4.py
et cela a fonctionné !.