首页 > 其他分享 >[转帖]Alien :RPM 和 DEB 互转

[转帖]Alien :RPM 和 DEB 互转

时间:2024-04-06 19:12:42浏览次数:21  
标签:Alien dateutils nux alien RPM 转帖 互转 deb rpm

https://www.cnblogs.com/awakenedy/articles/9707416.html

 

使用Alien将RPM转换成DEB以及将DEB转换成RPM

在本文中,我们将为你介绍alien,一个用于在各种不同的Linux包格式相互转换的工具,其最常见的用法是将.rpm转换成.deb(或者反过来)。

如果你需要某个特定类型的包,而你只能找到其它格式的包的时候,该工具迟早能派得上用场——即使是其作者不再维护,并且在其网站声明:alien将可能永远维持在实验状态。

例如,有一次,我正查找一个用于喷墨打印机的.deb驱动,但是却没有找到——生产厂家只提供.rpm包,这时候alien拯救了我。我安装了alien,将包进行转换,不久之后我就可以使用我的打印机了,没有任何问题。

即便如此,我们也必须澄清一下,这个工具不应当用来转换重要的系统文件和库,因为它们在不同的发行版中有不同的配置。只有在前面说的那种情况下所建议的安装方法根本不适合时,alien才能作为最后手段使用。

最后一项要点是,我们必须注意,虽然我们在本文中使用CentOS和Debian,除了前两个发行版及其各自的家族体系外,据我们所知,alien可以工作在Slackware中,甚至Solaris中。

步骤1:安装Alien及其依赖包

要安装alien到CentOS/RHEL 7中,你需要启用EPEL和Nux Dextop(是的,是Dextop——不是Desktop)仓库,顺序如下:

# yum install epel-release

启用Nux Dextop仓库的包的当前最新版本是0.5(2015年8月10日发布),在安装之前你可以查看http://li.nux.ro/download/nux/dextop/el7/x86_64/上是否有更新的版本。

# rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro# 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包

对于本次测试,我们选择了date工具,它提供了一系列日期和时间工具用于处理大量金融数据。我们将下载.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

Alien 魔法:RPM 和 DEB 互转

在Linux中将.deb转换成.rpm

重要:(请注意alien是怎样来增加目标包的次版本号的。如果你想要无视该行为,请添加-keep-version标识)。

如果我们尝试马上安装该包,我们将碰到些许问题:

# rpm -Uvh dateutils-0.3.1-2.1.x86_64.rpm 

安装RPM包

要解决该问题,我们需要启用epel-testing仓库,然后安装rpmbuild工具来编辑该包的配置以重建包:

# yum --enablerepo=epel-testing install rpmrebuild

然后运行,

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

它会打开你的默认文本编辑器。请转到%files章节并删除涉及到错误信息中提到的目录的行,然后保存文件并退出:

Alien 魔法:RPM 和 DEB 互转

转换.deb到Alien版

但你退出该文件后,将提示你继续去重构。如果你选择“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

安装构建RPM包

最后,你可以列出date工具包含的各个工具,也可以查看各自的手册页:

# ls -l /usr/bin | grep dateutils

Alien 魔法:RPM 和 DEB 互转

验证安装的RPM包

步骤3:将.rpm转换成.deb包

在本节中,我们将演示如何将.rpm转换成.deb。在一台32位的Debian Wheezy机器中,让我们从CentOS 6操作系统仓库中下载用于zsh shell的.rpm包。注意,该shell在Debian及其衍生版的默认安装中是不可用的。

# cat /etc/shells# lsb_release -a | tail -n 4

Alien 魔法:RPM 和 DEB 互转

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

你可以安全地无视关于签名丢失的信息:

Alien 魔法:RPM 和 DEB 互转

将.rpm转换成.deb包

过了一会儿后,.deb包应该已经生成,并可以安装了:

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

Alien 魔法:RPM 和 DEB 互转

安装RPM转换来的Deb包

安装完后,你看看可以zsh是否添加到了合法shell列表中:

# cat /etc/shells

Alien 魔法:RPM 和 DEB 互转

