我想在我的 Gentoo 系统上安装相同软件包的两个(或更多)版本。我确信不会有任何文件冲突,因为安装的文件很少,并且每个文件都以版本命名。
我了解插槽,但这些是在 ebuild 文件中指定的,并且假设我出于多种原因不想编辑任何 ebuild 文件。
我希望安装的版本成为世界包的一部分,这样它们就可以像往常一样重新安装或卸载。
有没有办法安装同一软件包的多个版本?你知道一些 Portage 技巧可以实现这一点吗?
答案1
这就是插槽的用途。如果包没有被插入,那么我唯一能想到的就是创建一个个人覆盖和一个被插入的新包/ebuild。
答案2
我认为理论上你可以做一些愚蠢的事情,比如:
$ ROOT=~/package-1.0 emerge =package-1
但基本上所有非覆盖的东西都高度受到一些额外的限制和要求的影响,而关于这些限制和要求的信息并不多。
答案3
您可以尝试(我不确定它是否按预期工作)使用/etc/portage/env
设置特定软件包版本的 SLOT。但由于元数据缓存,它可能无法工作。即使它确实有效,这也是一个障碍,并且可能会导致意外的行为。一如既往,如果它坏了,你可以保留碎片。
答案4
另一个值得探索的潜在事情是Gentoo 前缀
如果您不介意维护 Gentoo 的 2 个生态系统以提供“替代”包,那么这可能是一个可行的替代方案。
这本质上是为给定的项目范围创建一个“子空间”,然后在该项目范围中以不同的方式使用 Gentoo。