Indico. Обновление

Обновление Indico.

Содержание

1 Обновление пререквизитов

1.1 Postgres

  • Делается, если нужно изменить версию PostgreSQL.

1.1.1 Бэкап базы данных

  • Сделайте бекап базы:
    1sudo -u postgres pg_dump -U postgres indico > indico.sql
    

1.1.2 Обновление Postgres

  • Версии, которая идёт в комплекте с дистрибутивом, достаточно.
  • Но лучше установить версию поновее.
  • Смотрим, какие версии в наличии:
    1dnf module list postgresql
    
  • Установим postgresql-16:
    1sudo dnf module reset postgresql
    2sudo dnf module enable postgresql:16
    3sudo dnf -y install postgresql-server postgresql-upgrade
    
  • Проверьте установленную версию:
    1postgres -V
    
  • Инициализируем базу данных:
    1postgresql-setup --initdb --unit postgresql
    
  • Проверим, что в /var/lib/pgsql/data/postgresql.conf установлен алгоритм шифрования:
    1password_encryption = scram-sha-256
    
  • Запустим postgres:
    1systemctl enable --now postgresql
    

1.1.3 Восстановление базы данных

  • Подключимся к базе данных:
    1sudo -u postgres psql
    
  • Создадим базу данных (укажите необходимый пароль):
    1CREATE DATABASE indico;
    2CREATE USER indico WITH PASSWORD '<password>';
    3CREATE USER indico;
    4ALTER DATABASE indico OWNER TO indico;
    5\connect indico;
    6GRANT CREATE ON SCHEMA public TO indico;
    7\q
    
  • Добавьте расширение:
    1su - postgres -c 'psql indico -c "CREATE EXTENSION unaccent; CREATE EXTENSION pg_trgm;"'
    
  • Проверьте подключение к базе данных:
    1psql --username indico --password --host localhost indico
    
  • После подключения посмотрите параметры соединения:
    1\conninfo
    2\q
    
  • Восстановите данные из резервной копии:
    1sudo -u postgres psql -d indico -f indico.sql
    

2 Обновление Indico

  • Остановим Celery:
    1sudo systemctl stop indico-celery.service
    
  • Теперь переключитесь на пользователя indico и активируйте virtualenv:
    1su - indico
    2source ~/.venv/bin/activate
    
  • Проверьте версию Python:
    1python -V
    
  • Если версия < 3.12, то установим необходимую версию Python:
    1indico setup upgrade-python --force-version 3.12
    
  • Обновите indico:
    1pip install setuptools
    2pip install -U indico
    3indico setup create-symlinks ~/web/
    
  • Обновите плагины:
    1pip install -U indico-plugins
    
  • Обновите схемы базы данных:
    1indico db upgrade
    2indico db --all-plugins upgrade
    
  • Перезапустите uWSGI:
    1touch ~/web/indico.wsgi
    
  • Снова запустите Celery:
    1sudo systemctl start indico-celery.service
    

3 Установка Indico

  • Если версия слишком старая, либо Вы обновили систему, лучше установить бинарники заново.
  • Удалите старую установку python:
    1rm -rf /opt/indico/.pyenv
    
  • Теперь переключитесь на пользователя indico:
    1su - indico
    
  • Загрузите установщик:
    1curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
    
  • Установите python-3.12:
    1source ~/.bashrc
    2pyenv install 3.12
    3pyenv global 3.12
    
  • Установите indico:
    1python -m venv --upgrade-deps --prompt indico ~/.venv
    2source ~/.venv/bin/activate
    3echo 'source ~/.venv/bin/activate' >> ~/.bashrc
    4pip install setuptools wheel
    5pip install uwsgi
    6pip install indico
    

4 Ресурсы


Дмитрий Сергеевич Кулябов
Дмитрий Сергеевич Кулябов
Профессор кафедры теории вероятностей и кибербезопасности

Мои научные интересы включают физику, администрирование Unix и сетей.

Похожие