Страница 1 из 1

Обновление ломает rpm

Добавлено: 24 апр 2026, 22:12
МихаилZ
до обновления версия репозитория от 21-03-2026, установлены такие пакеты

Код: Выделить всё

# rpm -qa |grep lua
lib64lua5.3-5.3.6-9.x86_64
lib64lua5.4-5.4.7-2.x86_64
lib64tolua++5.3-1.0.93-8.x86_64
tolua++-1.0.93-8.x86_64
lua-posix-36.2.1-1.x86_64
lua-5.4.7-2.x86_64
даю команду dnf install rpm-build, ставятся пакеты

Код: Выделить всё

Обновлен:
  lib64rpm9-2:4.17.0-21.x86_64       lib64rpmbuild9-2:4.17.0-21.x86_64     python3-rpm-2:4.17.0-21.x86_64                 rpm-2:4.17.0-21.x86_64  rpm-plugin-audit-2:4.17.0-21.x86_64 
  rpm-plugin-ima-2:4.17.0-21.x86_64  rpm-plugin-syslog-2:4.17.0-21.x86_64  rpm-plugin-systemd-inhibit-2:4.17.0-21.x86_64 
Установлен:
  autoconf-1:2.72-1.noarch               automake-1.16.5-1.noarch                    chrpath-0.18-1.x86_64                        cmake-rpm-generators-1:3.31.1-2.noarch             
  debugedit-5.2-1.x86_64                 devel-rpm-generators-0.15-2.noarch          dwz-0.15-1.x86_64                            efi-srpm-macros-5-1.noarch                         
  elfutils-0.192-1.x86_64                enchant2-2.7.3-1.x86_64                     gcc-14.3.0-4.x86_64                          gcc-cpp-14.3.0-4.x86_64                            
  gdb-15.2-2.x86_64                      go-srpm-macros-3.6.0-1.noarch               lib64atomic-devel-14.3.0-4.x86_64            lib64cc1_0-14.3.0-4.x86_64                         
  lib64dbginfod1-0.192-1.x86_64          lib64gcc-devel-14.3.0-4.x86_64              libtool-base-2.4.7-3.x86_64                  make-1:4.4.1-1.x86_64                              
  order-rpm-generators-2-1.noarch        pam-rpm-generators-2-1.noarch               python3-enchant-3.2.2-1.noarch               python3-python-magic-0.4.27-2.noarch               
  qml-rpm-generators-0.3-2.noarch        rpm-build-2:4.17.0-21.x86_64                rpm-plugin-selinux-2:4.17.0-21.x86_64        rpm-rosa-setup-build-1.0-12.git0dfc1f.noarch       
  rpmlint-1:1.11-23.noarch               rpmlint-rosa-policy-0.3.24-14.noarch        spec-helper-0.31.56-2.noarch                

Выполнено!
После этого любой вызов rpm, кроме rpm --help приводит к ошибке

Код: Выделить всё

# rpm -qa | grep lua
PANIC: unprotected error in call to Lua API (version mismatch: app. needs 503,0, Lua core provides 504,0)
Удаление любой из версий liblua.so приводит к ошибке

Код: Выделить всё

rpm: error while loading shared libraries: liblua.so.5.3: cannot open shared object file: No such file or directory
rpm: error while loading shared libraries: liblua.so.5.4: cannot open shared object file: No such file or directory
потому что rpm слинкован сразу с двумя версиями

Код: Выделить всё

# ldd /usr/bin/rpm | grep lua
        liblua.so.5.4 => /usr/lib64/liblua.so.5.4 (0x00007f354274a000)
        liblua.so.5.3 => /usr/lib64/liblua.so.5.3 (0x00007f35422c9000)
если перед обновлением удалить lua lua-posix lib64tolua++5.3 tolua++
то картина не меняется
восстановить систему можно только ручным копированием содержимого старого пакета в систему поверх существующих файлов
у кого случилась/случится такая беда, можете взять архив пакета из вложения к этому сообщению, распаковывайте под root, иначе владелец на файлах слетит

Re: Обновление ломает rpm

Добавлено: 25 апр 2026, 12:22
МихаилZ
чтобы полность восстановить старые пакеты распакуйте архив из вложения, перейдите в папку
если пакеты dkms и rpm-build не используете, удалите их в папке
удалите из системы новый пакет, мешающий откату на старые версии

Код: Выделить всё

rpm -e rpm-plugin-selinux
Установите старые пакеты

Код: Выделить всё

rpm -Uhv --force *.rpm

