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

Обновление 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
    

4 Ресурсы


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

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

Похожие