使用Alien将RPM从DE转换为DEB和DEB转换为RPM包

我相信您已经知道,有很多方法可以在Linux中安装软件:使用您的发行版提供的软件包管理系统(aptitude,yum或zypper,举几个例子),从源代码编译(尽管有些这些天很少见,它是Linux早期唯一可用的方法,或者分别使用dpkg或rpm等低级工具和.deb和.rpm独立的预编译软件包。     

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

在本文中,我们将向您介绍alien,一种在不同Linux包格式之间进行转换的工具,使用.rpm到.deb(反之亦然)是最常用的用法。

这个工具,即使它的作者不再维护它并在他的网站上说外星人总是可能保持实验状态,如果你需要某种类型的包但只能找到另一种包装格式的程序,它可以派上用场。

例如,当我为喷墨打印机寻找.deb驱动程序时,外星人节省了我的一天,但却找不到 - 制造商只提供了一个.rpm包。我安装了外星人,转换了包装,不久我就可以毫无问题地使用我的打印机了。

也就是说,我们必须澄清这个实用程序不应该用于替换重要的系统文件和库,因为它们在不同的发行版中设置不同。如果本文开头的建议安装方法不能满足所需程序的要求,请仅使用外星人作为最后的手段。

最后但并非最不重要的是,我们必须注意,尽管我们将在本文中使用CentOS和Debian,但除了前两个发行版及其各自的系列之外,外星人也知道在Slackware甚至Solaris中工作。

第1步:安装外来和依赖项

要在CentOS / RHEL 7中安装外星人,您需要按顺序启用EPEL和Nux Dextop(是的,它是Dextop - 而不是桌面)存储库:

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

支持此存储库的最新版软件包目前为0.5(2015年8月10日发布)。您应该先检查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安装外星人

由于制作rpm包过程较为麻烦,此处使用rpmrebuild去将本机已安装好的openvswitch包进行重新打包,用于下次安装部署

# yum install rpmrebuild -y

修改opensvswitch的配置文件如/etc/sysconfig/network-scripts/ifdown-ovs

# rpmrebuild openvswitch

由于你修改过这个文件,rpmrebuild的时候会提示该文件修改,输入y
文件会生成于

 # /root/rpmbuild/RPMS/x86_64/libvirt-daemon-3.2.0-14.el7_4.5.x86_64.rpm

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

对于此测试,我们选择了dateutils,它提供了一组日期和时间实用程序来处理大量的财务数据。我们将.deb软件包下载到我们的CentOS 7盒子,将其转换为.rpm并安装它:

检查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包

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

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

安装RPM包

要解决此问题,我们将启用epel-testing存储库并安装rpmrebuild实用程序以编辑要重建的程序包的设置:

#yum --enablerepo = epel-testing安装rpmrebuild

然后跑,

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

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

将.deb转换为外星人版

当您退出该文件系统将提示您继续重建。如果你选择Y.,则文件将重建到指定目录(不同于当前工作目录):

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

构建RPM包

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

#rpm -Uvh /root/rpmbuild/RPMS/x86_64/dateutils-0.3.1-2.1.x86_64.rpm
#rpm -qa | grep dateutils

安装Build RPM Package

最后,您可以列出dateutils中包含的各个工具,也可以检查各自的手册页:

#ls -l / usr / bin | grep dateutils

验证已安装的RPM包

第3步:从.rpm转换为.deb包

在本节中,我们将说明如何将.rpm转换为.deb。在32位Debian Wheezy框中,让我们从CentOS 6操作系统下载zsh shell 的.rpm包存储库。请注意,默认情况下,Debian和衍生产品中不提供此shell。

#cat / etc / shells
#lsb_release -a | 尾巴-n 4

检查Shell和Debian OS版本

#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包

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

#dpkg -i zsh_4.3.11-5_i386.deb

安装RPM Converted Deb Package

安装后,您可以验证zsh是否已添加到有效shell列表中:

#cat / etc / shells

确认已安装的Zsh包

摘要

在本文中,我们已经解释了如何将.rpm转换为.deb,反之亦然,以便在这些程序在存储库中不可用或作为可分发的源代码时,作为最后的手段安装软件包。你会想要为这篇文章添加书签,因为我们所有人都会在某个时候需要外星人。

 
 

原文地址:https://www.cnblogs.com/MrJason/p/11555923.html

时间: 2024-07-30 16:24:40

使用Alien将RPM从DE转换为DEB和DEB转换为RPM包的相关文章

linux环境下deb格式 转换成rpm格式

linux环境下deb格式 转换成rpm格式 使用alien工具转换deb格式到rpm格式 alien_8.87.tar.gz 下载alien_8.87.tar.gz [[email protected] ~]# wget http://ftp.de.debian.org/debian/pool/main/a/alien/alien_8.87.tar.gz [[email protected] ~]# tar zxvf alien_8.87.tar.gz[[email protected] ~]

UTF8转换为GB编码gb2312转换为utf-8

这个方法是用windows的字符集转换的,跟sybase 的unicode码表可能在某些符号上有差别,对于大部分字符来说,尤其是 汉字,应该不会有问题的,如果要求比较高的话,可以买sybase的 unicode开发包,:P [code] #include <stdio.h> #include <stdlib.h> #include <string.h> #include <locale.h> #include <ctype.h> #include

Sql 行转换为列 以及列转换为行的心得

这是 创建数据库的脚本文件 CREATE TABLE [dbo].[stu]( [学号] [nvarchar](255) NOT NULL, [姓名] [nvarchar](255) NULL, [性别] [nvarchar](255) NULL, [专业] [nvarchar](255) NULL, [院系] [nvarchar](255) NULL ) ON [PRIMARY] GO INSERT [dbo].[stu] ([学号], [姓名], [性别], [专业], [院系]) VALU

rpm、yum管理及源码安装程序包

linux程序包管理: 为了更好的实现程序的安装.升级.卸载.查询.校验以及数据库的维护,所以把将编译好的程序的各个组成文件打包成一个或者多个程序包文件. 软件包的获取途径: 1.到各个镜像网站获取: 比如:mirrors.aliyun.com   mirrors.163.com   mirrors.souhu.com 2.到各个程序官网获取 比如:apache.org  nginx.org 3.通过第三方组织 比如:epel.搜索引擎 1.rpm包管理  :  不能处理依赖关系 RPM 是以一

传入一个字符串,已知字符串只由字母组成,将其中的大写字母转换为小写,小写转换为大写,返回转换后的字符串

传入一个字符串,已知字符串只由字母组成,将其中的大写字母转换为小写,小写转换为大写,返回转换后的字符串 如传入:@"GOODgoodSTUDY",返回@"goodGOODstudy" */ - (NSString *)upperExchangeLower:(NSString *)str { NSMutableString *str1=[[NSMutableString alloc] initWithString:str]; for (NSUInteger i=0;

16进制字符串转换为NSData,然后转换为NSString---用于安全支付环境

16进制字符串转换为NSData,然后转换为NSString---用于安全支付环境 +(NSData *)hexToByteToNSData:(NSString *)str { int j=0; Byte bytes[[str length]/2]; for(int i=0;i<[str length];i++) { int int_ch; ///两位16进制数转化后的10进制数 unichar hex_char1 = [str characterAtIndex:i]; ////两位16进制数中

C#文件转换为字节流及字节流转换为文件

本文讲解了C#实现文件转换为字节流的方法. ·文件转换为字节流的步骤如下 1.通过文件流打开指定文件(FileStream fs): 2.定义字节流(byte[] fileByte=new byte[fs.Length]): 3.把文件读取到字节流(fs.Read(fileByte,0,fileByte.Length)): 4.关闭文件(fs.close()): 5.返回字节流(return fileByte): 具体的代码如下(需要引用命名空间System.IO):             F

Linux包管理工具(rpm/dpkg,yum/apt,alien)

概括: rpm/yum  redhat dpkg/apt  debian alien 转换 在 GNU/Linux( 以下简称 Linux) 操作系统中,RPM 和 DPKG 为最常见的两类软件包管理工具,他们分别应用于基于 RPM 软件包的 Linux 发行版本和 DEB 软件包的 Linux 发行版本.软件包管理工具的作用是提供在操作系统中安装,升级,卸载需要的软件的方法,并提供对系统中所有软件状态信息的查询.RPM 全称为 Redhat Package Manager,最早由 Red Ha

deb 转换 rpm

使用工具 alien wget http://ftp.de.debian.org/debian/pool/main/a/alien/alien_8.87.tar.gz tar zxvf alien_8.87.tar.gz cd alien perl Makefile.PL make make install 转换libnet0-dev_1.0.2a-7_i386.deb到libnet0-dev-1.0.2a-8.i386.rpm alien -r libnet0-dev_1.0.2a-7_i38