升级Gentoo Linux的最佳程序?

cow*_*god 26 gentoo

这就是我长期以来一直在升级 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 -drevdep-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

  1. emerge --synceix-syncemerge-delta-webrsynceix-update
  2. emerge -av portage
  3. eclean-dist

检查 linux-headers、glibc、binutils、libtool 或 gcc 之一是否有重大更新(例如 gcc 从 4.6 更新到 4.8)。如果不是,请转到步骤 11。

完全重建:

  1. rm -rf $(portageq pkgdir)/* — 清理 PKGDIR 中的缓存
  2. emerge -av linux-headers glibc binutils gcc-config libtool gcc
  3. gcc-config <number of new gcc> 切换到新的 gcc
  4. source /etc/profile
  5. emerge -avb glibc binutils gcc libtool
  6. emerge -avbke system
  7. emerge -avbke world

如果您在步骤 10 或 11 中遇到任何问题,请修复它并重试

更新世界:

  1. /var/lib/portage/world从不必要的包中清除您的世界文件并检查/etc/portage实体
  2. fixpackages
  3. emerge -avuDN world
  4. eselect python update
  5. python-updater -- -av
  6. perl-cleaner --all -- -av
  7. emerge -a --depclean
  8. revdep-rebuild -i -- -av

如果您在步骤 14-18 中遇到任何问题,请修复它并重复步骤 13 中的所有步骤。

  1. etc-update 或者 dispatch-conf
  2. glsa-check -vp affected 更新后,您可以在插槽中包含受影响的软件包
  3. emaint --check all


Oph*_*ian 5

看起来你已经涵盖了它。唯一的其他提示是可能比盲目的批发更新慢一点。你总是可以单独更新包或依赖链,emerge -DNuav <atom>而不是world(对于你不想添加到世界文件的东西,例如系统库,使用 --oneshot )。

请注意,如果您定期更新,而不是每隔几个月进行一次批量更新,这样做总是更容易。此外,为了避免出现太多意外,您可能会发现订阅其中一个邮件列表gentoo-user(警告:此列表中每天约 100 封邮件)很有帮助,因为几乎所有重大更新问题都可能出现在列表中大量讨论解释了如何解决它们。

我猜想下一个主要的“问题”更新将是一旦稳定后迁移到 openrc(它是在去年年中的 iirc 上完成的,只有几个问题,主要是网络变化)。

  • 是的,绝对+1 保持定期更新,而不是大量更新。偶尔有一些变化会破坏很多。https://github.com/lkraav/gentoo-cron-weekly 是我简单的每周报告工具集。 (2认同)