--tree (-t) также удобен для понимания происходящего
lkraav
Ответы:
5
Похоже, что вы покрыли это. Единственный другой совет, возможно, взять его немного медленнее, чем слепое оптовое обновление. Вы всегда можете обновить пакеты или цепочки зависимостей по отдельности с помощью emerge -DNuav <atom>вместо world(используйте --oneshot для вещей, которые вы не хотите добавлять в файл мира, например, для системных библиотек).
Обратите внимание, что это всегда легче сделать, если вы будете регулярно обновляться, а не переходить на монолитные пакетные обновления каждые пару месяцев. Кроме того, чтобы избежать слишком большого количества сюрпризов, вам может быть полезно подписаться на один из списков рассылки, таких как gentoo-user(ВНИМАНИЕ: ~ 100 писем в день в этом списке), так как практически любые серьезные проблемы с обновлением могут появляться в списке с много обсуждений, объясняющих, как их решить.
Я полагаю, что следующим серьезным «проблемным» обновлением станет миграция на openrc, как только он станет стабильным (это было сделано в середине прошлого года в iirc только с несколькими проблемами, прежде всего с сетевыми изменениями).
Да, определенно +1 за то, чтобы идти в ногу со временем на регулярном, а не на огромных кусках. Есть случайные изменения, которые просто ломают много. github.com/lkraav/gentoo-cron-weekly - это мой упрощенный набор инструментов для еженедельных отчетов.
lkraav
8
Я использовал почти те же шаги, что и вы, за исключением:
eix-syncа не emerge --syncпотому, что мне нравится видеть изменения в дереве портежей. Это особенно хорошо для того, чтобы заметить пакеты, которые я мог бы установить, которые являются новыми для дерева.
layman -S (время от времени) до появления основного синхронизировать любые изменения в оверлеях.
eclean-dist -dпосле того, revdep-rebuildкак очистить устаревшие тарболы. Я делаю это после каждого появления, потому что пакеты не так распространены.
eix-test-obsoleteв качестве последнего шага, чтобы сохранить мои файлы / etc / portage в чистоте и актуальности. Это также позволяет мне узнать, когда я установил пакеты, которые были полностью удалены из portage, поэтому мне нужно получить ebuild из репозитория. Недавний пример, я должен замаскировать все версии iproute2> 2.6.22.20070710 из-за более старого ядра, работающего на моем Xen VPS, но оно было недавно удалено из portage.
eix-syncи eix-test-obsoleteнаходятся в app-portage / eix.
Убедитесь, что один из заголовков linux, glibc, binutils, libtool или gcc имеет обновление magor (например, обновления gcc с 4.6 до 4.8). Если это не так, перейдите к шагу 11.
Полная перестройка:
rm -rf PKGDIR/* Замените PKGDIR на ваш путь к пакету dir!
Если ваша цель состоит в том, чтобы иметь абсолютную последнюю версию всех пакетов, то да, похоже, она охватывает все основы. Я удивлен, что это работает для вас долгое время, потому что я представляю, что вас будут часто кусать блоки, разбитые загадки и т. Д. В последние пару лет я стал гораздо более осторожным с оптовыми обновлениями, выбрав вместо этого сделать это по частям после просмотра дерева обновлений. Развитие Gentoo, похоже, прошло свое расцвет. Может быть, это связано с появлением Ubuntu.
В любом случае, еще одна вещь, которую вы можете попробовать, просто чтобы быть очень разборчивой во всем процессе, это очистить ваши дистрибутивные файлы. Есть сценарии, если вы ищете.
Если вы придерживаетесь немаскированных ebuild-ов, то, на мой взгляд, Gentoo стал довольно стабильным и не все ломается, выполняя синхронизацию и появляясь в мире. Вам нужно знать, что вы делаете, но то же самое можно сказать и о apt или yum. Я был укушен обоими.
Джон Дауни
1
Я могу вспомнить о трех недавних блокировках / поломках: libcomerr / e2fsprogs, firefox2 / 3 и xorg 1.3 / 1.5. Во всех этих случаях потребовалось нетривиальное массирование, чтобы сделать оптовое обновление работающим, и не было задействовано ни одного ключевого слова.
Адам Д'Амико
2
Последние версии portage - скажем, в течение последних 6 месяцев - автоматически разрешают практически все блоки и разрывы. Включая libcomerr / e2fsprogs.
Дэн Карли
3
glsa-check -t all
glsa-check -f all
Это то, что вы должны бежать в первую очередь. Это не нужно, если вы обновляете все пакеты.
emerge --sync //Synchronize the package manager with the latest
//version of each package.
emerge -aDvNu system //updates the system, but only important if you want the
//latest stable version of the actual compiler and libraries
//with the core system.
emerge -uDNav world //world means everything we've asked to be emerged before
//this does not include things that came pre installed.
//N means if you change your use directives in
//your make.conf file to pull in the new packages.
emerge -av depclean //removes libraries or programs that don't have any other
//dependencies because of an update.
revdep-rebuild //means if something is broken by an update, it
//recompiles it. Fixes dynamic and static linking problems.
Если вы не совсем понимаете комментарии, прочитайте это, потому что это авторитет в том, как обновить ваши пакеты gentoo.
Ваш процесс корректен, хотя выполнение каждой команды, вероятно, не требуется, обычно я просто делаю синхронизацию и обновляю мир. Emerge обычно сообщит вам, нужно ли вам запускать скрипт для восстановления файла, например, во время крупного обновления Python, а также сообщит, когда объединить изменения конфигурации. Поскольку Gentoo фактически не имеет пути обновления от версии к версии. В тот момент, когда вы появляетесь в мире, вы получаете последнюю версию.
В течение долгого времени я всегда использовал эту процедуру:
emerge -f --update --newuse --deep world && emerge --update --newuse --deep world
Я, для себя, предпочитаю обновлять в течение ночи. Но иногда случается, что что-то не получается, и вам приходится снова загружать все (или некоторые) программы.
Возможно, ключ --newuse не нужен, но я часто редактирую свой make.conf, поэтому он имеет смысл для меня.
Вы можете использовать «--reinstallified-use» вместо «--newuse», это переустанавливает пакеты с использованием флагов использования, которые вы явно изменили. Вместо устаревших, добавленных флагов использования и т. Д. Вы все равно должны время от времени запускать с параметром --newuse.
Хаялчи
0
Выглядит хорошо, хотя я бы не стал так быстро запускать depclean.
Если у вас нет таких требований, как нехватка места на жестком диске, вы можете вернуться и убрать с меньшими регулярными интервалами. Нет ничего плохого в том, чтобы они были рядом в течение короткого периода. Если вам не повезло заметить некоторые поврежденные пакеты после обновления, вы были бы уверены, что они не являются результатом удаления каких-либо свободных зависимостей.
Ответы:
Похоже, что вы покрыли это. Единственный другой совет, возможно, взять его немного медленнее, чем слепое оптовое обновление. Вы всегда можете обновить пакеты или цепочки зависимостей по отдельности с помощью
emerge -DNuav <atom>
вместоworld
(используйте --oneshot для вещей, которые вы не хотите добавлять в файл мира, например, для системных библиотек).Обратите внимание, что это всегда легче сделать, если вы будете регулярно обновляться, а не переходить на монолитные пакетные обновления каждые пару месяцев. Кроме того, чтобы избежать слишком большого количества сюрпризов, вам может быть полезно подписаться на один из списков рассылки, таких как
gentoo-user
(ВНИМАНИЕ: ~ 100 писем в день в этом списке), так как практически любые серьезные проблемы с обновлением могут появляться в списке с много обсуждений, объясняющих, как их решить.Я полагаю, что следующим серьезным «проблемным» обновлением станет миграция на openrc, как только он станет стабильным (это было сделано в середине прошлого года в iirc только с несколькими проблемами, прежде всего с сетевыми изменениями).
источник
Я использовал почти те же шаги, что и вы, за исключением:
eix-sync
а неemerge --sync
потому, что мне нравится видеть изменения в дереве портежей. Это особенно хорошо для того, чтобы заметить пакеты, которые я мог бы установить, которые являются новыми для дерева.layman -S
(время от времени) до появления основного синхронизировать любые изменения в оверлеях.eclean-dist -d
после того,revdep-rebuild
как очистить устаревшие тарболы. Я делаю это после каждого появления, потому что пакеты не так распространены.eix-test-obsolete
в качестве последнего шага, чтобы сохранить мои файлы / etc / portage в чистоте и актуальности. Это также позволяет мне узнать, когда я установил пакеты, которые были полностью удалены из portage, поэтому мне нужно получить ebuild из репозитория. Недавний пример, я должен замаскировать все версии iproute2> 2.6.22.20070710 из-за более старого ядра, работающего на моем Xen VPS, но оно было недавно удалено из portage.eix-sync
иeix-test-obsolete
находятся в app-portage / eix.eclean-dist
находится в app-portage / gentoolkit.источник
emerge --sync
илиeix-sync
илиemerge-delta-webrsync
иeix-update
emerge -av portage
eclean-dist
Убедитесь, что один из заголовков linux, glibc, binutils, libtool или gcc имеет обновление magor (например, обновления gcc с 4.6 до 4.8). Если это не так, перейдите к шагу 11.
Полная перестройка:
rm -rf PKGDIR/*
Замените PKGDIR на ваш путь к пакету dir!emerge -av linux-headers glibc binutils gcc-config libtool gcc
gcc-config <number of new gcc>
Переключиться на новый GCCsource /etc/profile
emerge -avb glibc binutils gcc libtool
emerge -avbke system
emerge -avbke world
Если у вас есть какие-либо проблемы на шаге 10 или 11, то исправьте и попробуйте снова
Обновление мира:
/var/lib/portage/world
от ненужных пакетов и проверьте/etc/portage
объектыfixpackages
emerge -avuDN world
eselect python update
python-updater -- -av
perl-cleaner --all -- -av
emerge -a --depclean
revdep-rebuild -i -- -av
Если у вас возникли проблемы с шагами 14-18, исправьте их и повторите все шаги с шага 13
etc-update
илиdispatch-conf
glsa-check -vp affected
Вы можете повлиять на пакеты в слотах после обновленияemaint --check all
источник
Если ваша цель состоит в том, чтобы иметь абсолютную последнюю версию всех пакетов, то да, похоже, она охватывает все основы. Я удивлен, что это работает для вас долгое время, потому что я представляю, что вас будут часто кусать блоки, разбитые загадки и т. Д. В последние пару лет я стал гораздо более осторожным с оптовыми обновлениями, выбрав вместо этого сделать это по частям после просмотра дерева обновлений. Развитие Gentoo, похоже, прошло свое расцвет. Может быть, это связано с появлением Ubuntu.
В любом случае, еще одна вещь, которую вы можете попробовать, просто чтобы быть очень разборчивой во всем процессе, это очистить ваши дистрибутивные файлы. Есть сценарии, если вы ищете.
источник
Это то, что вы должны бежать в первую очередь. Это не нужно, если вы обновляете все пакеты.
Ох, и я предпочитаю cfg-update;)
источник
Это то, что я делаю:
Если вы не совсем понимаете комментарии, прочитайте это, потому что это авторитет в том, как обновить ваши пакеты gentoo.
http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=2&chap=1
источник
Ваш процесс корректен, хотя выполнение каждой команды, вероятно, не требуется, обычно я просто делаю синхронизацию и обновляю мир. Emerge обычно сообщит вам, нужно ли вам запускать скрипт для восстановления файла, например, во время крупного обновления Python, а также сообщит, когда объединить изменения конфигурации. Поскольку Gentoo фактически не имеет пути обновления от версии к версии. В тот момент, когда вы появляетесь в мире, вы получаете последнюю версию.
источник
В течение долгого времени я всегда использовал эту процедуру:
Я, для себя, предпочитаю обновлять в течение ночи. Но иногда случается, что что-то не получается, и вам приходится снова загружать все (или некоторые) программы.
Возможно, ключ --newuse не нужен, но я часто редактирую свой make.conf, поэтому он имеет смысл для меня.
источник
Выглядит хорошо, хотя я бы не стал так быстро запускать depclean.
Если у вас нет таких требований, как нехватка места на жестком диске, вы можете вернуться и убрать с меньшими регулярными интервалами. Нет ничего плохого в том, чтобы они были рядом в течение короткого периода. Если вам не повезло заметить некоторые поврежденные пакеты после обновления, вы были бы уверены, что они не являются результатом удаления каких-либо свободных зависимостей.
источник
Вот как я делаю это на своем VPS:
шаг 0 (из / etc / crontab)
шаг 1:
шаг 2:
источник