如何在 Gentoo Linux 上使用“emerge --sync”而不删除旧的 ebuild?

如何在 Gentoo Linux 上使用“emerge --sync”而不删除旧的 ebuild?

当我使用emerge --sync旧 .ebuild 文件时,它们会被删除。如何获取较新的 .ebuild 文件,但不丢失旧文件?

答案1

一种方法是覆盖默认的 portage rsync 选项(不包括删除相关选项)。默认选项目前/usr/lib/portage/pym/_emerge/actions.py在我这里是从 2039 行开始硬编码的。

除“--force”和“--delete”外,您需要添加

PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --whole-file --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"

/etc/make.conf。其结果是不再会删除任何文件或目录。

编辑:请注意,通常你不会想保留任何您正在同步的 portage 树中的此类 ebuild。

如果要保留特定的 ebuild,有两种典型的情况:

  • 您正在使用想要保留的过时的 ebuild。
  • 您自己编写了一个 ebuild,或者您在某处找到了一个 ebuild,并将其添加到您要同步的 portage 树中。

在这两种情况下,最好的解决方案是将这些 ebuild 复制到本地覆盖层。您可能还必须复制它们所依赖的 ebuild。以下是如何创建简单的本地覆盖层:http://forums.gentoo.org/viewtopic-t-827407.html

相关内容