这就是我长期以来一直在升级 Gentoo 的方式。这是推荐的方法吗?任何问题或更好的使用方法?
emerge --sync
emerge -uDav --tree world
emerge -av --depclean
revdep-rebuild -v -- --ask
dispatch-conf
glsa-check -t all
glsa-check -f all
Run Code Online (Sandbox Code Playgroud)
小智 9
我一直在使用与您几乎相同的步骤,除了:
eix-sync而不是emerge --sync因为我喜欢看到 portage 树的变化。这对于注意到我可能想要安装的新软件包特别有用。
layman -S (偶尔)在主出现之前同步覆盖中的任何更改。
eclean-dist -d在revdep-rebuild清理过时的 tarball 之后。我在每次出现后都这样做,因为包降级并不常见。
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 中。
小智 6
emerge --sync或eix-sync或emerge-delta-webrsync和eix-updateemerge -av portageeclean-dist检查 linux-headers、glibc、binutils、libtool 或 gcc 之一是否有重大更新(例如 gcc 从 4.6 更新到 4.8)。如果不是,请转到步骤 11。
完全重建:
rm -rf $(portageq pkgdir)/* — 清理 PKGDIR 中的缓存emerge -av linux-headers glibc binutils gcc-config libtool gccgcc-config <number of new gcc> 切换到新的 gccsource /etc/profileemerge -avb glibc binutils gcc libtoolemerge -avbke systememerge -avbke world如果您在步骤 10 或 11 中遇到任何问题,请修复它并重试
更新世界:
/var/lib/portage/world从不必要的包中清除您的世界文件并检查/etc/portage实体fixpackagesemerge -avuDN worldeselect python updatepython-updater -- -avperl-cleaner --all -- -avemerge -a --depcleanrevdep-rebuild -i -- -av如果您在步骤 14-18 中遇到任何问题,请修复它并重复步骤 13 中的所有步骤。
etc-update 或者 dispatch-confglsa-check -vp affected 更新后,您可以在插槽中包含受影响的软件包emaint --check all看起来你已经涵盖了它。唯一的其他提示是可能比盲目的批发更新慢一点。你总是可以单独更新包或依赖链,emerge -DNuav <atom>而不是world(对于你不想添加到世界文件的东西,例如系统库,使用 --oneshot )。
请注意,如果您定期更新,而不是每隔几个月进行一次批量更新,这样做总是更容易。此外,为了避免出现太多意外,您可能会发现订阅其中一个邮件列表gentoo-user(警告:此列表中每天约 100 封邮件)很有帮助,因为几乎所有重大更新问题都可能出现在列表中大量讨论解释了如何解决它们。
我猜想下一个主要的“问题”更新将是一旦稳定后迁移到 openrc(它是在去年年中的 iirc 上完成的,只有几个问题,主要是网络变化)。
| 归档时间: |
|
| 查看次数: |
20457 次 |
| 最近记录: |