标签:Alien,dateutils,nux,alien,RPM,转帖,互转,deb,rpm
From: https://www.cnblogs.com/jinanxiaolaohu/p/18117767

相关文章

  • [转帖]【Linux】使用 apt-get 查询并安装指定版本的软件
    https://zhuanlan.zhihu.com/p/540712989 一、通过apt-get安装指定版本的软件$sudoapt-getinstallpackage=versionversion是软件版本号,package是要安装的软件二、查询指定软件有多少个版本1、通过网站搜索https://packages.ubuntu.com/2、使用apt-cachem......
  • [转帖]如何在Ubuntu Linux上使用SNAP安装Docker
    https://zhuanlan.zhihu.com/p/633483748 2人赞同了该文章在UbuntuLinux上安装Docker的最快捷的方法之一是使用SNAP命令。在这里,我们将学习如何使用它。对于那些处理容器化应用程序的人来说,Docker无需介绍。它已经被全球数百家企业和开发人员使用。然而,那些想要......
  • FFmpeg图片与视频相互转换命令
    FFmpeg图片与视频相互转换命令命令简介该命令可以实现对图片和视频之间的相互转换,即:图片转视频和视频转图片。视频转图片命令的格式ffmpeg-i[输入文件][滤镜参数(可选)][输出文件]输入文件指定你要转哪个视频文件。滤镜参数详见FFmpeg滤镜命令简介,并且可以添加编解码......
  • [转帖]梳理 Debian 各版本号,代号和软件源
    https://zhuanlan.zhihu.com/p/680480525 Debian 是Linux系统最大的发行版之一,但其版本命名却一直令我困扰。因此我整理了一下Debian各个版本的命名和关系。版本号(数字)Debian版本号直接用数字来表示,如从Debian8、9、10和11等等。从Debian6开始,每个......
  • [转帖]shell编程-流程控制-if语句
    1.单分支if条件语句单分支if条件语句有三种写法:if[条件判断式];then操作fi或者if[条件判断式]then操作fi或者if[条件判断式];then操作;fi说明:只有条件成立,才执行相应的操作。示例:if[aa==aa];thenechoyes;fi1注意要点:if语句使用......
  • [转帖]Linux内存–零拷贝
    https://plantegg.github.io/2020/11/15/Linux%E5%86%85%E5%AD%98--%E9%9B%B6%E6%8B%B7%E8%B4%9D/ 本系列有如下几篇Linux内存问题汇总Linux内存–PageCacheLinux内存–管理和碎片Linux内存–HugePageLinux内存–零拷贝零拷贝“Zero-copy“describescomputeroper......
  • [转帖]shell编程-条件判断
    1.按照文件的类型进行判断判断选项作用-b文件判断该文件是否存在,并且是否为块设备文件(是块设备文件为真)。-c文件判断该文件是否存在,并且是否为字符设备文件(是字符设备文件为真)。-d文件判断该文件是否存在,并且是否为目录文件(是目录文件为真)。-e文件判断该文件是否存在(......
  • [转帖]JVM 内存分析工具 MAT 的深度讲解与实践——入门篇
    https://juejin.cn/post/6908665391136899079  注:本文原创,转发需全文转载并标明原文链接。JVM内存分析往往由团队较资深的同学来做,本系列通过3篇文章,深度解析并帮助读者全面深度掌握MAT的使用方法。即使没有JVM内存分析的实践经验,也能快速成为内存分析高手!本系......
  • [转帖]浅堆深堆与内存泄露以及使用OQL语言查询对象信息
    https://www.cnblogs.com/lvxueyang/p/14833614.html 1.浅堆(ShallowHeap)浅堆是指一个对象所消耗的内存。在32位系统中,一个对象引用会占据4个字节,一个int类型会占据4个字节,long型变量会占据8个字节,每个对象头需要占用8个字节。根据堆快照格式不同,对象的大小可能会同8字......
  • [转帖]nginx重试机制proxy_next_upstream
    https://www.cnblogs.com/cyleon/p/11023229.html nginx作为反向代理服务器,后端RS有多台服务器,上层通过一定机制保证容错和负载均衡。nginx的重试机制就是容错的一种官方链接:http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_next_upstreamproxy_next_......