我想在我的Gentoo系统上安装相同软件包的两个(或更多)版本。我知道肯定不会有任何文件冲突,因为安装的文件很少,并且每个文件都以版本命名。
我知道插槽,但是这些插槽是在ebuild文件中指定的,并且假设由于某些原因,我不想编辑任何ebuild文件。
我希望已安装的版本成为world软件包的一部分,因此可以照常重新安装或卸载它们。
有没有办法安装同一软件包的多个版本?您知道实现该目标的一些Portage技巧吗?
我想在我的Gentoo系统上安装相同软件包的两个(或更多)版本。我知道肯定不会有任何文件冲突,因为安装的文件很少,并且每个文件都以版本命名。
我知道插槽,但是这些插槽是在ebuild文件中指定的,并且假设由于某些原因,我不想编辑任何ebuild文件。
我希望已安装的版本成为world软件包的一部分,因此可以照常重新安装或卸载它们。
有没有办法安装同一软件包的多个版本?您知道实现该目标的一些Portage技巧吗?
Answers:
您可以尝试使用(我不确定它是否按预期工作)是/etc/portage/env
用来设置特定软件包版本的SLOT。但是,由于元数据缓存,它可能无法工作。即使它确实起作用,这也是一种杂物,可能会导致意想不到的行为。和往常一样,如果它破裂了,您就可以保留碎片。
这是一个古老的问题,但仍然有效,并且没有人提出以下简单方法:
如果您不想创建插槽,并且知道文件不会冲突,只需在本地叠加层中创建一个新的ebuild(在make.conf中设置本地叠加层后),然后使用不同的名称命名。也许像“ mypkg.ebuild”。没有法律规定ebuild名称及其安装的文件必须共享相同的名称。将portage的pkg.ebuild文件复制到/usr/local/portage/app-class/mypkg-newversion.ebuild,对新版本进行必要的更改,进行ebuild并出现。
请记住,在获取源代码时,您将无法使用某些预定义的变量名($ {P}等)。
另一个可能要探索的东西是Gentoo Prefix
如果您不介意维护Gentoo的2个生态系统以提供“替代”软件包,那么这可能是一个可行的选择。
这实质上是为给定的项目范围创建一个“子空间”,然后在该项目范围内以不同的方式使用Gentoo。