如果你需要某个特定类型的包,而你只能找到其它格式的包的时候,该工具迟早能派得上用场。当然,必须要澄清的是,这个工具不应当用来转换重要的系统文件和库,因为它们在不同的发行版中可能有不同的配置。
下面,我会举例介绍下将rpm包转换为deb包,反之同理,不再赘述。
1. 安装alien
要安装alien工具,需要安装并启用epel仓库
yum install epel-release
然后通过yum或者dnf安装alien
yum install alien
在Fedora系统中,你只需要运行上面的命令即可,因为它默认启用了epel仓库。
2. 将.deb转换成.rpm
对于本次测试,我们选择了date工具,它提供了一系列日期和时间工具用于处理大量金融数据。我们将下载.deb包到我们的CentOS 7机器中,将它转换成.rpm并安装。
检查CentOS版本
下载相应的.deb包
alien工具做转换
alien -r -c dateutils_0.3.1-1.1_amd64.deb
或者
alien --to-rpm --scripts dateutils_0.3.1-1.1_amd64.deb
你会看到生成了相应rpm包。
需要注意的是,默认情况下,alien会增加目标包的次版本号的;如果你想要无视该行为,请添加-keep-version标识。
3. 其它情况
我们尝试马上安装刚刚转换完成的rpm包,可能会碰到些许问题:
rpm -Uvh dateutils-0.3.1-2.1.x86_64.rpm
不必惊讶,毕竟跨越了不同的发行版本,出现问题很正常。这时,需要安装rpmrebuild工具来编辑该包的配置以重建包:
rpmrebuild -pe dateutils-0.3.1-2.1.x86_64.rpm
它会通过默认的编辑器打开包的spec配置文件,根据具体的报错信息适当修改,此处我们转到“%files”段并删除涉及到错误信息中提到的目录的行,然后保存文件并退出
但你退出该文件后,将提示你继续去重构。如果你选择“Y”,该文件会重构到指定的目录(与当前工作目录不同)
现在你可以像以往一样继续来安装包并验证。