web-dev-qa-db-ja.com

OSError:[Errno 13]権限が拒否されました: '/ var / lib / pgadmin'

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'

ここでキックを頂けますか?

8
Michael

権限エラーは、ユーザー '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.
2
abr

何のパーミッションも変更したくない場合は、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を再起動して確認します。

28
Murtuza Z

手動でフォルダーを作成(または、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のみに権限を割り当てます。

0
mehmet

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
0
Preston

PgAdmin4 v3.1でも同じ問題が発生しました。Sudo python pgAdmin4.pyそしてそれは働いた!。

0
Mile

いくつかの手順で問題を解決しました1. Host vmに空のフォルダーを作成します

mkdir /private/var/lib/pgadmin
chmod 777 /private/var/lib/pgadmin
  1. pgadmin Dockerイメージを開始する
docker pull dpage/pgadmin4
docker run -p 80:80\
    -v /private/var/lib/pgadmin:/var/lib/pgadmin \
     ...
  1. このように新しく作成されたファイル構造が表示されます
/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]

その結果、アプリケーションが機能し、ユーザー設定が保存されます。

0
Alex F