Gentoo维护

我用GNOME-3.1安装和调整了Gentoo发行版。 为了实现这个安装,我不得不在package.accept_keywords添加许多行。 现在(几个月后)我决定使用下面的命令更新我的系统:

 emerge --sync emerge -pv --update --deep --with-bdeps=y --newuse world 

正如Gentoo手册所提出的那样,我遇到了很多冲突。 其中很多的原因是更新后的软件(例如mutter-3.6 )使用与安装mutter-3.1相同的SLOT 。 还有一些这样的行:

 =bla-bla-bla/mutter-3.1 ~amd64 

被添加到我的package.accept_keywords

据我所知,我需要更新我的package.accept_keywords删除=bla-bla-bla/mutter-3.1 ~amd64和增加=bla-bla-bla/mutter-3.6 ~amd64 。 因此情况如下(据我所知):

mutter-3.6mutter-3.1不能共存于系统(不应该是)。 mutter-3.6将会更新mutter-3.1 ,但由于它还没有被很好地testing,所以它被标记为"~amd64" 。 因此我需要添加emerge提出的下面一行:

 >=bla-bla-blah/mutter-3.6 ~amd64 

到我的package.accept_keywords文件。

问题:

  1. 我可以添加build议的行而不删除旧的mutter-3.1相关行吗? 它安全,正确?
  2. 如果第一个问题没有问题,我可以自动获得可靠的热点吗?
  3. 如何在一般维护(删除/更新) package.accept_keywords文件,特别是当它包含很多行(首选的方式是自动)?
  4. 我可以只是trancate package.accept_keyword文件,然后更新世界或运行emerge ... --autounmask-write ? 安全吗?会发生什么?
  5. 为什么我在我的系统上得到不稳定的mutter-3.6 ,如果package.accept_keyword恰好包含=bla-bla-bla/mutter-3.1 ~amd64说只有这个版本的mutter可能是不稳定的?

 1. Can I add proposed line without deleting the old mutter-3.1 related line? It it safe, correct? 

是的,这很好。 完成升级后,只需删除旧的版本。

 2. If the 1st question is OK, hot can I get it reliable and automatically? 

–autonunmask写将会正常工作。 我手动维护我的accept_keywords,但多年来我已经变得非常stream利。

 3. How in general maintain (delete/update) package.accept_keywords file, especially when it contains many lines (preferred way is automatically)? 

完整的“神奇”自动化这是一个圣杯types的事情。 每个人的机器是不同的,因此它不能100%自动化。 作为一般规则,我保留我的accept_keywords按字母顺序+只接受一个包的单一版本。

 4. Can I just trancate package.accept_keyword file and then update world or run emerge ... --autounmask-write? Is it safe, what will happen? 

当然,你可以安全地杀死它。 只是这会影响依赖计算。 很多软件包将会被关键字屏蔽掉,portage将无法解决您的依赖关系,或者只是将所有内容降级到尽可能稳定的状态。

 5. Why I'm getting unstable mutter-3.6 on my system if package.accept_keyword contains exactly =bla-bla-bla/mutter-3.1 ~amd64 saying that only this version of mutter is possible to be unstable? 

因为有些软件包需要更高版本的mutter。 这是如何portage将知道,甚至build议揭露。 如果没有这个,portage只会让你开始构build这些对mutter-3.1的包,而且很可能这个构build会在中间的某个地方失败。