Глубочайшее обновление системы [РЕШЕНО]

Давно мучал меня этот вопрос, вот добрался наконец его запостить.

Возможно это уже спрашивали и есть решение, но я или плохо искал или правда ничего нет. Сильно не бейте, если что. :-)

При обновлении системы я обычно синхронизирую дерево портежей (portage tree), потом делаю emerge -uDNpv world, если что-то меня не устраивает - привожу в порядок и делаю само обновление emerge -uDN world.

После того, как система обновилась я делаю emerge --depclean, revdep-rebuild и чищу дистфайлы с помощью eclean.

Так вот если сделать снова emerge -uDNpv world показывает, что обновлять нечего. А если сделать emerge -epv world показывает что какие-то пакеты программ надо обновить (U), а какие-то вовсе (N) неустановлены.

Для наглядности привожу вывод emerge -epv world:

localhost vad # emerge -epv world

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

Calculating dependencies... done!
[ebuild   R   ] sys-apps/portage-2.1.6.4  USE="-build -doc -epydoc (-selinux)" LINGUAS="-pl" 0 kB [0]
[ebuild   R   ] dev-util/pkgconfig-0.23  USE="-hardened" 0 kB [0]
[ebuild   R   ] sys-libs/zlib-1.2.3-r1  0 kB [0]
[ebuild   R   ] virtual/libintl-0  0 kB [0]
[ebuild   R   ] app-arch/lzma-utils-4.32.7  USE="-nocxx" 0 kB [0]
[ebuild   R   ] dev-libs/expat-2.0.1-r1  0 kB [0]
[ebuild   R   ] sys-devel/gnuconfig-20080928  0 kB [0]
[ebuild   R   ] media-libs/libogg-1.1.3  0 kB [0]
[ebuild   R   ] app-arch/bzip2-1.0.5-r1  USE="-static" 0 kB [0]
[ebuild   R   ] virtual/libiconv-0  0 kB [0]
[ebuild   R   ] app-arch/unzip-5.52-r2  0 kB [0]
[ebuild   R   ] sys-devel/automake-wrapper-3-r1  0 kB [0]
[ebuild   R   ] dev-db/sqlite-3.6.8  USE="threadsafe -debug -doc -soundex -tcl" 0 kB [0]
.....


[ebuild     U ] app-arch/cabextract-1.2-r1 [1.2] USE="-extra-tools%" 0 kB [0]
[ebuild  N    ] dev-perl/yaml-0.68  91 kB [0]
[ebuild  N    ] dev-perl/IO-String-1.08  8 kB [0]
[ebuild  N    ] perl-core/Package-Constants-0.02  3 kB [0]
[ebuild  N    ] dev-perl/IO-Compress-Bzip2-2.015  74 kB [0]
[ebuild  N    ] perl-core/IO-Zlib-1.09  10 kB [0]
[ebuild  N    ] virtual/perl-IO-Zlib-1.09  0 kB [0]
[ebuild  N    ] perl-core/Archive-Tar-1.42  USE="bzip2" 48 kB [0]
[ebuild  N    ] virtual/perl-Archive-Tar-1.42  0 kB [0]

Что это? И почему так?

emerge -auvDN world

emerge -auvDN world рассчитывает только те обновления, которые
1. вызваны сменой USE-флагов установленных пакетов;
2. вызваны изменением версии чего-то, указанного в world/system или его runtime-зависимостей.
Однако, кроме runtime-зависимостей (RDEPEND в ебилдах), есть ещё и зависимости для сборки (DEPEND), которые не нужны для собственно работы пакета, а только для компиляции. Не обновляются они потому, что, раз собирать нечего (например, пакет, в DEPEND которого входит искомый, уже наипоследней версии), то и пользы от обновления никакой не будет. Для полного обновления того, что как-то повлияет на работу системы, достаточно выполнить

emerge --sync
emerge -auvDN world
glsa-check -f $(glsa-check -t all)
revdep-rebuild
emerge --ask --depclean

В данном случае, например, видно, что app-arch/cabextract был нужен для распаковки чего-то во время установки. Чтобы он обновился тоже, нужно добавить его в world, то есть явно указать, что он нам нужен.

В дополнении к выше сказанному...

emerge -vauDN --with-bdeps=y world будет пересобирать всё, включая сборочные зависимости. А ключ -e нужен для тотального отслеживания зависимостей вплоть до glibc, и для обычного обновления не требуется (если вы конечно не меняли тулчейн - glibc, gcc, etc)...

спасибо за --with-bdeps=y

спасибо за --with-bdeps=y

Спасибо за ответы! Все

Спасибо за ответы! Все понятно сразу стало. Только вот неясно про перловые пакеты, почему они N, ведь если это сборочные зависимости - они должны быть уже установлены. А так оно хочет новые поставить, не понятно для каких целей.

Изучайте catalyst

и таинства инфраструктуры сборки стейджей и LiveCD! ;-)

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

Небольшое уточнение...

Здесь понятие сборочных зависимостей не совсем верно.
Потому как в gentoo абсолютно всё собирается из сорцов
и сборочные зависимости как раз-таки разрешаются всегда
(dependecies resolution).

В этом треде (и ключе --with-bdeps) речь как раз идёт о
т.н. НЕОБЯЗАТЕЛЬНЫХ зависимостях времени сборки (not stricticly
required). Каким образом они определяются, честно говоря, не знаю,
но думаю, что это не чистая дельта между DEPENDS и RDEPENDS в ебилдах.

