在emerge -auvD世界中跳过特定的升级


30

有没有简单的方法可以跳过某些升级emerge -auvD world

例如,目前存在 media-sound/teamspeak-server-bin-3.0.5-r1标记为Portage树打破了整体升级,因为那个包是在列表中的第一个稳定的。当然,我可以使用该package.mask文件简单地掩盖该版本,但是我更希望环境变量或命令行开关现在仅跳过它-无论如何它可能很快就会被修复。

请注意,我希望使用emerge -auvD1 list of working packages(即只通过指定他们的名字更新其他包)。

Answers:


38

看起来该--exclude选项执行此操作:

--exclude ATOMS
用空格分隔的软件包名称或插槽原子列表。Emerge不会安装任何与任何给定包原子匹配的ebuild或二进制包。

因此,这为我完成了工作:

emerge -auvD --exclude=media-sound/teamspeak-server-bin world

我无法在一个语句中找到某人排除多个软件包的示例,因此仅供参考:每个软件包都需要一个--exclude标签afaik。emerge --deep --update @world -av --exclude=chromium --exclude=firefox
NuclearPeon

12

如果您不想屏蔽它,则可以使用该--keep-going选项。这样一来,emerge便会重置其列表并继续运行,而列表中不会包含失败的软件包。


3

ThiefMaster的答案是正确的方法,但是还有另一种选择,我认为这是Keith答案的改进。即,用他的回答将尝试出现,并且可能需要时间。如果您因为遇到问题而知道第一个软件包有问题,可以使用--resume--skipfirst

--resume(-r)

恢复由于错误而已中止的最新合并列表。这将重用与要恢复的原始命令一起提供的参数和选项,并且用户在调用时还可以提供其他选项--resume。提供atoms或set作为参数作为参数是错误的--resume,因为改为使用resumed命令中的参数。请注意,此操作只会在失败时返回错误。如果没有任何可移植的事情,那么移植将退出并显示一条消息和成功条件。简历列表将一直保留,直到它完全完成或直到另一个异常终止的合并列表替换了它为止。简历历史记录能够存储两个合并列表。一个简历列表完成后,可以调用--resume再次以恢复较旧的列表。简历列表存储在中/var/cache/edb/mtimedb,并且可以通过运行显式丢弃emaint --fix cleanresume(请参见emaint(1))。

--skipfirst

该选项仅在与一起使用时才有效--resume。它将删除简历列表中的第一个软件包。将重新计算剩余包的依赖关系,任何不满足依赖关系或被屏蔽的包将被自动删除。另请参阅相关--keep-going选项。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.