如何使用 Alien 在 Linux 软件包之间进行转换
想要在不花费太多时间的情况下将 Linux 软件包重建为其他格式吗?查看 Alien,一个适用于 Linux 的开源包格式转换器。
您想将 Linux 软件包转换为其他格式吗?也许您正在寻找的软件包不适用于您的发行版,但无论如何您仍然需要它。或者,您可能是一名开发人员,希望通过快速将程序重新打包为其他格式来节省时间,而无需再次构建包。
幸运的是,Linux 已经提供了您需要的工具。借助 Alien,您可以通过命令行轻松将现有的 Linux 软件包转换为其他格式。让我们首先在您的系统上安装该工具。
如何在 Linux 上安装 Alien
Alien 可在 Ubuntu Universe 存储库中找到。要安装它,首先启用 universe 存储库并更新系统的软件包列表。然后,像平常一样使用 APT 安装 alien 软件包。
sudo add-apt-repository universe
sudo apt update
sudo apt install alien
Debian 用户可以简单地使用 APT 安装该软件包:
sudo apt install alien
Alien 在官方 Arch 存储库中尚不可用。但是,您可以使用 AUR 帮助程序从 AUR 安装它。出于本指南的目的,我们将使用 yay。
yay -S alien
在 Fedora、CentOS 和其他基于 RPM 的发行版上,您可以使用 DNF 安装 Alien,如下所示:
sudo dnf install alien
完成后,在终端中输入 alien --version 来验证安装。如果该命令返回包的版本信息,则安装成功。但是,如果没有,请尝试再次执行安装步骤。
使用 Alien 在 Linux 软件包之间进行转换
使用 Alien,您可以在多个 Linux 软件包之间进行转换。列出一些:
DEB(基于 Debian 的发行版)
TAR.GZ(打包存档)
RPM(Fedora、CentOS 和其他发行版)
PKG(Solaris 软件包格式)
SLP
最低有效位
Alien 可以解释以下选项:
-d或--to-dpkg:将指定包转换为DEB包格式
-r 或 --to-rpm:将包转换为 RPM 格式
-t 或 --to-tgz:从指定包生成 TAR.GZ 归档文件
-l 或 --to-lsb:创建 LSB(Linux 标准基础)包
-p或--to-pkg:将指定的包转换为PKG格式
--to-slp:创建 SLP 包
如何在 Linux 上使用 Alien
该实用程序的基本语法是:
sudo alien options filename
...其中选项是可以与命令一起使用的各种标志,文件名是要转换的包的绝对或相对路径。
要将 RPM 包转换为 DEB:
sudo alien --d file.rpm
sudo alien --to-deb file.rpm
为了演示如何将包转换为所有其他格式,我们将把 DEB 文件转换为其他 Linux 包。
DEB 换算为转速:
sudo alien -r file.deb
sudo alien --to-rpm file.deb
DEB 至 TAR.GZ:
sudo alien -t file.deb
sudo alien --to-tgz file.deb
DEB 到 LSB: sudo Alien -l file.deb sudo Alien --to-lsb file.deb DEB 到 PKG:
sudo alien -p file.deb
sudo alien --to-pkg file.deb
DEB 转换为 SLP:
sudo alien --to-slp file.deb
请注意,您还可以将任何包格式转换为任何其他格式。例如,RPM 到 LSB、SLP 到 PKG、PKG 到 DEB 等。
使用单个命令将包转换为多种格式也是可能的。您所要做的就是指定转换标志,如下所示:
sudo alien --to-deb --to-rpm --to-tgz file.pkg
sudo alien -d -r -p file.tar.gz
如果包包含特定于该格式的脚本,您可以使用 --scripts 或 -c 标志转换这些脚本。
sudo alien --scripts --to-deb file.rpm
sudo alien -c --to-deb file.rpm
转换后安装包
除了转换软件包之外,Alien 还可以为您安装软件包。您可以在命令中添加 --install 或 -i 标志,以便在转换后立即安装软件包。
例如:
sudo alien --to-rpm --install file.deb
sudo alien -r -i file.deb
转换期间处理版本信息
默认情况下,Alien 会自动增加包的版本详细信息。如果您使用 Alien 转换版本号为 1.17.1 的软件包,则生成的软件包的版本号将为 1.17.2。
您可以使用 -k 或 --keep-version 标志覆盖此默认行为,如下所示:
sudo alien --to-rpm -k file.deb
sudo alien --to-rpm --keep-version file.deb
您现在可以在 Linux 中转换包
作为开发人员,为不同的 Linux 发行版重建软件包可能很困难。为了解决这个问题,您可以使用 Alien 将您的软件包轻松转换为其他 Linux 格式。
尽管 Alien 是一个可靠的实用程序,但如果您想为发行版正确开发本机包,则不建议使用它。此外,在发布包时,您应该始终列出程序所需的依赖项。