Indico. Обновление
2024-09-24
·
2 мин. для прочтения
Обновление Indico.
Содержание
1 Обновление пререквизитов
1.1 Postgres
- Делается, если нужно изменить версию PostgreSQL.
1.1.1 Бэкап базы данных
- Сделайте бекап базы:
sudo -u postgres pg_dump -U postgres indico > indico.sql
1.1.2 Обновление Postgres
- Версии, которая идёт в комплекте с дистрибутивом, достаточно.
- Но лучше установить версию поновее.
- Смотрим, какие версии в наличии:
dnf module list postgresql - Установим postgresql-16:
sudo dnf module reset postgresql sudo dnf module enable postgresql:16 sudo dnf -y install postgresql-server postgresql-upgrade - Проверьте установленную версию:
postgres -V - Инициализируем базу данных:
postgresql-setup --initdb --unit postgresql - Проверим, что в
/var/lib/pgsql/data/postgresql.confустановлен алгоритм шифрования:password_encryption = scram-sha-256 - Запустим postgres:
systemctl enable --now postgresql
1.1.3 Восстановление базы данных
- Подключимся к базе данных:
sudo -u postgres psql - Создадим базу данных (укажите необходимый пароль):
CREATE DATABASE indico; CREATE USER indico WITH PASSWORD '<password>'; CREATE USER indico; ALTER DATABASE indico OWNER TO indico; \connect indico; GRANT CREATE ON SCHEMA public TO indico; \q - Добавьте расширение:
su - postgres -c 'psql indico -c "CREATE EXTENSION unaccent; CREATE EXTENSION pg_trgm;"' - Проверьте подключение к базе данных:
psql --username indico --password --host localhost indico - После подключения посмотрите параметры соединения:
\conninfo \q - Восстановите данные из резервной копии:
sudo -u postgres psql -d indico -f indico.sql
2 Обновление Indico
- Остановим Celery:
sudo systemctl stop indico-celery.service - Теперь переключитесь на пользователя
indicoи активируйте virtualenv:su - indico source ~/.venv/bin/activate - Проверьте версию Python:
python -V - Если версия < 3.12, то установим необходимую версию Python:
indico setup upgrade-python --force-version 3.12 - Обновите indico:
pip install setuptools pip install -U indico indico setup create-symlinks ~/web/ - Обновите плагины:
pip install -U indico-plugins - Обновите схемы базы данных:
indico db upgrade indico db --all-plugins upgrade - Перезапустите uWSGI:
touch ~/web/indico.wsgi - Снова запустите Celery:
sudo systemctl start indico-celery.service
3 Установка Indico
- Если версия слишком старая, либо Вы обновили систему, лучше установить бинарники заново.
- Удалите старую установку python:
rm -rf /opt/indico/.pyenv - Теперь переключитесь на пользователя
indico:su - indico - Загрузите установщик:
curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash - Установите python-3.12:
source ~/.bashrc pyenv install 3.12 pyenv global 3.12 - Установите indico:
python -m venv --upgrade-deps --prompt indico ~/.venv source ~/.venv/bin/activate echo 'source ~/.venv/bin/activate' >> ~/.bashrc pip install setuptools wheel pip install uwsgi pip install indico