我已经使用 安装并调整了 Gentoo 发行版GNOME-3.1
。为了完成此安装,我必须在 中添加很多行package.accept_keywords
。现在(几个月后)我决定使用以下命令更新我的系统:
emerge --sync
emerge -pv --update --deep --with-bdeps=y --newuse world
正如 Gentoo Handbook 所建议的那样,我遇到了很多冲突。其中许多冲突的原因是更新的软件(如示例)使用了与已安装的mutter-3.6
相同的软件。有些行如下:SLOT
mutter-3.1
=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.6
和mutter-3.1
不能在系统上共存(也不应该)。mutter-3.6
即将更新mutter-3.1
,但由于尚未经过充分测试,因此标记为"~amd64"
。 因此我需要添加 提出的以下行emerge
:
>=bla-bla-blah/mutter-3.6 ~amd64
到我的package.accept_keywords
文件。
问题:
- 我可以添加建议的线路而不删除旧的
mutter-3.1
相关线路吗?这样安全吗? - 如果第一个问题没问题,那么我可以可靠且自动地获得它吗?
- 通常如何维护(删除/更新)
package.accept_keywords
文件,尤其是当文件包含多行时(首选方式是自动)? - 我可以只截断
package.accept_keyword
文件然后更新世界或运行吗emerge ... --autounmask-write
?这样安全吗?会发生什么? - 如果包含确切信息,说明只有此版本才可能不稳定,为什么我
mutter-3.6
的系统会变得不稳定?package.accept_keyword
=bla-bla-bla/mutter-3.1 ~amd64
mutter
答案1
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-write 可以很好地完成此操作。我手动维护 accept_keywords,但多年来我已经对此非常熟练。
3. How in general maintain (delete/update) package.accept_keywords file, especially when it contains many lines (preferred way is automatically)?
完全“神奇”的自动化是一种圣杯式的东西。每个人的机器都不同,因此不可能 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 才会知道甚至建议取消屏蔽。如果没有这个,portage 只会让您开始针对 mutter-3.1 构建这些软件包,而且构建很可能会在中间某个地方失败。