如何转换从RPM到DEB和DEB到RPM包使用Alien

在本文中,我们将向您介绍外星人,一种在不同Linux包格式之间转换的工具,.rpm到.deb(反之亦然)是最多的

正如我敢肯定你已经知道,有大量的安装在Linux软件的方式:利用你的发行提供的包管理系统( 资质,Yum,或zypper的 ,仅举几例),从源代码编译(虽然有点罕见的,这些天,这是唯一的方法,在Linux的早期可用),或利用水平较低等工具的dpkgrpm分别.deb文件.rpm的独立,预编译的软件包。

将RPM转换为DEB,DEB转换为RPM

使用Alien将RPM转换为DEB并将DEB转换为RPM包

在这篇文章中,我们将向您介绍外国人 ,是最常见的使用一种工具,不同的Linux软件包格式之间进行转换,以.rpm的.deb文件 (反之亦然)。

这个工具,即使它的作者不再维护它,并在他的网站中说,外星人将永远可能仍然在实验状态,可以派上用场如果你需要一个特定类型的包,但只能找到另一种包格式的程序。

例如, 外国人救了我的一天一次的时候我一直在寻找一个喷墨打印机一个.deb文件驱动程序,找不到任何-厂家只提供了一个.rpm的包。 我安装了外星人,转换了包,并在很久之前,我能够使用我的打印机没有问题。

也就是说,我们必须澄清,这个实用程序不应该用于替换重要的系统文件和库,因为它们在不同的分布之间设置不同。 如果本文开头的建议安装方法不符合所需程序的问题,则只能使用外来程序作为最后手段。

最后但并非最不重要的,我们必须注意,虽然我们将在本文中使用的CentOSDebian,外星人也被称为在Slackware的 ,甚至在Solaris中工作,除了前两个分布及其各自的家庭。

第1步:安装异常和依赖

要安装CentOS中/ RHEL 7 外星人 ,你将需要启用EPEL马钱Dextop(是的,这Dextop -而不是台式机)库,按照这个顺序:

# yum install epel-release
# rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro

使这个仓库的软件包的最新版本是0.5目前(8月10日公布,2015)。 您应该检查http://li.nux.ro/download/nux/dextop/el7/x86_64/ ,看看是否有进一步继续之前的新版本:

# rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm

然后做,

# yum update && yum install alien

Fedora,您只需要运行一个命令。

在Debian和衍生产品中,只需:

# aptitude install alien

第2步:从.deb到.rpm包转换

对于本次测试我们选择dateutils,它提供了一整套的日期时间工具来处理大量的财务数据。 我们将.deb软件包下载到我们的CentOS 7中,将其转换为.rpm的并安装:

检查CentOS版本

检查CentOS版本

# cat /etc/centos-release
# wget http://ftp.us.debian.org/debian/pool/main/d/dateutils/dateutils_0.3.1-1.1_amd64.deb
# alien --to-rpm --scripts dateutils_0.3.1-1.1_amd64.deb
在Linux中将.deb转换为.rpm包

在Linux中将.deb转换为.rpm包

重要提示 :(请注意如何,默认情况下,外来的增加目标包的版本次要编号如果要覆盖此行为,添加-keep版本标志)。

如果我们尝试立即安装软件包,我们会遇到一个小问题:

# rpm -Uvh dateutils-0.3.1-2.1.x86_64.rpm 
安装RPM软件包

安装RPM软件包

为了解决这个问题,我们将启用EPEL-测试库 ,并安装rpmrebuild工具来编辑软件包的设置必须重建:

# yum --enablerepo=epel-testing install rpmrebuild

然后运行,

# rpmrebuild -pe dateutils-0.3.1-2.1.x86_64.rpm

这将打开你的默认文本编辑器。 转至%files部分,并删除引用错误消息中提到的目录,然后保存文件并退出该行:

将.deb转换为外来版本

将.deb转换为外来版本

当您退出该文件系统将提示您继续与重建。 如果您选择Y,该文件将被改建为指定的目录(不是当前工作目录不同):

# rpmrebuild –pe dateutils-0.3.1-2.1.x86_64.rpm
构建RPM包

构建RPM包

现在您可以继续安装软件包,并照常进行验证:

# rpm -Uvh /root/rpmbuild/RPMS/x86_64/dateutils-0.3.1-2.1.x86_64.rpm
# rpm -qa | grep dateutils
安装Build RPM软件包

安装Build RPM软件包

最后,你可以列出附带dateutils,个人工具或者检查它们各自的手册页:

# ls -l /usr/bin | grep dateutils
验证已安装的RPM软件包

验证已安装的RPM软件包

第3步:从.rpm转换到.deb软件包

在这一节中,我们将介绍如何从.rpm的转换为.deb文件 在32位Debian的Wheezy中,让我们下载的.rpm包从CentOS 6的操作系统存储库中的zsh外壳。 请注意,Debian和派生类中默认情况下不提供此shell。

# cat /etc/shells
# lsb_release -a | tail -n 4
检查Shell和Debian操作系统版本

检查Shell和Debian操作系统版本

# wget http://mirror.centos.org/centos/6/os/i386/Packages/zsh-4.3.11-4.el6.centos.i686.rpm
# alien --to-deb --scripts zsh-4.3.11-4.el6.centos.i686.rpm

您可以放心地忽略有关缺少签名的邮件:

将.rpm转换为.deb软件包

将.rpm转换为.deb软件包

片刻之后,应该已经生成的.deb文件,并准备安装:

# dpkg -i zsh_4.3.11-5_i386.deb
安装RPM转换的Deb包

安装RPM转换的Deb包

安装后,你可以验证的zsh被添加到有效的炮弹的列表:

# cat /etc/shells
确认安装的Zsh软件包

确认安装的Zsh软件包

概要

在这篇文章中,我们已经解释了如何从.rpm的以.deb文件 ,反之亦然转换为安装软件包作为最后的手段,当这种方案不是在仓库或分发源代码可用。 你会想要把这篇文章加入书签,因为我们所有的人都需要外星人在同一时间或另一个。

请随时使用下面的表格分享您对本文的想法。