Re: Обновление ломает rpm

Добавлено: 25 апр 2026, 12:45
mikhailnov
Систему никогда не нужно обновлять частично. Потому что она может вот так разломаться в разных местах.
Но уже в репозитории находится подпорка https://abf.io/import/rpm/commit/bb2679 ... 055a236a26 , которая должна конкретно такую ситуацию не допускать. :wink:

Re: Обновление ломает rpm

Добавлено: 25 апр 2026, 12:50
mikhailnov
А чинить можно с LiveCD через dnf --installroot

Re: Обновление ломает rpm

Добавлено: 25 апр 2026, 15:48
МихаилZ
mikhailnov писал(а): 25 апр 2026, 12:45 Систему никогда не нужно обновлять частично. Потому что она может вот так разломаться в разных местах.
Но уже в репозитории находится подпорка https://abf.io/import/rpm/commit/bb2679 ... 055a236a26 , которая должна конкретно такую ситуацию не допускать. :wink:
Я доустановил пакеты. Система сломалась так, что в соседней закрытой теме сказали что только переустановка поможет. Поясните, пожалуйста, это у меня руки кривые или это был упрек в сторону dnf?
В любом случае косячные пакеты лежат с 25 марта и никто не знает, сколько из и так немногочисленных пользователей Росы переустановят систему ... скорее всего на другую. Жаль, я столько лет топлю всем за Росу, и мне хотелось бы видеть ее популярной.

Re: Обновление ломает rpm

Добавлено: 25 апр 2026, 15:51
МихаилZ
mikhailnov писал(а): 25 апр 2026, 12:50 А чинить можно с LiveCD через dnf --installroot
Было бы неплохо, если бы вы описали как неподготовленному пользователю поднять систему и где скачать стабильные пакеты, уже отсутствующие в источниках. Или как не допустить подобную ситуацию, если сборщик забыл установить критически важные зависимости.

Re: Обновление ломает rpm

Добавлено: 25 апр 2026, 16:27
mikhailnov
МихаилZ писал(а): 25 апр 2026, 15:51 Или как не допустить подобную ситуацию, если сборщик забыл установить критически важные зависимости.
Это не сборщик забыл, это пользователь обновил систему частично. Это всегда высокий риск.
Конкретно здесь уже вставлена дополнительная страховка, то есть проблема починена, опасные пакеты уже не лежат в репозитории. Или я не прав?

Re: Обновление ломает rpm

Добавлено: 25 апр 2026, 16:28
mikhailnov
МихаилZ писал(а): 25 апр 2026, 15:51 где скачать стабильные пакеты, уже отсутствующие в источниках
https://mirror.rosa.ru/repo-archive/

Re: Обновление ломает rpm

Добавлено: 25 апр 2026, 16:53
МихаилZ
mikhailnov писал(а): 25 апр 2026, 16:27 Это не сборщик забыл, это пользователь обновил систему частично. Это всегда высокий риск.
Конкретно здесь уже вставлена дополнительная страховка, то есть проблема починена, опасные пакеты уже не лежат в репозитории. Или я не прав?
Нет, вы неправы в данном случае. Не буду в третий раз писать, что пользователь не обновлял систему, а доустанавливал пакет.
Даже если бы обновлял определенные пакеты, то все критически важное должно доустановиться по записимостям, все конфликтующее должно удалиться, dnf прекарсно это умеет, если сборщик проставит зависимости. Иногда об этом узнаешь только при работе с программой. Тогда приходится срочно обновлять пакеты.
mikhailnov писал(а): 25 апр 2026, 16:28
МихаилZ писал(а): 25 апр 2026, 15:51 где скачать стабильные пакеты, уже отсутствующие в источниках
https://mirror.rosa.ru/repo-archive/
За ссылку спасибо, это многим будет полезно.

У вас какая версия rpm? Если все работает, можете показать вывод rpm -qa | grep lua ?
Хорошо бы найти в чем конфликт.

Re: Обновление ломает rpm

Добавлено: 25 апр 2026, 17:09
mikhailnov
В вашем выводе dnf хорошо видно, что часть пакетов обновились, часть установились с нуля.
Сборщики не прописывают зависимости до таких мелочей, это делает автоматика.
Работоспособность после частичного обновления системы не гарантируется никогда.
QA не тестирует частичные обновления системы.

