Ось так я довго вдосконалював Gentoo. Це рекомендований метод? Будь-які прийоми чи кращі методи використання?
emerge --sync
emerge -uDav --tree world
emerge -av --depclean
revdep-rebuild -v -- --ask
dispatch-conf
glsa-check -t all
glsa-check -f all
Ось так я довго вдосконалював Gentoo. Це рекомендований метод? Будь-які прийоми чи кращі методи використання?
emerge --sync
emerge -uDav --tree world
emerge -av --depclean
revdep-rebuild -v -- --ask
dispatch-conf
glsa-check -t all
glsa-check -f all
Відповіді:
Схоже, ви це накрили. Єдина інша порада - можливо, це зробити трохи повільніше, ніж сліпе оптове оновлення. Ви завжди можете оновлювати пакунки або ланцюги залежностей окремо, 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
знаходиться в додатку / 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.
У будь-якому разі, одна додаткова річ, яку ви можете спробувати, просто щоб бути дуже прискіпливою до всього процесу, - це очищення ваших невдач. Якщо ви шукаєте, є сценарії.
Це те, що я роблю:
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.
http://www.gentoo.org/doc/uk/handbook/handbook-x86.xml?part=2&chap=1
Ваш процес правильний, хоча виконання кожної команди, ймовірно, не потрібно, я просто виконую синхронізацію та оновлення. Emerge підкаже вам, як правило, потрібно запустити скрипт для відновлення файлу, наприклад, під час великого оновлення Python, а також підкаже, коли слід об'єднати зміни конфігурації. Оскільки Gentoo насправді не має шляху оновлення від версії до версії. Як тільки ви з'явитесь у світі, ви отримаєте останню версію.
Давно я завжди використовував цю процедуру:
emerge -f --update --newuse --deep world && emerge --update --newuse --deep world
Я, моє, вважаю за краще оновлюватись протягом ночі. Але іноді трапляється щось, що не вдається, і тому вам доведеться знову завантажувати всі (або деякі) програми.
Можливо, перемикач --newuse є нецікавим, але я часто редагую свій make.conf, щоб для мене це мало сенс.
Виглядає чудово, хоча я не був би таким швидким, щоб запустити depclean.
Якщо у вас немає такої вимоги, як низький простір на жорсткому диску, ви можете повернутися і відмовитися від менш регулярних інтервалів. Немає шкоди мати їх навколо протягом короткого періоду. Якщо вам не пощастило помітити кілька пошкоджених пакетів після оновлення, ви будете впевнені, що вони не є результатом видалення будь-яких вільних залежностей.