[РЕШЕНО]Почему emerge -puDNv world находит не все обновления

# emerge -puDNv world
These are the packages that would be merged, in order:
Calculating dependencies... done!
Total: 0 packages, Size of downloads: 0 KiB

eix vkd3d
[U] app-emulation/vkd3d
     Доступные версии:      1.5^t {ncurses spirv-tools ABI_MIPS="n32 n64 o32" ABI_S390="32 64" ABI_X86="32 64 x32"}
     Установленные версии:  1.2(13:16:36 20.11.2020)(-spirv-tools ABI_MIPS="-n32 -n64 -o32" ABI_S390="-32 -64" ABI_X86="32 64 -x32")
     Домашняя страница:     https://gitlab.winehq.org/wine/vkd3d/
     Описание:              D3D12 to Vulkan translation library

* app-emulation/vkd3d-proton
     Доступные версии:      ~2.6 **9999*l {crossdev-mingw debug extras ABI_X86="(+)32 64"}
     Домашняя страница:     https://github.com/HansKristian-Work/vkd3d-proton/
     Описание:              Fork of VKD3D, development branches for Proton's Direct3D 12 implementation

# emerge -pv app-emulation/vkd3d

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  N     ] dev-util/spirv-headers-1.3.224::gentoo  427 KiB
[ebuild     U  ] app-emulation/vkd3d-1.5::gentoo [1.2::gentoo] USE="ncurses%* -spirv-tools" ABI_X86="32 (64) (-x32)" 759 KiB

Total: 2 packages (1 upgrade, 1 new), Size of downloads: 1 185 KiB

Т.е. мне казалось, что после emerge -puDNv world не должно оставаться не обновленных пакетов.

# eclean -d distfiles
 * Building file list for distfiles cleaning...
 * Your distfiles directory was already clean.

   The following unavailable installed packages were found
             app-emulation/vkd3d-1.2

Так же не понятно почему ругается eclean

Потому что так надо.

emerge -vpuND --backtrack=40 @system @world

pascorp написал(а):
Так же не понятно почему ругается eclean

Очистка системы от ненужных/несуществующих пакетов (например, emerge -qc), потом уже чистка дистрибутивов: eclean-dist -d.

Информация к размышлению:

Опцию -d можно применять только тогда, когда портаж используется для этой одной системы, т.е. в системе нет виртуальных машин и/или других удалённых систем, разделяющих доступ к портажу (NFS, 'mount --bind' и т.п.) и отличающихся конфигурациями.

Спасибо за ответ,

Спасибо за ответ, но:

# emerge -vpuND --backtrack=40 @system @world

These are the packages that would be merged, in order:

Calculating dependencies... done!

Total: 0 packages, Size of downloads: 0 KiB

Ну, тогда :)

Против лома нет приема:

emerge -qpe @system @world | grep " U "

Потом с ключиками -q1 пересобираем, что нужно.

Как оказалось, есть такие

Как оказалось, есть такие приемы :-) по предложенной команде все пакеты предлагается просто пересобрать.

Вобщем буду просто периодически выполнять EIX_LIMIT=0 eix -cu и по результату пересобирать в ручную пакеты.

Спасибо.

Поломаешь систему.

pascorp написал(а):
Как оказалось, есть такие приемы :-) по предложенной команде все пакеты предлагается просто пересобрать.

Вобщем буду просто периодически выполнять EIX_LIMIT=0 eix -cu и по результату пересобирать в ручную пакеты.

Спасибо.

Значит, нечего обновлять. Бывают ситуации, когда какой-то пакет требует по зависимости не последнюю версию зависимого пакета, а вполне определенную. Обновишь - поломаешь. eix -Icu (ключик I нужен, чтобы ограничиться установленными пакетами, а не весь portage высыпать), например, это не учитывает, просто даст пакеты которые можно обновить, но зависимости развалятся.

P.S.

Очевидно, у тебя есть версии, собранные вручную с явным указанием версии. Например, командой вида:

emerge -q =gtkmm-3.24.6-r1

