LINUX.ORG.RU

Обновление системы в Gentoo. Непонятки с -uDN

 , ,


0

2

Везде и всюду пишут что единственно рассово верный способ обновлять генту — emerge -uDN world.
По логике вещей, эта команда должна пробежаться по всем пакетам с их зависимости найти что можно обновить, отрезолвить зависимости и максимально обновить систему, так?

emerge -uDN world
...
Total: 29 packages (15 upgrades, 14 reinstalls)

emerge -e world
...
Total: 900 packages (115 upgrades, 785 reinstalls)

Почему так? Почему полная пересборка мира выявляет больше возможных обновлений, чем, собственно --update --deep, и как можно устроить ту же пересборку, максимально привести систему к актуальному состоянию, но не пересобирать лишнего?

P.S. Мне все равно на просроченные на пару дней(недель, месяцев, лет) пакеты, просто такое поведение портажей меня крайне заинтересовало, и я не могу найти логического объяснения оному.

Нужно бы посмотреть список обновляемых пакетов в обоих случаях.

alexferman ★★ ()

Очевидно, потому что -e пересобирает тупо весь мир, -uDN пересобирает только устаревшие пакеты и сломанные бинарные зависимости.

anonymous ()
Ответ на: комментарий от anonymous

А, невнимательно прочитал оппост.

anonymous ()

Никогда не обновляю систему скопом и нахрапом, куда проще, легче и понятнее, а также беспроблемнее обновлять только то, что нужно, ну или всё, но попакетно, смотря в выхлоп eixicu ( alias eixicu='eix -Icu' ).

Если же обновлять с наскока и нахрапом, то практически всегда отгребаешь проблемы, это при условии, что удалось разрулить рекурсивные зависимости/конфликты и блоки перед тотальным обновлением мира, лол.

kep ()

Потому что "-e world" значит «пересобрать все установленные пакеты» а "-uDN" значит пересобрать обновившиеся/с изменёнными юзами с зависимостями.

anonymous ()
Ответ на: комментарий от kep

Да ну, тут ты, по моему, приукрашиваешь.

За последний год только пару раз были проблемы с зависимостями, да и те решались ручным разруливанием довольно быстро.
Вот раньше да — когда я только пришел на генту, блокировки и циклические зависимости вылетали только так на ровном месте.

mersinvald ★★★★ ()
Ответ на: комментарий от anonymous

Ну так если их обновилось там 115 штук, а -uDN видит только 15, это как понимать?
Или портаж сотню просто выдумал?

mersinvald ★★★★ ()

Там скорее всего всякие перловые скрипты, в новые слоты, и прочее несовместимое и никому не нужное.

anonymous ()

Потому что ещё неплохо бы --with-bdeps=y

А ещё лучше читать man emerge

daemonpnz ★★★★★ ()
Последнее исправление: daemonpnz (всего исправлений: 1)

Зы. правильно команда для полного обновления выглядит так, хоть и выполняется чуточку дольше emerge -uDN @world --with-bdeps=y можно ещё --keep-going добавить, чтобы не горело потом. Хотя оно может сломать всё ненароком, если проблема, скажем, в изменённых флагах.

anonymous ()

Потому что при полном пересборе обновляться будут еще и ненужные пакеты, которые есть у тебя в системе (билд-зависимости того, что у тебя стоит, но не обновляется).

// тред не читал, если что

Stil ★★★★★ ()
Ответ на: комментарий от mersinvald

Вроде бы если делать emerge -uDN @world, то на пересборку отправляются только те пакеты которые требуют обновдлений(-u), зависимости пакетов в @world(-D) и те которые поменяли список юзов(-N/-U).

Если делать emerge -e @world, то пересобираются все пакеты и их зависимости.

Т.е. можно предположить что 100 пакетов которые отправились на пересборку просто ни отчего независят в @world.

exepush ()

добавь все пакеты в world (не делай так)

anTaRes ★★★★ ()

Потому, что у тебя там куча пакетов, которые не нужны, но которые emerge -e world тоже захочет обновить. emerge -av --depclean в помощь (поосторожней с ним).

И, да, у меня команда обновления (без нерелевантных опций) выглядит как emerge -uDN --with-bdeps=y --complete-graph=y.

Kroz ★★★★★ ()
Последнее исправление: Kroz (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.