当我使用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