Конфликт там, судя по всему, в том, что /usr/lib64/liblua.so.5.4 разных минорных (или вроде того) версий оказались несовместимы без смены soname: на этапе компиляции вшивается версия lua из заголовочных файлов и при запуске проверяется, что используется она, пакетному менеджеру такие нюансы не видны.

"PANIC: unprotected error in call to Lua API (version mismatch: app. needs 503,0, Lua core provides 504,0)"

rpm, который выдал такую ошибку, был собран с версией 504 в *.h, а при запуске прогрузилась старая библиотеки liblua.so, которая не была обновлена при частичном обновлении системы.

Такое должно делаться версионированием символов или еще как-то, в lua сделано по-дурацки, коммит https://abf.io/import/rpm/commit/bb2679 ... 055a236a26 закостылировал для пакета rpm.

Re: Обновление ломает rpm

Добавлено: 25 апр 2026, 17:12
mikhailnov
У меня так:

Код: Выделить всё

mikhailnov@rosa-rg3nte ~ $ rpm -qa lib64lua* | rpm-sort
lib64lua-devel-5.4.7-2.x86_64
lib64lua5.3-5.3.6-9.x86_64
lib64lua5.4-5.4.7-2.x86_64
lib64luajit-5.1-common-2.1.0-4.x86_64
lib64luajit-5.1_2-2.1.0-4.x86_64
mikhailnov@rosa-rg3nte ~ $ ldd /usr/bin/rpm | grep lua
        liblua.so.5.4 => /lib64/liblua.so.5.4 (0x00007f97e8af4000)
mikhailnov@rosa-rg3nte ~ $ 
А у вас ldd /usr/bin/rpm показывает прогрузку одновременно двух версий liblua

Re: Обновление ломает rpm

Добавлено: 25 апр 2026, 17:17
mikhailnov
Может быть, это потому что не обновилась /usr/lib64/librpmio.so.9

/usr/bin/rpm слинкован и с liblua и c librpmio, а librpmio тоже слинкован с liblua, и вот они, видимо, оказались слинкованы с разными lua, но с точки зрения ld-linux liblua.so.5.4 предоставляет все символы, которые нужны бинарнику, потому что они одноименные с liblua.so.5.3, поэтому вызовы функций в librpmio пойдут в первую загруженную libua - 5.4, а не 5.3, с которой она слинкована.

Re: Обновление ломает rpm

Добавлено: 25 апр 2026, 17:21
mikhailnov
Пожалуй, тут полезно еще доп. защиту вставить:
https://abf.io/import/rpm/commit/c88c1a ... 65fb8b4073
https://bugzilla.rosa.ru/show_bug.cgi?id=20501
Спасибо за наводку.

Re: Обновление ломает rpm

Добавлено: 25 апр 2026, 17:43
МихаилZ
mikhailnov писал(а): 25 апр 2026, 17:21 Пожалуй, тут полезно еще доп. защиту вставить:
https://abf.io/import/rpm/commit/c88c1a ... 65fb8b4073
https://bugzilla.rosa.ru/show_bug.cgi?id=20501
Спасибо за наводку.
по выводу ldd вижу, что у вас другая версия rpm.
Пока не найду доводов обратного, считаю, что в репах уже месяц лежит глючная версия rpm, убивающая систему пользователям. Считаю что необходимо как можно скорее ее обновить (или откатить до выяснения)

Re: Обновление ломает rpm

Добавлено: 25 апр 2026, 18:31
mikhailnov
Проверить несложно: откатить систему до какого-ниубдь старого снимка https://mirror.rosa.ru/snapshots/ (подключить как репозитории и сделать dnf distro-sync) и попробовать убить заново, но подключив контейнер с ушедшим на QA rpm https://abf-downloads.rosa.ru/rosa13/co ... n/release/

Не убьется.

Re: Обновление ломает rpm

Добавлено: 25 апр 2026, 19:15
МихаилZ
mikhailnov писал(а): 25 апр 2026, 18:31 Проверить несложно: откатить систему до какого-ниубдь старого снимка https://mirror.rosa.ru/snapshots/ (подключить как репозитории и сделать dnf distro-sync) и попробовать убить заново, но подключив контейнер с ушедшим на QA rpm https://abf-downloads.rosa.ru/rosa13/co ... n/release/

Не убьется.
У меня все проще. Я сижу в чистом режиме на Магосе, срез от 20-03-2026. Мне достаточно просто перегрузиться, чтобы восстановить систему из любого состояния.

Я так понимаю, что в репах скоро будет новая версия rpm? Это хорошо.
Пакеты я скачал, обновил, все работает. Спасибо за обновление.