回答:
覆われているようです。他の唯一のヒントは、ブラインドホールセールアップデートよりも少し遅くすることです。emerge -DNuav <atom>
代わりに、パッケージまたは依存関係チェーンをいつでも個別に更新できますworld
(たとえば、システムライブラリなど、worldファイルに追加したくないものには--oneshotを使用します)。
数か月ごとにモノリシックなバッチ更新を行うよりも、定期的に最新の状態を維持する方が常に簡単です。また、あまりにも多くの驚きを避けるために、あなたはそれが役に立つようなメーリングリストのいずれかに加入するかもしれませんgentoo-user
ほとんどすべてのメジャーアップデートの問題がありそうで、リストに表示されるので、:(〜100通のメールこのリスト上の日WARNING)それらを解決する方法を説明する多くの議論。
次の主要な「問題」のアップデートは、openrcが安定したら移行することだと思います(主にネットワークの変更など、いくつかの問題を抱えてiircが昨年の半ばに行われました)。
私はあなたと同じステップに近いものを使用していますが、以下を除きます:
eix-sync
代わりemerge --sync
に、Portageツリーの変更を見るのが好きだからです。これは、インストールしたいパッケージがツリーに新しく追加されたことに気付くのに特に便利です。
layman -S
(ときどき)メインが現れる前に、オーバーレイの変更を同期します。
eclean-dist -d
revdep-rebuild
廃止されたtarballをきれいにした後。パッケージのダウングレードはそれほど一般的ではないため、出現するたびにこれを行います。
eix-test-obsolete
/ etc / portageファイルを整理して最新の状態に保つための最後のステップとして。これはまた、Portageから完全に削除されたパッケージをいつインストールしたかを知らせてくれるので、リポジトリからebuildを取得する必要があります。最近の例では、Xen VPSで古いカーネルが実行されているため、iproute2のすべてのバージョン> 2.6.22.20070710をマスクする必要がありますが、最近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-headersの1つであるglibc、binutils、libtool、またはgccにmagorの更新(4.6から4.8へのgccの更新など)があることを確認します。手順11に進まない場合。
完全な再構築:
rm -rf PKGDIR/*
PKGDIRをパッケージdirへのパスに置き換えます!emerge -av linux-headers glibc binutils gcc-config libtool gcc
gcc-config <number of new gcc>
新しいgccに切り替えるsource /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の台頭によるものでしょう。
とにかく、あなたが試みるかもしれないもう一つのことは、ただプロセス全体を本当に気にするために、あなたのdistfileを一掃することです。検索すると、そこにスクリプトがあります。
これが私がすることです:
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/en/handbook/handbook-x86.xml?part=2&chap=1
長い間、私は常にこの手順を使用していました。
emerge -f --update --newuse --deep world && emerge --update --newuse --deep world
私にとっては、一晩更新することを好みます。しかし、何かが失敗することが時々起こるので、すべての(またはいくつかの)プログラムを再度ダウンロードする必要があります。
おそらく--newuseスイッチは不要ですが、make.confを編集することが多いので、それは私にとって理にかなっています。