一个应用程序要求我安装 RPM 包才能安装 .rpm 文件。但据我所知,还有另一个软件叫“alien”。这两个有什么区别?我在搜索引擎上找不到。
答案1
首先,解决你的情况:
最多当应用程序以 RPM 包的形式提供时,它也会以其他更可能在 Ubuntu 上运行的方式提供。您可能知道,Ubuntu 使用 DEB 包。可以(尝试)在 Ubuntu 上安装 RPM 包,但 RPM 包实际上是为使用 RPM 作为包管理器的系统设计的,例如 Fedora、CentOS、Mandriva 和 Mageia(这是一个远非完整的列表)。
因此,你应该尝试找到该软件的 DEB 包。如果没有,那么你应该尝试找到与系统无关的二进制安装程序(不会一定以 结尾命名.run
),或者从源代码编译应用程序(也可以看看本指南)。
如果这些选项也不可用,或者您仍然想尝试从 RPM 包安装(例如,如果您听说对于这个特定的软件,RPM 包可以在 Ubuntu 上运行),请继续阅读...
rpm
对阵alien
周围的基础设施,例如易于, 这软件中心,以及软件更新程序,它会自动从软件源中检查和获取软件包,也可以被视为“软件包管理器”,但它dpkg
会安装和卸载软件包,并跟踪安装了哪些软件包以及安装了哪些版本(通常由其他实用程序在后台调用来执行这些功能)。
rpm
(可湿性粉剂) 是另一个独立的包管理器。Ubuntu 使用dpkg
,而其他一些操作系统使用rpm
。可以在同一系统上使用多个包管理器,并且可以rpm
在 Ubuntu 上运行。但一般来说,当您(尝试)rpm
在 Ubuntu 系统上安装包时,您无法获得使用包管理的大部分好处,因为“这个包依赖于那个包”关系通常既不确定也不尊重穿过多个包管理器。也就是说,如果存在依赖关系或冲突,需要dpkg
(和周围的基础设施)安装、删除、升级或对包执行其他操作,rpm
则不会知道这一点,也rpm
不会触发该操作。
alien
(可湿性粉剂)是一个试图转变将软件包.rpm
转换为.deb
可安装在您系统上的软件包,希望它能够正确集成到dpkg
基于 的软件包管理系统中。alien
也可以选择自动尝试安装该文件。 (更一般地,可以以另一种方式执行转换,并且除了和 之外alien
,还支持其他一些软件包格式。).deb
.rpm
在实践中,正如 Call me V 所说,使用 安装.rpm
软件包alien
通常效果不佳。当然不如软件开发人员制作的.deb
软件包效果好。但通常最好使用在 Ubuntu 上alien
安装.rpm
软件包,而不是尝试使用rpm
实用程序安装。
当然,如果alien
失败或安装的软件包无法正常工作,您可以随时尝试卸载它,然后使用 安装该.rpm
软件包rpm
。或者正如 bodhi.zazen 解释的那样,您可以尝试手动从.rpm
包中提取文件并将其复制到必要的位置。
如何使用它们:
foo.rpm
如果您在当前目录中有一个名为的包(即,您cd
已进入包含该包的目录)并且想要使用它alien
来创建并尝试.deb
从中安装包,您可以运行:
sudo alien -di foo.rpm
如果您想尝试foo.rpm
直接使用 安装rpm
,您可以运行:
rpm -i foo.rpm
进一步阅读
有关详细信息,请参阅alien
和rpm
手册页,以及外星人和转速网站。
另请参阅我们的rpm
标签 维基(其中还包括有关 的信息alien
)。
答案2
软件包由源代码组成,用于安装已编译的应用程序(通常)。源代码可以以多种方式处理(打包),并由您的软件包管理系统用于安装软件包(如果有意义的话)。
每个发行版都使用一个打包系统和命名约定,Ubuntu 和 Debian 使用 .deb (apt)。Fedora (RHEL、Centos、SUSE) 使用 .rpm。
有关详细信息,请参阅各种包装指南。
http://developer.ubuntu.com/packaging/html/
http://fedoraproject.org/wiki/Packaging:Guidelines
Alien 是一款尝试将一种软件包格式 (.rpm) 转换为另一种格式 (.deb) 的应用程序。除了 .deb 和 .rpm 之外,还有其他选项,但这有点超出了这个问题的范围。
看:http://manpages.ubuntu.com/manpages/raring/man1/alien.1p.html
问题在于,尽管某个软件包可能被命名为相同的名称(例如“firefox”),但由于命名约定,软件包内和软件包之间的库在不同的发行版之间可能名称不同,或者在不同的发行版之间可能不兼容。即使它们具有相同的名称,也可能不完全相同。一些库是符号链接。此外,打包可能包括安装前/安装后脚本和/或配置文件。安装脚本可能不容易转换(由外星人转换)。配置文件可能不同(例如 init 或启动脚本)。
因此,Alien 可能适用于“简单”包,但对于更复杂的包来说,它往往会失败或容易出错。
如果您需要安装一个包,在我看来,您最好提取 .rpm 或从源代码进行编译。
.rpm 是一个档案,类似于 zip 文件,可以提取、查看和手动安装其内容。
http://www.cyberciti.biz/tips/how-to-extract-an-rpm-package-without-installing-it.html
您提取文件并手动将其复制到系统中的适当位置。
也可以看看:https://fedoraproject.org/wiki/Package_management_system
答案3
alien 尝试将 rpm 转换为 debs。这意味着它尝试使本机打包工作。不幸的是,它很像一个半聪明的翻译。这意味着至少有一半的时间你会得到错误的翻译。
本质上,这意味着,虽然外星人是一次史诗般的尝试,但使用它在 deb 文件管理下获取 rpm 会得到不同的结果。
答案4
RPM 是 Red Hat 衍生发行版的软件包格式。
Alien 是一款在 RPM 和 DEB 软件包之间进行转换的应用程序。转换后的软件包可能在您的系统中有效,也可能无效。
您可以在此 pdf 中找到有关包装格式和外星人的更多信息。 TBOL_2011_1_RPM_DEM_US.pdf
现在再说另一个问题。我猜你正在尝试在你的 Ubuntu 上安装基于 RPM 的软件包。这不是一个好主意。你应该尝试在程序站点或应用程序开发人员那里查找是否有 Ubuntu/Debian 软件包并尝试使用它,或者通用 Linux 软件包(通常以 .run 结尾),或者从源代码进行编译。