在 Ubuntu 中安装 RPM 软件包(如果确实需要)
迫切需要安装仅在 RPM 软件包中可用的应用程序?以下是将 RPM 转换为 DEB 文件的方法。
在 Linux 中,有多种包格式和包管理器。
Ubuntu 和其他基于 Debian 的发行版使用 DEB 软件包,而 Red Hat、基于 Fedora 的发行版则使用 RPM 软件包。
下载应用程序时,您经常会看到 DEB 和 RPM 选项。
在极少数情况下,您会发现应用程序仅以 RPM 格式提供。如果是这种情况,并且您迫切希望在 Ubuntu 或 Debian 中使用该应用程序,那么仍然有一个值得尝试的方法。
您可以尝试使用 Alien 工具将 RPM 包转换为 DEB 文件,然后安装此 deb 文件。您正在 Ubuntu 上间接安装 RPM 文件。
这是非常实验性的,并不是每个转换为 DEB 的 RPM 都可以安装在 Ubuntu 上。您可能会很幸运,但也要做好失望的准备。
将 RPM 转换为 DEB 之前
将 RPM 包转换为 DEB 应该是最后的选择。预先执行以下操作。
确保该应用程序不以 DEB 格式提供。检查是否有您可以使用的 PPA。
检查相关应用程序是否以 Snap、Flatpak 或 AppImage 格式提供。如果是,请改用它。
看看是否可以使用替代应用程序来达到相同目的。您的目的通常应该是获得最终结果,而不是仅使用 XYZ 工具获得最终结果。
一旦您完成此操作并发现您没有其他选择,那么您只能继续使用将 RPM 转换为 DEB。
安装外星人
Alien 是一个小实用程序,允许您在各种包格式之间进行转换。
我的意思是,它可以将 RPM 转换为 DEB、Solaris PKG、TGZ 包,反之亦然。
您需要先安装它:
sudo apt install alien
现在您已经安装了它,让我们开始转换一些 RPM 文件。
在从其他格式转换为 Deb 时,您应该记住避免使用重要的系统包,如 libc、init 系统包等。由于这些包是基于发行版创建的,用外星人替换它可能会导致灾难性的后果影响。另外,您不应该为那些删除后可能导致系统崩溃的软件包安装 Alien。
从 RPM 创建 DEB 文件
出于本教程的目的,我使用 WeekToDo(一个开源待办事项应用程序)的 RPM 文件。
如果要将 RPM 或任何其他软件包转换为 Deb,则需要使用下面给出的命令安装一些依赖项(有些依赖项已预安装在 Ubuntu 和 Debian 中):
sudo apt install gcc make debhelper dpkg-dev dpkg
安装后,运行以下命令将 RPM 转换为 DEB:
sudo alien --to-deb <path-to-RPM-file>
或者您可以省略 --to-deb
因为这是默认值。
sudo alien <path-to-RPM-file>
您现在可以使用任何常用方法安装 Deb 文件。
sudo apt install <path-to-deb-file>
直接安装RPM文件
如果您想跳过创建 deb 文件的中间步骤并直接安装 RPM 文件,请运行:
sudo alien -i <path-to-RPM-file>
这将在转换后安装相应的 RPM 文件,并在安装后删除包文件。
保持相同的版本号
Alien 在转换期间将次版本号加一。如果您愿意,可以通过指定选项 -k
或 --keep-version
来避免这种情况。
sudo alien -k <Path-to-RPM-file>
尝试转换脚本
有时,您可能需要转换要在安装和删除包时运行的脚本。为此,请运行:
sudo alien --scripts <path-to-RPM-file>
或者,
sudo alien -c <path-to-RPM-file>
您应该极其谨慎地使用它。因为这些脚本可能被设计为在与您自己的系统不同的系统上运行,这将导致各种可能难以解决的问题。
另外,您应该自己检查脚本并验证转换后不会出现任何问题。
您也可以使用同一个外星人将 DEB 文件转换为 RPM。
其他有用的选项
- sudo alien --to-rpm 'path-to-deb-file'
将给定的 deb 文件转换为 rpm。为此,您需要安装 rpm。
- -h
帮助
- --verbose
显示外星人执行过程中的所有命令
- --veryverbose
显示外星人在此过程中执行的所有命令及其输出
您可以参考其手册页以获取有关该程序的更多详细信息,例如应用补丁、测试等。