buntu 16.04.
PgAdminをインストールします。
私はpython 2。
次に、pgAdmin 4 v2.0をインストールします。
pip install https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v2.0/pip/pgadmin4-2.0-py2.py3-none-any.whl
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'
ここでキックを頂けますか?
権限エラーは、ユーザー 'michael'(/ var/libにはdrwxr-xr-x)が実行権限を持っているが、フォルダーへの書き込み権限がないことを意味します(以下のフォルダー情報のコメントによると)。フォルダに自由にアクセスできるようにするために使用できるソリューションの1つは、次のようなものです。
chown -R michael:root /path/to/the/directory
答えの後半では、@ Michaelを理解しました。次のコマンドを使用してpgadminをダウンロードします。
wget https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v1.5/pip/pgadmin4-1.5-py2.py3-none-any.whl
次にコマンドを実行します:
pip install pgadmin4*.whl.
何のパーミッションも変更したくない場合は、pgAdmin4のデフォルトパスをいつでもオーバーライドできます。
インストール場所../pgadmin4/web/
にconfig_local.pyというファイルを作成します(まだ存在しない場合)。
私の場合のファイルの場所:/usr/local/lib/python2.7/dist-packages/pgadmin4/config_local.py
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')
PgAdmin4を再起動して確認します。
手動でフォルダーを作成(または、pgAdminインストールスクリプトがある場合は、それに追加)して、権限を割り当てます。
Sudo mkdir "/var/log/pgadmin"
Sudo chmod a+wrx "/var/log/pgadmin"
Sudo mkdir "/var/lib/pgadmin"
Sudo chmod a+wrx "/var/lib/pgadmin"
これは、/var/log
全体に権限を割り当てるのではなく、/var/log/pgadmin
のみに権限を割り当てます。
Ubuntu 16.04にpgadmin4 v2.1をインストールしましたが、この問題がありました。コードの最後の行を参照してください。 (これを怠惰なスクリプトファイルで実行します。)2.0をこの方法でインストールして、本当に修正されているかどうかを確認するテストも行いました。 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
PgAdmin4 v3.1でも同じ問題が発生しました。Sudo python pgAdmin4.py
そしてそれは働いた!。
いくつかの手順で問題を解決しました1. Host vmに空のフォルダーを作成します
mkdir /private/var/lib/pgadmin chmod 777 /private/var/lib/pgadmin
docker pull dpage/pgadmin4 docker run -p 80:80\ -v /private/var/lib/pgadmin:/var/lib/pgadmin \
...
/private/var/lib/pgadmin -rw-------. 1 5050 5050 757760 Jan 13 23:11 pgadmin4.db drwx------. 2 5050 5050 50 Jan 13 23:00 sessions drwxr-xr-x. 3 5050 5050 31 Jan 13 23:17 storage
したがって、UID 5050がターゲット1です。4。pgadmin4.dbをターゲットディレクトリにコピーし、適切なUIDを適用します[私の場合は5050]
その結果、アプリケーションが機能し、ユーザー設定が保存されます。