Они всё равно подтягиваются на этапе сборки, но для них не
выполняется процедура инсталляции в рут-систему (обновления файла
world). --with-bdeps=y изменяет это поведение, и они окажутся
установленными, что увеличит размер образа системы и ускорит
последующие обновления.

Чтобы заморозить такое поведение emerge навсегда и не прописывать
опцию каждый раз, можно прописать этот ключ в EMERGE_DEFAULT_OPTS.
Важно ещё заметить, что эта опция также будет влиять на поведение
emerge --depclean: с ключом --with-bdeps=y такие пакеты не будут
удаляться... ;-)

Еще раз спасибо! Добавлю в

Еще раз спасибо! Добавлю в тему [РЕШЕНО].

Большое спасибо модераторам,

"Большое спасибо" модераторам, что тему перенесли в "Афтар пеши есчо!" Может мне надо было на удафф.ком вопрос этот задать?

всегда пожалуйста, приношу

всегда пожалуйста, приношу свои извинения - сделал это поздновато...
на досуге советую почитать
http://www.gentoo.ru/node/8754
http://www.gentoo.ru/node/8278

Ну Вашего любимого

Ну Вашего любимого "Олбанского" в моих постах вообще нет, если вы внимательно прочли и заметили.
Слова "выхлоп" и "мешки" конечно жаргонные, но сути для поиска не меняет, если человек ищет по словам "обновление системы". А не это - "как постирать носки?"
Не нравится наверное слово "Глубочайшее", а как еще это назвать? "Самое глубокое"? Может конечно Вам что-то это и напоминает, но я лично писал о gentoo.
В чем вообще причина переноса темы? Маны не внимательно читал? Ну может быть - не спорю. Но я об этом написал же в первых строках своего поста.

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

Если честно, во всём виноват модератор! =))))

Это evadim-а надо благодарить! В своё время спросил его, как он делает emerge world,
а то в сети навалом вариантов. Так что эти тонкости ко мне тоже не из мана пришли...

Но я всё время, как открывал сабж "Глубочайшее..." тоже невольно смеялся. Хотя честно
не понимаю, почему? Мне так и не удалось подобрать более лаконичного названия сабжу.
Тотальное - вроде как слово не совсем русское. Но тут же проскочила тема "emerge world"
и её не стали расстреливать. ;-) Может это имелось ввиду? А может, что слишком большая
простыня вложена, и это мешает индексации сайта и даже написанию/чтению текста, приходится
разносить строки, не знаю...

Но в любом случае - спасибо за хороший вопрос!
Порою сам начинаю понимать, чего отвечать надо!!! =)))

к обычаям употребления слов

vad написал(а):
Слова "выхлоп" и "мешки" конечно жаргонные

Однако, предлагаю термину "мешок" придать статус официального и легального. "Пакет" совершенно непригоден, особенно когда объясняешь заключенную в нем важность непосвященному, и особенно если ранее упоминались TCP/IP "пакеты" (где данный термин вполне адекватен).

Есть ли у товарищей замечания, предложения?

:}

звучит бредово, сколько лет я

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

в целом кто такие "портки"?

в целом кто такие "портки"? портянки? не понимаю, они тут причём?
мешки? с "картохами" ?
слово "выхлоп" как и сам вывод emerge на два десятка страниц тоже "слегка" покоробили, сам пост написан (ИМХО) в "кулхацкерском" стиле - вцелом сложилось мнение о том что это "аффтарский криатифф".
я не прав?
поправь эти 3 слова (желательно ещё-бы вывод всётаки на pastebin перезалить) и я верну пост на место.

P.S. если случайно обидел - приношу свои извинения

но ведь package != packet

Ну ладно, ладно... Буду говорить "инсталлируемая единица", чтоб только не издеваться над русским языком, произнося "пэкидж" :}

:}

А зачем? IMHO довольно тонкий

А зачем? IMHO довольно тонкий момент запрошен/описан, другое дело как.

Все исправил. Огромное

Все исправил. Огромное спасибо за понимание. Очень рад, что пришли к консенсусу.

Ведь я тоже был не прав, пост действительно получился очень похож на "кулхацкерский" стиль, но к "афтарам" отношения не имеет.
Отдельно извиняюсь за огромный листинг вывода emerge, мне казалось что так будет нагляднее о чем идет речь. Исправил.

И о названии самой темы:
Слово "Тотальное" на мой взгляд действительно может сбивать с толку, т.к. можно подумать, что под этим подразумевается обычный emerge -uDN world.
Поэтому выбрал слово "Глубочайшее".
Кому-то возможно оно режет слух в связи с выполнением плана Даллеса у нас в России, т.к. произошел сдвиг ценностей в сторону сисек-пиписек у населения - но это не ко мне, я всего лишь высказал свое мнение.
Предлагаю варианты:
"Особо глубокое"
"Очень глубокое"
И так как в голову ничего другого не приходит, прошу модераторов переименовать тему по своему вкусу с сохранением смысла или воспользоваться одним из моих вариантов.

Благодарю за понимание, а про

Благодарю за понимание, а про название темы я ничего не говорил - название как название, странноватое слегка и только.
а для огромных листингов (которые несомненно иногда нужны) есть сайты вроде http://paste.org.ru/ или подобные, и даже утилитка wgetpaste

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

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