如何安装和管理RPM?


85

我渴望将RPM安装到我的Ubuntu安装上-这可能吗?我可以使用Yum-或其他RPM软件包管理工具吗?


为什么?您缺少在Ubuntu或PPA中找不到的哪种软件?用外星人的作品来转换转速,但这实际上不是最好的选择。
ℝaphink

在我的日常工作中,我是linux系统管理员,主要管理Redhat机器。我之所以喜欢Ubuntu,是因为我不必带我回家,但是Debian用于配置的某些东西(主要是Apache)确实使我发疯。我更喜欢RH维护apache软件的方式。因此,维护两个软件包管理解决方案(yum和aptitude)似乎是一个更理想的解决方案(如果可能)
Marco Ceppi

相关信息:rpmyum标签Wiki。
伊利亚·卡根

Answers:


117

我可以用百胜餐饮

我不推荐它。您可能可以编译它,但是没有任何Ubuntu兼容的软件包存储库可以处理。

可以使用Alien将单个RPM文件转换为DEB:

sudo apt-get install alien
sudo alien my_package.rpm
sudo dpkg -i my_package.deb

注意:它可能会更改文件名,而不仅仅是扩展名。

由于包链接到其他包以实现依赖关系,因此这不适用于所有情况。显然,Red Hat / Fedora / CentOS使用与Ubuntu不同的软件包名称,因此您很可能会遇到很多麻烦。

如果不存在DEB,则最好获取源代码并进行编译会更好。


3
如果Alien不起作用,并且您确实直接使用了源代码,则可以使用checkinstall(位于Universe资源库中,默认情况下未安装)将转换为.deb。
ImaginaryRobots 2010年

Checkinstall用于代替,make install非常方便携带。能够删除软件包绝对是加号!
aperson

checkinstall非常适合在打包环境中维护自我构建,但它确实存在一些怪癖,有时会导致某些make install无法安装的怪癖。我会尽可能使用它。
奥利(Oli)

3
你可以做alien --install my_package.rpm
tshepang 2010年

我尝试以这种方式安装lftp的最新版本,但是它没有更新依赖关系,因此lftp无法开始尝试加载:error while loading shared libraries: libreadline.so.7
蹲伏小猫

15

您将需alien要这样做。

sudo apt-get install alien

这将安装所有必需的软件包。现在,您可以开始将.rpm文件转换为.deb软件包。

可用选项alien

将package.rpm转换为package.deb

sudo alien -d package-name.rpm

将转换package.rpmpackage.deb,然后安装生成的软件包。

alien -i package-name.rpm

如果要防止外星人更改版本号,请使用以下命令

alien -k rpm-package-file.rpm

7

简短的答案是,不要!

如果您拥有一个非常重要的RPM以至于需要它,那么可能也有一个Ubuntu软件包。并且,如果不是这样,可能值得将其从源代码编译为Debian软件包格式(Ubuntu也使用)的麻烦。现在,在某些情况下,您不能只重新编译软件(如果它不是开源的,那是不可能的),在这种情况下,您可以使用该alien程序。但是,从RPM进行安装有点像将汽油放入柴油车中-可能会起作用,但从长远来看,您不会从中受益!

要从源代码构建软件包,Ubuntu Wiki上有一个指南。还有一个名为checkinstall的程序,它可以使用默认的源树来完成一些技巧,而无需设置软件包的构建说明。如果您认为其他人可以从您编译的程序中受益,则可以在启动板上设置存储库并共享软件包的好处!


没有真正回答问题,所以-1
Dee

3

如果您确实需要在系统上安装RPM,则应确实尝试使用“异形”将其转换。

请记住,默认情况下,“ alien”将与软件包的版本号混在一起。如果希望版本号保持不变,请在转换时传递选项“ -k”。

您不应该尝试在现有DEB软件包旁边使用Yum或其他任何方式安装RPM,例如apt-rpm。DEB和RPM系统分别管理已安装软件的列表,因此不知道其他系统之前已安装了哪些软件包。例如,如果您尝试使用基于RPM的程序包管理系统安装带有GUI的应用程序,则它将尝试安装重要的系统组件本身,因为它认为尚未安装。这将导致安装严重失败,或覆盖重要的系统文件。


3

Repos上有一个名为SmartPM的GUI软件包管理器,它可以处理.deb和.RPM。截至2009年11月,Canonical对该项目做出了贡献。

项目主页在这里https://github.com/smartpm/smart


欢迎来到Ask Ubuntu!我建议编辑此答案以使用有关如何使用此方法的特定详细信息将其扩展。(另请参阅“我如何编写一个好的答案?”,以获取有关在Ask Ask Ubuntu上认为哪种答案最有价值的一般建议。)
David Foerster,2016年

2

Alien是一种从一种格式(.deb或.rpm)转换为另一种格式(.deb,.rpm或tarball)的工具

不建议Alien将.deb转换为.rpm时使用它的完美选择。

尽管Alien在转换时会尝试保留元数据,但是它仍然会存在元数据和相关性问题,这会降低程序包的可靠性,因此将来在添加或删除分发程序包时会发生冲突。


2

其实最短的选择是

sudo alien -i -k packagename.rpm

没有外星人吗?得到一个!

sudo apt-get install alien

Alien会将rpm软件包转换为deb软件包,-i选项表示在转换后安装转换后的软件包,而-k选项确保转换后的版本不是+1。


2

请遵循以下指示:

alien -k avg71lms-r30-a0782.i386.rpm

现在您应该有avg71lms-r30-a0782.i386.deb文件了。

要安装.deb文件:

dpkg -i avg71lms-r30-a0782.i386.deb

如果您不使用-k选项,则应该看到avg71lms_r30-1_i386.deb文件,不同之处在于它将添加1。

在Ubuntu中安装Alien:

sudo apt-get install alien

您可以检查以上部分中的可用选项


1

使用Alien,我可以将.rpm文件转换为.deb文件,然后简单地安装该文件。

Alien在常规的Debian存储库中可用,因此我们可以这样安装它:

sudo apt-get install alien

要将其转换为.deb包,我们只需运行

alien *.rpm

您最有可能希望对Alien使用一些标志。至少,它会警告您不要在未明确指定--scripts(或-c)的情况下转换脚本
Randall


0

这是外星人的GUI(外星人是将rpm转换为deb的应用程序)

http://code.google.com/p/foxoman/wiki/PackageConverter


-1什么是“外星人”,它与在Ubuntu中安装RPM有什么关系?
David Foerster

1
@DavidFoerster外星人是将rpm转换为deb的应用程序
Anwar

2
不要告诉我,编辑您的答案以告诉可能要从中受益的人。此外,我建议编辑此答案以扩大其答案,并提供有关如何执行此操作的特定详细信息。(另请参阅“我如何编写一个好的答案?”,以获取有关在Ask Ask Ubuntu上认为哪种答案最有价值的一般建议。)
David Foerster
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.