Почему не удается установить указанную версию mariadb с библиотекой readline?

Через пару дней мне удалось ответить на свой вопрос. Оглядываясь назад, это было довольно просто.

Отзывчивость:Демон slurmd можно запустить с помощью аргументов командной строки, перечислите их с помощью slurmd -h. В частности, slurmd -n 19устанавливает наивысшее значение nice -(и, следовательно, самый низкий приоритет )для демона и всех его подпроцессов. На настольных компьютерах я просто

  • отредактировал /etc/systemd/system/slurmd.service, добавив -n 19к ExecStart, т.е.ExecStart=/usr/local/sbin/slurmd $SLURMD_OPTIONS -n 19
  • демоны systemd перезагружены с помощьюsystemctl daemon-reload
  • перезапустил демон slurmd,systemctl restart slurmd.service

Резервирование памяти:Часть памяти может быть зарезервирована для системы. Я оставляю 8 ГБ владельцу, добавляя MemSpecLimit=8000к спецификациям узла в slurmd.conf. Для фактического ограничения памяти было сделано несколько дополнительных шагов:

  • Выберите «Ядро» и «Память» в качестве потребляемых ресурсов, установив SelectTypeParameters=CR_Core_Memoryв slurmd.conf.

  • Добавьте подключаемый модуль задач cgroups, установив TaskPlugin=task/affinity,task/cgroupв slurmd.conf, а затем установив ConstrainRAMSpace=yesв cgroup.conf.

  • Поскольку мы работаем в Ubuntu, включите память и поменяйте местами контрольные группы, добавив строку GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"в/etc/default/grub

График работы в рабочие дни Некоторые из моих коллег хотели бы, чтобы их никто не отвлекал в рабочее время. Это легко сделать с помощью scontrolна головном узле, чтобы установить их состояние узла на «вниз» в рабочее время и «возобновить» после рабочего дня. Я делаю это автоматически с помощью системных таймеров:

  • Сначала создайте исполняемый скрипт, который обновляет состояния узлов рассматриваемых рабочих столов, используяscontrol:
#!/bin/bash
# slurm-update.sh - Updates the state on nodes belonging to the work-hour desktops partition.
systemctl start slurmd
for node in $(sinfo -h --partition=WHdesktops --format="%n"); do
        state=$(sinfo -h --node=$node --format="%T")
        echo "Setting node $node to state=$1 with reason=$2"
        scontrol update NodeName=$node state=$1 reason="$2" || echo "State on $node is already $(sinfo -h --node=$node --format=\"%T\")"
done

Для этого требуется два аргумента: новое состояние и его причина.

  • Создайте пару файлов службы/таймера в каталоге /etc/systemd/systemдля запуска приведенного выше сценария в определенное время. Сделайте по одной паре для каждого состояния, которое вы хотите установить (, например, я сделал 3 пары,установить, слить и возобновить ). Пара для постановки «вниз» выглядит так
# /etc/systemd/system/slurm-down.service:
[Unit]
Description=Shut down all SLURM desktop nodes
[Service]
Type=simple
ExecStart=/bin/bash /mnt/nfs/slurm_fs/systemd/slurm-update.sh down afterhours
StandardError=journal

и

# /etc/systemd/system/slurm-down.timer:
[Unit]
Description=Timer for shutting down slurm on desktop nodes on weekdays
[Timer]
Unit=slurm-down.service
OnBootSec=10min
# Run hourly on weekdays between 8:05 to 18:05
OnCalendar=Mon..Fri *-*-* 8..18:05:00
[Install]
WantedBy=multi-user.target
  • Перезагрузите демоны с помощью systemctl daemon-reload, а затем включите и запустите только таймер, а не службу:systemctl enable --now slurm-down.timer.

  • Повторите шаги для состояния возобновления работы в нерабочее время и, при необходимости, для состояния слива примерно за час до состояния простоя.

1
09.11.2021, 05:39
1 ответ

Обновление MariaDB

