如何安装两个不同的版本相同的封装,百胜

问题描述 投票:8回答:3

说我要安装两个不同版本的同一个包中。

具体而言,我想安装的Javascript两个版本的GNOME,GJS包结合。我想有gjs-1.38.1-1.fc20.x86_64and gjs-1.36.1-1.fc19.x86_64

有在Fedora的20极大地依赖于gjs-1.38.1-1.fc20.x86_64所以不可能通过gjs-1.36.1-1.fc19.x86_64来取代它,包等。

我有一个特定的程序,它是不兼容gjs-1.38.1-1.fc20.x86_64,需要前一个。

那么,是否可以安装GJS gjs-1.36.1-1.fc19.x86_64以前的版本,并通过/usr/bin/env gjs1访问(通过一些神奇的!)运行不破坏任何不兼容的程序?

package rpm yum
3个回答
0
投票

据我所知,没有一个简单的yum命令做你想做的事,这将涉及的一点点努力。我将列出几个我所知道的方式。这可能是你的使用情况消除了一个或多个或全部的下方。

软件集合(SCL)。 SCL的目的是要能够有一个包的多个版本或设置安装的软件包。有一个User Guide,并有一些正宗page here,但它们出现在RHEL更有针对性。如果您使用此选项去,我认为你必须建立自己的最爱。

你可能会决定在自己的安装根目录来安装F19包。 Here's a blog post说明如何做到这一点(例如是生皮根,但应尽可能与F19一个也)。这可能是最省力的路径,但我不是100%肯定它是否会为你的情况下工作。这将需要安装很多东西,但像这样做,因为在不同的Fedora发行版的包将已建成针对不同的依赖集是必要的。

这种方式可能会或可能无法正常工作,我认为它应该在一定程度上至少;但可能需要相当大的努力。它基于的假设是你想要的东西实际上是gjs-1.36.1,而不是从以前的Fedora版本的任何包装的版本。如果你去source repository for gjs并点击版本中,你就可以下载的存档文件为你想要的版本。然后,你可以从源代码建立它,并指定在配置阶段比/usr的默认不同的前缀 - 也许/usr/local都会好的。然后,如果你把它安装,你可以指定完整路径,例如/usr/local/bin/gjs代替/usr/bin/gjs。需要注意的是默认的将是哪一个先发现你的$PATH,所以如果/usr/local/bin/usr/bin之前,那么你要么想改变你的PATH订单,或安装自定义版本到不同的位置比/usr/local

相关的最后一个选项,你也许可以得到gjs RPM说明文件,并进行修改,使你调用一个不同的名称,并将其安装到不同的位置。如果你不习惯建筑GJS,因为其对如何编译的rpmbuild说明这可能是更简单。您也许能够从该得到至少一些提示,如果你选择一个选项。见gjs spec file here

这可能是也可能做使用alternatives喜欢做什么用java包等做了一些魔法。这可能会要求您使用上述规范文件,同时也进行一些修改,以使其与alternatives工作 - 这两个版本,1.36.1和1.38.1可能安装定制的软件包。

祝好运!


0
投票

这通常是在Fedora的/红帽全球处理方式是创建一个次要的“compat”软件包,因此它会像compat-gjs-136,你将有spec文件的后缀136追加到所有的可执行文件和库。一些例子你可以看看会compat-gcc-34compat-expat1


-1
投票
yum --nogpgcheck --releasever=20 install package-name

也许是丑陋的选项作为最后的手段。不推荐这样做,在传统的系统。

© www.soinside.com 2019 - 2024. All rights reserved.