Установка pgadmin4 на Linux
12 марта 2021 г. 6:06
Установка pgadmin через docker
Docker позволяет легко запустить контейнер pgadmin. Возможно, это самый лёгкий способ установки pgadmin.
На мой взгляд ещё проще устанавливать сразу связку postgresql вместе с pgadmin, используя Docker. Вы можете взглянуть на мой репозиторий, в котором содержится инструкция по запуску postgresql и pgadmin: https://github.com/vivazzi/docker_pg_admin
Если вы решили отдельно поставить pgAdmin через Docker, то сначала нужно скачать образ:
docker pull dpage/pgadmin4
Затем уже можно запустить контейнер:
docker run -p 80:80 \ -e 'PGADMIN_DEFAULT_EMAIL=mail@mail.com' \ -e 'PGADMIN_DEFAULT_PASSWORD=my_password' \ -d dpage/pgadmin4
Теперь в браузере по адресу localhost
запустится pgadmin.
Установка через pipenv
Для более лёгкой установки pgAdmin через pipenv я написал инсталятор py_pg_admin, который устанавливает pgAdmin, создаёт короткую команду терминала и добавляет иконку в Меню Линукса.
Инсталятор py_pg_admin находится на гитхабе: https://github.com/vivazzi/py_pg_admin
Внимание: Для начала убедитесь, что у вас актуальная версия pip и pipenv:
Установка и обновление pip и pipenv
Иначе pipenv может пропустить ошибку несовместимости пакетов или не установить требуемые пакеты и pgAdmin может не запуститься.
Установка pgAdmin через pipenv, используя py_pg_admin
Прежде всего удалите pgadmin3 или pgadmin4, если вы пытались установить его через исходный код или apt:
sudo apt purge pgadmin3 pgadmin4 sudo apt autoremove
Теперь выполните следующие шаги:
1. Откройте терминал и склонируйте репозиторий куда-нибудь в свою домашнюю папку.
git clone https://github.com/vivazzi/py_pg_admin.git cd py_pg_admin
2. (Опционально) Скопируйте local_settings_sample.py
в local_settings.py
и установите желаемые параметры. Установщик содержит несколько сохранённых конфигураций Pipfile-ов. Чтобы посмотреть доступные, введите:
python3 pre_install.py --help
3. Запустите pre_install.py
и следуйте инструкциям:
python3 pre_install.py
Эта команда создаёт папку .venv
в папке проекта для того, чтобы pipenv установил виртуальное окружение рядом с проектом. Также команда попытается добавить Pipfile
, указанной версии в local_settings.py
, если вы сами его не создавали.
4. Убедитесь, что у вас установлен pipenv >= 2020.11.15
(более старые версии могут пропускать требуемые зависимые пакеты). Проверьте ваш Pipfile
(создайте ваш Pipfile
, если хотите использовать другую версию pgAdmin) и установите пакеты:
pipenv sync
5. Запустите в терминале:
sudo python3 post_install.py
Теперь вы можете запускать pgAdmin в терминале: pgAdmin[major version]
. Например:
pgadmin4
Для удобства вы можете использовать иконку в Меню Линукса в разделе Программирование, например: Меню\Программирование\pgAdmin 4
После запуска иконки будет открыт терминал со следующей инструкцией:
Starting pgAdmin 4. Please navigate to http://127.0.0.1:5050 in your browser. Using production server...
Теперь вы можете открыть pgAdmin на странице http://127.0.0.1:5050
в вашем браузере.
Решение ошибок
Репозиторий https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/ не содержит файла Release
pgAdmin4-5.0 можно установить через apt. Следуя инструкции вы должны добавить репозиторий:
sudo sh -c 'echo "deb https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main" > /etc/apt/sources.list.d/pgadmin4.list
Но при этом может возникнуть ошибка отсутствия apt для вашей версии Линукс. Например, как это было с моим Linux Mint версии ulyssa:
Репозиторий «https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/ulyssa pgadmin4 Release» не содержит файла Release
Чтобы исправить это, сначала выберите доступную версию дистрибутива https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/. Например, для себя я выбрал groovy.
Затем откройте файл /etc/apt/sources.list.d/pgadmin4.list
:
nano /etc/apt/sources.list.d/pgadmin4.list
И впишите вместо вашей версии Linux выбранную версию. Например, в моём случае я сделал так:
# Было deb https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/ulyssa pgadmin4 main # Стало deb https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/groovy pgadmin4 main
ModuleNotFoundError: No module named 'cheroot'
При ошибке:
pgAdmin Command: "/usr/pgadmin4/venv/bin/python3 /usr/pgadmin4/web/pgAdmin4.py" Traceback (most recent call last): File "../web/pgAdmin4.py", line 16, in <module> from cheroot.wsgi import Server as CherootServer ModuleNotFoundError: No module named 'cheroot'
Установите cheroot:
pipenv install cheroot
Command 'krb5-config --libs gssapi' returned non-zero exit
При ошибке:
subprocess.CalledProcessError: Command 'krb5-config --libs gssapi' returned non-zero exit status 1
Нужно установить libkrb5-dev и gssapi:
$ sudo ln -s /usr/bin/krb5-config.mit /usr/bin/krb5-config $ sudo ln -s /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2 /usr/lib/libgssapi_krb5.so $ sudo apt-get install python-pip libkrb5-dev $ sudo pip install gssapi
ValueError: User model must contain fs_uniquifier as of 4.0.0
При установке pgAdmin4-4.29 через pip или pipenv может возникнуть ошибка:
ValueError: User model must contain fs_uniquifier as of 4.0.0
Дело в том, что устанавливается версия Flask-Security несовместимая с версией Flask 1.0.2. Добавьте в requirements.txt или Pipfile подходящую версию Flask-Security, например, так:
[[source]] url = "https://pypi.org/simple" verify_ssl = true name = "pypi" [packages] pgadmin4 = {file = "https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v4.29/pip/pgadmin4-4.29-py3-none-any.whl"} flask-security-too = "==3.4.5" [dev-packages] [requires] python_version = "3.8"
Представляю вашему вниманию книгу, написанную моим близким другом Максимом Макуриным: Секреты эффективного управления ассортиментом.
Книга предназначается для широкого круга читателей и, по мнению автора, будет полезна специалистам отдела закупок и логистики, категорийным и финансовым менеджерам, менеджерам по продажам, аналитикам, руководителям и директорам, в компетенции которых принятие решений по управлению ассортиментом.
Комментарии: 0