Хорошо, похоже, у вас есть несколько проблем с записями в вашем /etc/apt/sources.list, которые необходимо решить (подробнее см. в разделе ниже ), хотя, насколько я могу судить, они не связаны к вашей проблеме с MariaDB. Записи для репозитория MariaDB 10.6, похоже, работают нормально.

Из информации, которую вы мне предоставили, я могу предположить, что версия MariaDB сдерживается на уровне 10.5.12 из-за того, что она уже установлена ​​до , тем более -до -. Дата добавления репозитория MariaDB в ваш sources.list. Я предполагаю, что запуск sudo apt upgradeвыглядит примерно так:

$ sudo apt upgrade
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages have been kept back:
  mariadb-server
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.

aptне обновляет MariaDB до версии 10.6 автоматически, поскольку для этого потребуется удалить некоторые специфические пакеты зависимостей версии 10.5 -. Решение этой проблемы должно быть таким же простым, как явное указание пакетов mariadb-serverи mariadb-clientдля обновления. Просто запустите sudo apt upgrade mariadb-server mariadb-client, и приглашение должно выглядеть примерно так:

$ sudo apt upgrade mariadb-server mariadb-client
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following package was automatically installed and is no longer required:
  libconfig-inifiles-perl
Use 'sudo apt autoremove' to remove it.
The following packages will be REMOVED:
  mariadb-client-10.5 mariadb-client-core-10.5 mariadb-server-10.5 mariadb-server-core-10.5
The following NEW packages will be installed:
  libdaxctl1 libndctl6 libpmem1 liburing1 mariadb-client mariadb-client-10.6 mariadb-client-core-10.6 mariadb-server-10.6 mariadb-server-core-10.6
The following packages will be upgraded:
  mariadb-server
1 upgraded, 9 newly installed, 4 to remove and 0 not upgraded.
Need to get 13.7 MB of archives.
After this operation, 5,323 kB of additional disk space will be used.
Do you want to continue? [Y/n] 

Если это так, просто введите y, чтобы продолжить, а затем убедитесь, что установлена ​​версия MariaDB 10.6 с mariadb --version:

.
$ mariadb --version
mariadb  Ver 15.1 Distrib 10.6.5-MariaDB, for debian-linux-gnu (x86_64) using readline EditLine wrapper

В качестве побочного примечания в отношении проблемы #2 в вашем вопросе: в версии 10.5 mariadb --versionвывод должен читать using EditLine wrapper, а не using readline Editline wrapper. Эта конкретная причуда совершенно нормальна и не имеет ничего общего с присутствием libreadline-dev.


Дополнительное примечание :Зеркала безопасности Debian

Как я уже говорил, у вас есть проблемы с sources.list, которые необходимо решить. Это выходит за рамки вашей проблемы с MariaDB, но я собираюсь немного коснуться здесь, чтобы исправить наиболее важные из этих проблем, поскольку это связано с безопасностью -.

Эти два debian-securityисточника используют старый формат из Debian 10 (Buster )и более ранних версий, который был изменен во время обновления до Debian 11 (Bullseye ). Вы можете видеть, что они создают ошибки в выводе sudo apt update.

deb http://mirrors.163.com/debian-security/ bullseye/updates main non-free contrib
deb-src http://mirrors.163.com/debian-security/ bullseye/updates main non-free contrib

Эти строки следует удалить и заменить на новый формат. Команда безопасности Debian не поощряет использование зеркал для репозиториев безопасности , так что вот официальные зеркала.

deb http://security.debian.org/debian-security bullseye-security main contrib non-free
deb-src http://security.debian.org/debian-security bullseye-security main contrib non-free

Есть также некоторые другие ошибки, исходящие из исходных файлов внутри /etc/apt/sources.list.d/, но их исправление выходит за рамки этого вопроса. Посмотрите на ошибки в выводе sudo apt update, если хотите исправить их самостоятельно.

0
14.11.2021, 01:34

Теги

Похожие вопросы