Пакет mariadb-common заменяет MySQL-server, но конфликтует по файлам с MySQL-server и не обсолетит его. В результате dist-upgrade не проходит.
Не! Вместо строки для %package common Obsoletes: %name-server < 5.5.33a надо строку в %package server Requires: %name-common = %version-%release , т.к. несколько data-файлов по смыслу не должны заменять целый сервер целиком.
Т.е. текущая реализация при dist-upgrade предполагает автоудаление пакета mariadb-server в некоторых ситуациях и неизвестно, как просчитает apt и не удалит ли все подряд по цепочке или не захолдит ли всю цепочку. Мой вариант точно правильный для текущего spec-файла.
(В ответ на комментарий №2) > предполагает автоудаление пакета mariadb-server и заодно MySQL-server, т.к. конфликтует с ним. Т.е., если он не установлен, то его установка будет блокирована конфликтом, несмотря на какие-либо зависимости других пакетов. Эту ситуацию на текущем сизифе вряд ли просто получится воспроизвести, но дерево зависимостей получается кривое и какому-то пользователю рано или поздно аукнется. Дополнительные проблемы при dist-upgrade с бранча на бранч -- самое первое из реальной жизни.
(In reply to comment #1) > Не! > Вместо строки для %package common > Obsoletes: %name-server < 5.5.33a > надо строку в %package server > Requires: %name-common = %version-%release > , т.к. несколько data-файлов по смыслу не должны заменять целый сервер целиком. Так так и сделано. только через клиента. %package server Requires: lib%name = %version-%release %name-client = %version-%release А клиент уже %package client Requires: lib%name = %version-%release %name-common = %version-%release
mariadb-5.5.33a-alt2 -> sisyphus: * Tue Oct 01 2013 Slava Dubrovskiy <dubrsl@altlinux> 5.5.33a-alt2 - Fix (ALT#29415)
(В ответ на комментарий №4) > Так так и сделано. только через клиента. Через какого клиента это сделано для пакета libmariadbembedded? Он зависит от пакета с конфликтующими файлами. Я же указал ясно -- обсолет кривой. Не надо такое делать.
(In reply to comment #6) > (В ответ на комментарий №4) > > Так так и сделано. только через клиента. > Через какого клиента это сделано для пакета libmariadbembedded? Для libmariadbembedded есть прямая зависимость: %package -n libmariadbembedded Requires: %name-common = %version-%release > Он зависит от пакета с конфликтующими файлами. > > Я же указал ясно -- обсолет кривой. Не надо такое делать. я не понимаю о чем Вы говорите Сергей :( Можете привести лог обновления mariadb-5.5.33a-alt2 где воспроизведена ошибка?
# apt-get dist-upgrade Reading Package Lists... Done Building Dependency Tree... Done Calculating Upgrade... Done The following packages will be upgraded libmariadbembedded libmysqlclient-devel libmysqlclient18 The following NEW packages will be installed: mariadb-common 3 upgraded, 1 newly installed, 0 removed and 0 not upgraded. Need to get 0B/4749kB of archives. After unpacking 2561kB of additional disk space will be used. Do you want to continue? [Y/n] Committing changes... Preparing... ################################################################################################### [100%] file /usr/share/mysql/charsets/Index.xml from install of mariadb-common-5.5.33a-alt1 conflicts with file from package MySQL-server-5.5.32-alt1 file /usr/share/mysql/czech/errmsg.sys from install of mariadb-common-5.5.33a-alt1 conflicts with file from package MySQL-server-5.5.32-alt1 file /usr/share/mysql/danish/errmsg.sys from install of mariadb-common-5.5.33a-alt1 conflicts with file from package MySQL-server-5.5.32-alt1 file /usr/share/mysql/dutch/errmsg.sys from install of mariadb-common-5.5.33a-alt1 conflicts with file from package MySQL-server-5.5.32-alt1 file /usr/share/mysql/english/errmsg.sys from install of mariadb-common-5.5.33a-alt1 conflicts with file from package MySQL-server-5.5.32-alt1 file /usr/share/mysql/errmsg-utf8.txt from install of mariadb-common-5.5.33a-alt1 conflicts with file from package MySQL-server-5.5.32-alt1 file /usr/share/mysql/estonian/errmsg.sys from install of mariadb-common-5.5.33a-alt1 conflicts with file from package MySQL-server-5.5.32-alt1 file /usr/share/mysql/fill_help_tables.sql from install of mariadb-common-5.5.33a-alt1 conflicts with file from package MySQL-server-5.5.32-alt1 file /usr/share/mysql/french/errmsg.sys from install of mariadb-common-5.5.33a-alt1 conflicts with file from package MySQL-server-5.5.32-alt1 file /usr/share/mysql/german/errmsg.sys from install of mariadb-common-5.5.33a-alt1 conflicts with file from package MySQL-server-5.5.32-alt1 file /usr/share/mysql/greek/errmsg.sys from install of mariadb-common-5.5.33a-alt1 conflicts with file from package MySQL-server-5.5.32-alt1 file /usr/share/mysql/hungarian/errmsg.sys from install of mariadb-common-5.5.33a-alt1 conflicts with file from package MySQL-server-5.5.32-alt1 file /usr/share/mysql/italian/errmsg.sys from install of mariadb-common-5.5.33a-alt1 conflicts with file from package MySQL-server-5.5.32-alt1 file /usr/share/mysql/japanese/errmsg.sys from install of mariadb-common-5.5.33a-alt1 conflicts with file from package MySQL-server-5.5.32-alt1 file /usr/share/mysql/korean/errmsg.sys from install of mariadb-common-5.5.33a-alt1 conflicts with file from package MySQL-server-5.5.32-alt1 file /usr/share/mysql/my-huge.cnf from install of mariadb-common-5.5.33a-alt1 conflicts with file from package MySQL-server-5.5.32-alt1 file /usr/share/mysql/my-innodb-heavy-4G.cnf from install of mariadb-common-5.5.33a-alt1 conflicts with file from package MySQL-server-5.5.32-alt1 file /usr/share/mysql/my-large.cnf from install of mariadb-common-5.5.33a-alt1 conflicts with file from package MySQL-server-5.5.32-alt1 file /usr/share/mysql/my-medium.cnf from install of mariadb-common-5.5.33a-alt1 conflicts with file from package MySQL-server-5.5.32-alt1 file /usr/share/mysql/my-small.cnf from install of mariadb-common-5.5.33a-alt1 conflicts with file from package MySQL-server-5.5.32-alt1 file /usr/share/mysql/mysql_system_tables.sql from install of mariadb-common-5.5.33a-alt1 conflicts with file from package MySQL-server-5.5.32-alt1 file /usr/share/mysql/mysql_system_tables_data.sql from install of mariadb-common-5.5.33a-alt1 conflicts with file from package MySQL-server-5.5.32-alt1 file /usr/share/mysql/norwegian-ny/errmsg.sys from install of mariadb-common-5.5.33a-alt1 conflicts with file from package MySQL-server-5.5.32-alt1 file /usr/share/mysql/norwegian/errmsg.sys from install of mariadb-common-5.5.33a-alt1 conflicts with file from package MySQL-server-5.5.32-alt1 file /usr/share/mysql/polish/errmsg.sys from install of mariadb-common-5.5.33a-alt1 conflicts with file from package MySQL-server-5.5.32-alt1 file /usr/share/mysql/portuguese/errmsg.sys from install of mariadb-common-5.5.33a-alt1 conflicts with file from package MySQL-server-5.5.32-alt1 file /usr/share/mysql/romanian/errmsg.sys from install of mariadb-common-5.5.33a-alt1 conflicts with file from package MySQL-server-5.5.32-alt1 file /usr/share/mysql/russian/errmsg.sys from install of mariadb-common-5.5.33a-alt1 conflicts with file from package MySQL-server-5.5.32-alt1 file /usr/share/mysql/serbian/errmsg.sys from install of mariadb-common-5.5.33a-alt1 conflicts with file from package MySQL-server-5.5.32-alt1 file /usr/share/mysql/slovak/errmsg.sys from install of mariadb-common-5.5.33a-alt1 conflicts with file from package MySQL-server-5.5.32-alt1 file /usr/share/mysql/spanish/errmsg.sys from install of mariadb-common-5.5.33a-alt1 conflicts with file from package MySQL-server-5.5.32-alt1 file /usr/share/mysql/swedish/errmsg.sys from install of mariadb-common-5.5.33a-alt1 conflicts with file from package MySQL-server-5.5.32-alt1 file /usr/share/mysql/ukrainian/errmsg.sys from install of mariadb-common-5.5.33a-alt1 conflicts with file from package MySQL-server-5.5.32-alt1 E: Error while running transaction #
Прошу прощения, это обновление от -alt1. :(
(In reply to comment #0) > Пакет mariadb-common заменяет MySQL-server, но конфликтует по файлам с > MySQL-server и не обсолетит его. В результате dist-upgrade не проходит. Вот не надо таких "подсказок". Конфликт между содержащими идентичные пути файлы субпакетами должен быть, а Obsoletes: там ни к чему, по крайней мере на данный момент. И если когда будет, то между серверными субпакетами, а не mariadb-common и MySQL-server. Сейчас надо оставить Conflicts: и убрать Obsoletes:.
(In reply to comment #10) > (In reply to comment #0) > > Пакет mariadb-common заменяет MySQL-server, но конфликтует по файлам с > > MySQL-server и не обсолетит его. В результате dist-upgrade не проходит. > Вот не надо таких "подсказок". > > Конфликт между содержащими идентичные пути файлы субпакетами должен быть, а > Obsoletes: там ни к чему, по крайней мере на данный момент. И если когда > будет, то между серверными субпакетами, а не mariadb-common и MySQL-server. > > Сейчас надо оставить Conflicts: и убрать Obsoletes:. Сейчас в 5.5.33a-alt2 вот так: %package common Conflicts: MySQL-server Obsoletes: %name-server < 5.5.33a мне кажется этого вполне достаточно
(В ответ на комментарий №10) > Сейчас надо оставить Conflicts: и убрать Obsoletes:. +1
И добавьте, пожалуйста, в %package server Requires: %name-common = %version-%release , как я написал в коментарии #1 . Я не нашел _никаких_ зависимостей на common у server.
(В ответ на комментарий №13) > Я не нашел _никаких_ зависимостей на common у server. Проглядел. Есть зависимость. Значит, только обсолет убрать.
*** Bug 29414 has been marked as a duplicate of this bug. ***
(В ответ на комментарий №14) > Проглядел. Есть зависимость. Хотя зачем через Копенгаген, когда она прямая.
Я пока воздержусь от обновления kde4-amarok в p7
Никто не против сделать изменения из коментария #1? А то я могу.
(В ответ на комментарий №18) > Никто не против сделать изменения из коментария #1? > А то я могу. И что это изменит? Сейчас все работает: [root@alt-sisyphus-1 ~]# rpm -qa | grep -i 'mysql\|maria' MySQL-server-5.5.32-alt1 libmysqlclient18-5.5.33a-alt2 MySQL-client-5.5.32-alt1 [root@alt-sisyphus-1 ~]# apt-get install mariadb-server Чтение списков пакетов... Завершено Построение дерева зависимостей... Завершено Следующие дополнительные пакеты будут установлены: libjemalloc mariadb-client mariadb-common perl-CGI perl-Term-ReadKey Следующие пакеты будут УДАЛЕНЫ: MySQL-client MySQL-server Следующие НОВЫЕ пакеты будут установлены: libjemalloc mariadb-client mariadb-common mariadb-server perl-CGI perl-Term-ReadKey 0 будет обновлено, 6 новых установлено, 2 пакетов будет удалено и 58 не будет обновлено. Необходимо получить 6996kB архивов. После распаковки потребуется дополнительно 16,9MB дискового пространства. Продолжить? [Y/n] Получено: 1 http://ftp.altlinux.org x86_64/classic libjemalloc 3.4.0-alt1 [156kB] Получено: 2 http://ftp.altlinux.org noarch/classic mariadb-common 5.5.33a-alt2 [317kB] Получено: 3 http://ftp.altlinux.org noarch/classic perl-CGI 3.63-alt1 [133kB] Получено: 4 http://ftp.altlinux.org x86_64/classic perl-Term-ReadKey 2.30-alt4 [18,7kB] Получено: 5 http://ftp.altlinux.org x86_64/classic mariadb-client 5.5.33a-alt2 [1133kB] Получено: 6 http://ftp.altlinux.org x86_64/classic mariadb-server 5.5.33a-alt2 [5239kB] Получено 6996kB за 1s (4625kB/s). Совершаем изменения... Preparing... ########################################################################## [100%] 1: perl-Term-ReadKey ########################################################################## [ 16%] 2: perl-CGI ########################################################################## [ 33%] 3: mariadb-common ########################################################################## [ 50%] 4: mariadb-client ########################################################################## [ 66%] 5: libjemalloc ########################################################################## [ 83%] 6: mariadb-server ########################################################################## [100%] warning: /var/lib/mysql/my.cnf saved as /var/lib/mysql/my.cnf.rpmsave Running /usr/lib/rpm/posttrans-filetriggers Завершено.
(В ответ на комментарий №19) > И что это изменит? Некоторые ошибки исчезнут. Некоторые ошибки не появятся. > Сейчас все работает: А надо, чтоб и потом работало и в spec-е не было лишних заморочек, ведущих к ошибкам.
Если хотите попробовать, соберите новую mariadb и kde4-amarok тестовым заданием в p6, p7 и проверьте в нескольких самых различных вариантах установок, будет ли эта ошибка проявляться или нет. P.S. Я сам-то попробую, только после исправления этого бага.
У меня появилась необходимость обновить kde4-amarok в p7.
(In reply to comment #22) > У меня появилась необходимость обновить kde4-amarok в p7. Сергей, делайте все что считаете нужным. Т.к. не видя "Некоторые" ошибки я не могу представить необходимые исправления.
Уже ушло на сборку. Меня интересует, что лучше? Отправить 5.5.33a в p7 или поправить тот mariadb, что в p7 сейчас?
Если без разницы, то меня с точки зрения обновлябельности интересует лишь более высокая версия, чем MySQL, которая и так выше.
mariadb-5.5.33a-alt3 -> sisyphus: * Wed Oct 16 2013 Sergey V Turchin <zerg at altlinux> 5.5.33a-alt3 - fix depends (ALT#29415)
В RHEL6 5.5.33a http://pkgs.fedoraproject.org/cgit/mariadb.git/log/?h=el6 Если никто не подскажет каких-нибудь специфичных нам граблей, то я соберу 5.5.33a в p7.
(В ответ на комментарий №23) > не видя "Некоторые" ошибки я не могу представить необходимые исправления. Просто, любая неточность в зависимостях для меня критична, т.к. и сейчас пришлось поизголяться с akonadi, еще и поставив прямую зависимость на mariadb, чтобы он не становился неработоспособным после dist-upgrade.