В world пакет gtkmm попал с явным указанием версии, значит, обновляться не будет. Но! В приведенном примере он необходим именно третьей версии. Если обновить до четвертой, есть такая возможность, то Inkscape, которому он нужен, все равно потребует третью версию. За коллизии и несовместимости уже отвечает обновлятор, он и должен будет разбираться с этим странным зоопарком. Кстати, если в world попадают пакеты с указанием версий, на них и emerge -qc не действует. Считается, что именно этот пакет этой версии и есть то, что нужно создателю мира, а ему виднее, кто кому буратино.

В файле /var/lib/portage/world не должно быть указаний версий - раз. Должны быть перечислены только конечные пакеты, от которых уже ничего не зависит, это два. Цепочки зависимости строятся по ebuild'ам системой portage и никак иначе.

Для справки:

Последнее утверждение уже не соответствует текущему функционированию портажа: ныне он при обновлении пакетов сам пихает в /var/lib/portage/world практически все пакеты! Можешь для проверки выполнить команду

grep lib /var/lib/portage/world

и удивиться! :D

Сделал.


...@... ~ $ grep lib /var/lib/portage/world
app-office/libreoffice
...@... ~ $ grep -c '' /var/lib/portage/world
90

Это все (90 строк и единственный lib - libreoffice). Приведи свой результат. Хочу удивиться.

Удивляйся! :)

desktop ~ # grep lib /var/lib/portage/world|wc -l
444
desktop ~ # wc -l /var/lib/portage/world
1466 /var/lib/portage/world
desktop ~ # equery list "*"|wc -l
1959

Кстати, а какой у тебя профиль? Мой:

desktop ~ # eselect profile list|grep '*'
  [5]   default/linux/amd64/17.1/desktop (stable) *

И еще - покажи инфу портажа. Моя:

desktop ~ # emerge --info|wgetpaste
Your paste can be seen here: http://dpaste.com/876E79JKQ

Эт запросто.


... @ ... ~ $ eselect profile list | grep "*"
[1] default/linux/amd64/17.1 (stable) *
... @ ... ~ $ emerge -qpe system world| grep -c ''
920

Ну, и --info от emerge: https://dpaste.com/8CEB7N5CJ

Объемом твоего мира удивлен! Три четверти всех пакетов системы. При моей десятой выглядит странно. %)

Ну, я как бы и рулю не слишком простыми системами! :D

Видимо разница в том, что ты, похоже, программист, а я - сисадмин! И мой комп не только как терминал и/или традиционный десктоп используется, но и как полигон для опробования разных штучек! ;) Во многом благодаря Генте... :) на бинарных дистрибутивах так не поиграешься...

.

Пользуюсь виртуализацией. Воспроизводство и масштаб.

Не понятно, почему у нас такая разница в поведении портажа...

Единственное серьёзное отличие я увидел в том, что ты не используешь системдю... Неужели это может повлиять?..

Не должно.

Не должно. Разница в использовании системы.

Я понимаю, что не должно...

хотя и не исключаю такого... возможно без системд используются более старые версии пакетов, например...
Надо бы сравнить, но лень! :) Кстати, если вдруг захочешь сравнить: http://dpaste.com/3MQZ8FGM7

Незачем.

Достаточно одинаковых связок ядро-gcc-binutils-glibc.

SysA написал(а):
... Надо бы сравнить, но лень! :) ...

Выискивать отличия нескольких сотен пересекающихся среди почти трех тысяч... Неоправданно. Глянул краем глаза, отличия уровня X.Y.Z и X.Y.Z-r1.

Ты не о том, ну да ладно...

Причём тут тулчейн, если вопрос был о различном функционировании портажа?!
Поэтому нужно сравнивать только его утилиты.

SysA написал(а):Причём тут

SysA написал(а):
Причём тут тулчейн, если вопрос был о различном функционировании портажа?!
Поэтому нужно сравнивать только его утилиты.

Portage версии 3.0.38.1. Пока ему не скажешь, он ничего в world не пишет.

