Summary: | apt-get upgrade мешает | ||||||
---|---|---|---|---|---|---|---|
Product: | Sisyphus | Reporter: | Sergey V Turchin <zerg> | ||||
Component: | apt | Assignee: | darktemplar <darktemplar> | ||||
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus | ||||
Severity: | enhancement | ||||||
Priority: | P3 | CC: | aen, boyarsh, cas, darktemplaralt, ekorneechev, evg, glebfm, imz, ldv, placeholder, rider, sotor, vseleznv | ||||
Version: | unstable | ||||||
Hardware: | all | ||||||
OS: | Linux | ||||||
Attachments: |
|
Description
Sergey V Turchin
2015-03-26 17:03:33 MSK
(В ответ на комментарий №0)
> уравлять
уравнять
Или как вариант -- сделать upgrade рабочим. Может пригодиться для автоматических обновлений. По моему наоборот удобно - upgrade обновляет пакеты только если они не тянут новых зависимостей, dist-upgrade обновляет всё. А что не работает в upgrade? Если есть ответственное лицо, ручающееся за то, что уровень работоспособности upgrade не хуже, чем dist-upgrade, закрывайте.
> По моему наоборот удобно
Согласен.
(В ответ на комментарий №3) > По моему наоборот удобно - upgrade обновляет пакеты только если они не тянут > новых зависимостей, dist-upgrade обновляет всё. > > А что не работает в upgrade? upgrade не проверяет что при этом ничего не сломается. У меня upgrade работает нормально, наверное, я что-то делаю не так. Ты не пользователь. Поставь себе Workstation 8.2 и сделай upgrade. Надо сделать, чтоб upgrade не работал без опции --i-am-hacker. ;-) Ладно, я сделал за ldv. Весьма консервативно. После такого обновления сказать что система обновилась - невозможно, как и гарантировать то, что она будет работать. # apt-get upgrade Чтение списков пакетов... Завершено Построение дерева зависимостей... Завершено Следующие пакеты будут ОБНОВЛЕНЫ: ModemManager NetworkManager NetworkManager-adsl NetworkManager-bluetooth NetworkManager-daemon NetworkManager-ppp NetworkManager-wifi NetworkManager-wwan agetty alterator alterator-auth alterator-datetime alterator-grub alterator-l10n alterator-net-openvpn alterator-net-pppoe alterator-service-functions altlinux-freedesktop-menu-common altlinux-freedesktop-menu-mate altlinux-freedesktop-menu-shallow-menu altlinux-mime-defaults autofs avahi-autoipd avahi-daemon avahi-tools bash-completion cpu-x curl dbus dbus-tools dbus-tools-gui dia dm-tool docs-alt-workstation eepm etcnet etcnet-defaults-server fdisk firefox-esr firefox-esr-ru firmware-intel-ucode firmware-linux foomatic-db fuse getopt glibc-core glibc-gconv-modules glibc-locales glibc-nss glibc-preinstall glibc-pthread glibc-timezones glibc-utils glxgears glxinfo grub-common grub-efi grub-pc hplip hplip-PPDs hplip-common hplip-gui hplip-hpcups hplip-hpcups-PPDs hplip-hpijs hplip-hpijs-PPDs hplip-ps-PPDs hplip-sane hwclock i586-glibc-core.32bit i586-glibc-pthread.32bit i586-libudev1.32bit iconv java-1.8.0-openjdk java-1.8.0-openjdk-headless krb5-kinit libEGL libGL libGLES libXi libassuan libattr libaudit1 libavahi libavahi-glib libblkid libcurl libdbus libdrm libfdisk libfluidsynth libfuse libgbm libgcrypt20 libgnutls30 libgpg-error libidn2 libkrb5 libldap libldb liblightdm-gobject libmateweather libmateweather-data libmbim-glib libmm-glib libmount libmysqlclient18 libnetapi libnm libnm-glib-vpn1 libnm-glib4 libnm-util2 libnspr libnss libnss-role libopensc libpasswdqc libpci libpq5.10 libpython libpython3 librpm librpmbuild librtpkcs11ecp libsane libsmartcols libsmbclient libsndfile libsoup libsoup-gnome libsss_certmap libsss_idmap libsss_nss_idmap libsystemd libtbb libtdb libudev1 libunistring2 libuuid libvlc libwayland-egl libwbclient libxatracker lightdm losetup lsblk make-initrd make-initrd-devmapper make-initrd-luks make-initrd-lvm make-initrd-mdadm make-initrd-plymouth make-initrd-ucode mate-default mate-minimal mc mint-translations mintmenu mount nscd nss-utils openldap openldap-clients opensc openssh openssh-askpass-common openssh-clients openssh-common openssh-server openssh-server-control pam0_passwdqc passwdqc-control passwdqc-utils pciids pciutils poppler-data python python-base python-dev python-module-Reportlab python-module-backports python-module-backports.ssl_match_hostname python-module-ipaddress python-modules python-modules-bsddb python-modules-compiler python-modules-ctypes python-modules-curses python-modules-email python-modules-encodings python-modules-hotshot python-modules-json python-modules-logging python-modules-multiprocessing python-modules-unittest python-modules-xml python-strict python-tools-2to3 python3 python3-base qt5-translations rpm rpm-build-python3 rpm-macros-alterator samba samba-client samba-client-libs samba-common samba-common-libs samba-common-tools samba-libs sane schedutils setarch sfdisk smtube sssd sssd-ad sssd-client sssd-krb5-common sssd-pac strace task-auth-ad-sssd thunderbird thunderbird-ru util-linux util-linux-control vim-common vim-console vim-minimal virtualbox-common virtualbox-guest-additions virtualbox-guest-utils vlc vlc-interface-qt4 vlc-mini vlc-plugin-ass vlc-plugin-bluray vlc-plugin-dbus vlc-plugin-dvdnav vlc-plugin-dvdread vlc-plugin-ffmpeg vlc-plugin-freetype vlc-plugin-globalhotkeys vlc-plugin-live555 vlc-plugin-matroska vlc-plugin-mpeg2 vlc-plugin-ogg vlc-plugin-pulseaudio vlc-plugin-taglib vlc-plugin-v4l vlc-plugin-xcb vlc-plugin-xml wget xdg-utils xorg-dri-intel xorg-dri-nouveau xorg-dri-radeon xorg-dri-swrast xorg-drv-intel xorg-drv-vboxvideo xsane xxd Следующие пакеты будут СОХРАНЕНЫ: LibreOffice-common LibreOffice-gnome LibreOffice-integrated LibreOffice-langpack-ru alterator-browser-qt5 apt-indicator bash-completion-systemd card-actions cups-filters cups-filters-libs gnupg2 gutenprint krb5-ticket-watcher libgutenprint libjavascriptcoregtk4 libmate-menus libnss-myhostname libpoppler4-qt4 libpoppler62 libpoppler8-glib libqt5-core libqt5-dbus libqt5-eglfskmssupport libqt5-gui libqt5-network libqt5-widgets libqt5-x11extras libqt5-xcbqpa libqt5-xml libtalloc libtevent libvulkan1 libwebkit2gtk mate-menus pam_pkcs11 pam_systemd pinentry-common pinentry-qt5 pkcs11-profiles-rutokenecp poppler printer-drivers-base python3-module-cupshelpers qt5-base-common qt5-x11extras-common system-config-printer system-config-printer-udev systemd systemd-analyze systemd-services systemd-sysvinit systemd-utils udev udev-extras udev-hwdb udev-rule-generator-net udev-rules 263 будет обновлено, 0 новых установлено, 0 пакетов будет удалено и 56 не будет обновлено. Необходимо получить 0B/376MB архивов. После распаковки потребуется дополнительно 151MB дискового пространства. Продолжить? [Y/n] А что не так? Ни одного пакета не удаляется. Не хочешь же ты сказать, что мы не поддерживаем точечные обновления? Created attachment 7820 [details]
Скриншот обновлённой по upgrade системы
Вот что остаётся после перезагрузки
Дима, если у тебя есть желание поискать причину, то я могу выдать тебе виртуалку на которой ты можешь поэкспериментировать что там реально происходит. У меня никогда не было ни времени ни желания посмотреть подробности, но как мне кажется - upgrade слишком много оставляет как "Сохранено". Наверное что-то не так с точечными обновлениями. (In reply to comment #11) > Created an attachment (id=7820) [details] > Скриншот обновлённой по upgrade системы > > Вот что остаётся после перезагрузки Значит, в каком-то пакете не хватает зависимостей. Мне все эти пару десятков лет просто сказочно везло, upgrade проходил нормально. upgrade не устанавливает новых пакетов ни при каких условиях. Что делает твой apt при upgrade, когда у установленной библиотеки появляется новая зависимость ? И что делаешь после этого ты ? Со вчера на сегодня попробуйте apt-get upgrade. Наверняка будет весело. Ты забыл добавить - на рабочей станции с 3D. (In reply to comment #15) > Со вчера на сегодня попробуйте apt-get upgrade. Наверняка будет весело. Обновление с "позавчера" на "вчера" было сломано настолько, что тому, кто смог обновиться до "вчера", уже ничего не страшно. (В ответ на комментарий №17)
> Обновление с "позавчера" на "вчера" было сломано
Я вчера вообще ничего не заметил. Может, потому что dist-upgrade? ;-)
пользователь p8 в очередной раз напомнил мне про проблему apt-get upgrade, когда сказал что дистрибутив после установки и обновления через upgrade становится колом. Предлагаю вернуться к вопросу, что надо dist-upgrade и upgrade слить в одно, добавив отдельную опцию dist-upgrade (например --only-installed). = Второй вариант - мы можем начать тестировать вместо dist-upgrade - upgrade и не пропускать пакеты, ломающие дистрибутивы при таком виде обновления. Нужно решить, какой способ обновления у нас является официально рекомендуемым и сделать второй способ неподдерживаемым. Сделал задание #231585 с заменой у apt-get и apt-shell действия upgrade на dist-upgrade если не указан параметр --only-installed или не выставлена настройка "APT::Get::UpgradeOnlyInstalled" в значение "true". Прошу посмотреть и зааппрувить. (In reply to comment #21) > Сделал задание #231585 с заменой у apt-get и apt-shell действия upgrade на > dist-upgrade Нет, так нельзя, это существенное нарушение обратной совместимости. (В ответ на комментарий №22) > Нет, так нельзя, это существенное нарушение обратной совместимости. Эта "обратная совместимость" существенно ломает систему при обновлении, см: https://bugzilla.altlinux.org/show_bug.cgi?id=30867#c9 https://bugzilla.altlinux.org/show_bug.cgi?id=30867#c11 Если же очень хочется отстреливать себе ноги при обновлениях, можно выставить уже указанную опцию "APT::Get::UpgradeOnlyInstalled" в true в /etc/apt/apt.conf или /etc/apt/apt.conf.d/$something.conf, для всех остальных же по-умолчанию будет upgrade не ломающий систему. Придумайте, пожалуйста, такое решение, чтобы у тех, кто раньше использовал "apt-get upgrade", после обновления не начал вдруг происходить "apt-get dist-upgrade". В крайнем случае можно просто по умолчанию выключить "apt-get upgrade" с выводом сообщения о том, как сделать традиционный upgrade и dist-upgrade. Можно ещё по умолчанию выставить APT::Get::UpgradeOnlyInstalled в true (в apt-get). А нужная нам настройка будет доступна разряботчикам дистрибутивов. При этом если APT::Get::UpgradeOnlyInstalled стоит в true, то выводить предупреждение о том, что в нашей системе штатным средством обновления является apt-get dist-upgrade, а последствия обновления через apt-get upgrade не предсказуемы. Но я знаю трёх пользователей apt-get upgrade и они все работают у нас. Можно персонально каждому рассказать про эту опцию. Ещё вариант - выставить в false, но добавить предупреждение о том что в этой версии данная команда выполняет dist-upgrade и если вам это не нужно - используйте --only-installed (В ответ на комментарий №24) > В крайнем случае можно просто по умолчанию выключить "apt-get upgrade" с > выводом сообщения о том, как сделать традиционный upgrade и dist-upgrade. Вместо вызова dist-upgrade вывести соответствующее сообщение, если не указана опция --only-installed или не выставлено "APT::Get::UpgradeOnlyInstalled" в true при вызове upgrade? Хорошо, могу сделать и так. (In reply to comment #26) > (В ответ на комментарий №24) > > В крайнем случае можно просто по умолчанию выключить "apt-get upgrade" с > > выводом сообщения о том, как сделать традиционный upgrade и dist-upgrade. > > Вместо вызова dist-upgrade вывести соответствующее сообщение, если не указана > опция --only-installed или не выставлено "APT::Get::UpgradeOnlyInstalled" в > true при вызове upgrade? Хорошо, могу сделать и так. Да, так лучше. Сделал новую версию задания #231585, но заменил --only-installed на --enable-upgrade и APT::Get::UpgradeOnlyInstalled на APT::Get::EnableUpgrade, поскольку прошлые названия к новому поведению плохо подходили. (In reply to comment #28) > Сделал новую версию задания #231585, но заменил --only-installed на > --enable-upgrade и APT::Get::UpgradeOnlyInstalled на APT::Get::EnableUpgrade, > поскольку прошлые названия к новому поведению плохо подходили. Меня в целом устраивает. Пожелания к текстам предупреждений: s/in broken state/in a broken state/ s/despite this/despite of this/ s/you can use option '--enable-upgrade'/use '--enable-upgrade' option/ s/or set in apt configuration files.*/or enable APT::Get::EnableUpgrade configuration setting/ (В ответ на комментарий №29) > Меня в целом устраивает. > Пожелания к текстам предупреждений: > s/in broken state/in a broken state/ > s/despite this/despite of this/ > s/you can use option '--enable-upgrade'/use '--enable-upgrade' option/ > s/or set in apt configuration files.*/or enable APT::Get::EnableUpgrade > configuration setting/ Спасибо. Поправил. Так действительно выглядит лучше. Перезапустил задание #231585 (In reply to comment #30) > (В ответ на комментарий №29) > > Меня в целом устраивает. > > Пожелания к текстам предупреждений: > > s/in broken state/in a broken state/ > > s/despite this/despite of this/ > > s/you can use option '--enable-upgrade'/use '--enable-upgrade' option/ > > s/or set in apt configuration files.*/or enable APT::Get::EnableUpgrade > > configuration setting/ > > Спасибо. Поправил. Так действительно выглядит лучше. > > Перезапустил задание #231585 Меня устраивает. 2imz@: в задании #231427 есть apt с таким же релизом; какой из них будем коммитить первым? (In reply to comment #31) > (In reply to comment #30) > > (В ответ на комментарий №29) > > > Меня в целом устраивает. > > > Пожелания к текстам предупреждений: > > > s/in broken state/in a broken state/ > > > s/despite this/despite of this/ > > > s/you can use option '--enable-upgrade'/use '--enable-upgrade' option/ > > > s/or set in apt configuration files.*/or enable APT::Get::EnableUpgrade > > > configuration setting/ > > > > Спасибо. Поправил. Так действительно выглядит лучше. > > > > Перезапустил задание #231585 > > Меня устраивает. > > 2imz@: в задании #231427 есть apt с таким же релизом; какой из них будем > коммитить первым? Я готов свой перенести. Не знаю: нет ли у vseleznv@ про upgrade замечаний? Володя что-то похожее тоже хотел реализовать, у него могли остаться ещё мысли. (In reply to comment #32) > (In reply to comment #31) > > (In reply to comment #30) > > > (В ответ на комментарий №29) > > > > Меня в целом устраивает. > > > > Пожелания к текстам предупреждений: > > > > s/in broken state/in a broken state/ > > > > s/despite this/despite of this/ > > > > s/you can use option '--enable-upgrade'/use '--enable-upgrade' option/ > > > > s/or set in apt configuration files.*/or enable APT::Get::EnableUpgrade > > > > configuration setting/ > > > > > > Спасибо. Поправил. Так действительно выглядит лучше. > > > > > > Перезапустил задание #231585 > > > > Меня устраивает. > > > > 2imz@: в задании #231427 есть apt с таким же релизом; какой из них будем > > коммитить первым? > > Я готов свой перенести. > > Не знаю: нет ли у vseleznv@ про upgrade замечаний? Володя что-то похожее тоже > хотел реализовать, у него могли остаться ещё мысли. У меня нет замечаний, моя реализация практически такая же, только эта удачнее в том, что наличествует опция --enable-upgrade. Я за пропустить. apt-0.5.15lorg2-alt67 -> sisyphus: Wed Jun 05 2019 Aleksei Nikiforov <darktemplar@altlinux> 0.5.15lorg2-alt67 - Print error and disable 'upgrade' by default. Using 'dist-upgrade' instead of 'upgrade' is advised. Allow enabling 'upgrade' via '--enable-upgrade' option or via 'APT::Get::EnableUpgrade' configuration setting (Closes: #30867). |