$ equery -q l app-portage/*
app-portage/eix-0.36.5
app-portage/elt-patches-20211104
app-portage/gemato-16.2
app-portage/gentoolkit-0.5.1-r1
app-portage/portage-utils-0.94.1

# equery -q l app-portage/*

.

Еще один USE исключил.

Еще один USE исключил для portage, -rsync-verify. Минус два пакета из мира. :)

Не самое лучшее решение...

1. Отключать проверку стоит только для своих доверительных репозиториев - например, у меня стоят зеркалирующие прокси для портажа, которые делают проверку автоматически для каждого изменения. А все рядовые хосты пользуются только этими прокси. Поэтому на хостах проверка отключена.
2. Не вижу смысла гнаться за минимизацией мира...

Еще лучше так:

emerge -uDNU --with-bdeps=y --changed-deps=y --verbose-conflicts @world -pv

А eclean не ругается, а предупреждает, что данная версия пакета отсутствует в репозитории. После полного обновления это сообщение пропадёт.

Спасибо за ответ, но на

Спасибо за ответ, но на emerge -uDNU --with-bdeps=y --changed-deps=y --verbose-conflicts @world -pv пишет:
Total: 667 packages (667 reinstalls)

Т.е. предлагает просто пересобрать, а не обновить.
В то же время:

EIX_LIMIT=0 eix -cu
[?] app-crypt/kencfs-plasma (2.0.2_alpha@19.09.2020 -> ~2.0.2_alpha): GUI frontend for encfs
[?] app-emulation/wine-gecko (2.47.3(2.47.3)@03.09.2022 -> 2.47.2(2.47.2)): A Mozilla Gecko based version of Internet Explorer for Wine
[?] app-emulation/wine-mono (7.3.0(7.3.0)@02.07.2022 -> 7.0.0(7.0.0)): Replacement for the .NET runtime and class libraries in Wine
[?] app-emulation/wine-staging (7.18(7.18)@24.09.2022 -> ~7.16(7.16)^t ~7.17(7.17)^t ~7.18(7.18)^t): Free implementation of Windows(tm) on Unix, with Wine-Staging patchset
[U] app-text/docbook-sgml-dtd (3.0-r5(3.0)@25.12.2021 -> 3.0-r5(3.0) 3.1-r5(3.1) 4.0-r5(4.0) 4.1-r5(4.1) 4.2-r4(4.2) 4.3-r4(4.3) 4.4-r2(4.4) 4.5-r2(4.5)): Docbook SGML DTD 4.5
[?] app-text/poppler (22.10.0(0/125)@08.10.2022 -> 22.09.0(0/124)^t): PDF rendering library based on the xpdf-3.0 code base
[U] dev-cpp/atkmm (2.28.2-r1@24.09.2022 -> 2.28.2-r1 2.36.2-r1(2.36)): C++ interface for the ATK library
[U] dev-cpp/cairomm (1.14.3-r1@24.09.2022 -> 1.14.3-r1^t 1.16.1-r1(1.16)^t): C++ bindings for the Cairo vector graphics library
[U] dev-cpp/glibmm (2.66.4-r1(2)@24.09.2022 -> 2.66.4-r1(2)^t 2.72.1-r1(2.68)^t): C++ interface for glib2
[U] dev-cpp/gtkmm (3.24.6-r1(3.0)@24.09.2022 -> 2.24.5-r1(2.4)^t 3.24.6-r1(3.0)^t 4.6.1-r1(4.0)^t): C++ interface for GTK+
[U] dev-cpp/pangomm (2.46.2-r1(1.4)@24.09.2022 -> 2.46.2-r1(1.4) 2.50.0-r1(2.48)): C++ interface for pango
[U] dev-db/postgresql (13.5-r1(13)@03.07.2022 14.5(14)@21.08.2022 -> 10.22(10) 11.17(11) 12.12(12) 13.8(13) 14.5(14)): PostgreSQL RDBMS
[U] dev-lang/python (2.7.18_p15-r1(2.7)@15.10.2022 3.8.15(3.8)@15.10.2022 3.9.13(3.9)@10.07.2022 3.10.8(3.10)@15.10.2022 -> 2.7.18_p15-r1(2.7) 3.8.15(3.8)^t 3.9.15(3.9)^t 3.10.8(3.10)^t): An interpreted, interactive, object-oriented programming language
[U] dev-libs/libsigc++ (2.10.7-r1(2)@24.09.2022 -> 2.10.7-r1(2)^t 3.2.0-r1(3)^t): Typesafe callback system for standard C++
[?] dev-qt/qt-creator (6.0.0@03.07.2022 -> ~6.0.0^t): Lightweight IDE for C++/QML development centering around Qt
[?] games-puzzle/einstein (2.1.1@20.11.2020 -> ~2.1.1): A puzzle game inspired by Albert Einstein
[?] games-util/gamemode (1.7@21.08.2022 -> ~1.7): Optimise Linux system performance on demand
[?] games-util/steam-launcher [1] (1.0.0.56@08.01.2022 -> ~1.0.0.56^md): Installer, launcher and supplementary files for Valve's Steam client
[?] kde-misc/colord-kde (0.5.0_p20220907(5)@24.09.2022 -> ~0.5.0_p20220907(5)): Provides interfaces and session daemon to colord
[U] media-libs/libuninameslist (20200413-r2(0/1)@18.09.2021 -> 20211114(0/1)): Library of unicode annotation data
[?] net-im/skypeforlinux (8.87.0.403-r1@08.10.2022 -> ~8.87.0.403-r1^msd): Instant messaging client, with support for audio and video
[?] net-im/telegram-desktop-bin (4.2.4@08.10.2022 -> ~4.2.4): Official desktop client for Telegram (binary package)
[U] net-libs/libsignon-glib (2.1@09.07.2022 -> 2.1-r1^t): GLib binding for the D-Bus API provided by signond
[U] sys-apps/man-pages-posix (2017a@03.04.2021 -> 2017a-r1^b): POSIX man-pages (0p, 1p, 3p)
[?] sys-devel/binutils (2.37_p1-r2(2.37)@13.03.2022 2.38-r2(2.38)@10.09.2022 -> 2.38-r2(2.38)^t): Tools necessary to build programs

т.е. находит несколько пакетов которые могут обновиться, но почему-то не обновляются по общей команде emerge puDNv world

Все немножко не так, как ты себе представляешь...

pascorp написал(а):
Спасибо за ответ, но на emerge -uDNU --with-bdeps=y --changed-deps=y --verbose-conflicts @world -pv пишет:
Total: 667 packages (667 reinstalls)

Т.е. предлагает просто пересобрать, а не обновить.

Видимо это потому, что у тебя есть много некорректно собранных пакетов, вот тебе и предлагается полная пересборка, которая заодно и обновит пакеты. Так будет не всегда - при последующих обновлениях все должно быть нормально. Я так уже несколько лет делаю...

pascorp написал(а):
...
т.е. находит несколько пакетов которые могут обновиться, но почему-то не обновляются по общей команде emerge puDNv world

А не обновляются, потому как они, наверное, были поставлены по зависимости, и их, видимо, нет в
/var/lib/portage/world, и они не учитываются при расчёте зависимостей по опции -D. Именно эту проблему/свойство устраняет набор опций, который я дал в предыдущем сообщении.

Кстати, после обновления рекомендую выполнить revdep-rebuild -ipv - возможно будет найдено несоответствие библиотек, которое могло вызвать полную пересборку, о которой ты упомянул вначале.

Также после окончательного обновления настоятельно рекомендую emerge --depclean -a, чтобы убрать ненужные пакеты. Но перед тем, как разрешить удаление, внимательно просмотри список - иногда система может предложить удалить нужные тебе пакеты. В этом случае их надо будет зафиксировать в портаже вручную.

Всем спасибо.

Буду периодически, после обновления, выполнять EIX_LIMIT=0 eix -cu для выявления таких пакетов.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".