Deb to Rpm,关于alien -r 的一些问题

大老赖不赖 43 2022-09-30

戳我前往bilibili
用了差不多2周的蜥蜴,我的主力也慢慢地从Windows转过来了。在使用的过程中,软件安装的问题还是比较大的。如果您是一个红帽系的用户,您可能会看到某些软件只提供了.deb包而没有提供.rpm包,此时您可能就会需要转换。今天呢就来给大家分享一下,讲一下我遇到的问题。

为什么不直接用dpkg

这种东西~一个就够了,毕竟这种高权限管理软件的东西,一山不能容二虎,安装时可能觉得使用对应的比较简单方便,但万一有一天出现什么问题了,就变成了软件管理起来也麻烦,依赖也是。所以dpkg在我这仅仅是当作一个辅助工具而已,我的主力还是rpm。

是否需要root

在没有root权限的情况下,您在转换时可能看到一个提示:

Warning: alien is not running as root!
Warning: Ownerships of files in the generated packages will probably be wrong.

首先我用某会议示例,第一我先无root转换一遍,第二我再用root权限转换一遍
好,我们来看它们的校验值
我们可以看到两个都不太一样
image-1664547625295
但目录和文件的权限也都差不多
image-1664547672136
我们两个都解压,对比一下发现,好像又没有什么变化
image-1664547719019
所以,这个我也不太清楚,如果没有错误我还是用无root的转换

Summary标签的问题

在转换某些包的时候可能会出现,就比如说麒麟的微信
image-1664547812976
那这时候就得重新修改原始的.deb,重新打包了
首先先把data解压出来,再解压出control,注意了,这里需要的用大写

dpkg -X [package].deb [dir];
dpkg -e [package].deb [dir]/DEBIAN

然后进去修改里面的control文件,把这个换行符去掉
image-1664548032065
image-1664548089148
然后重新开始打包

# 打包
dpkg-deb -b [dir] [PackageName].deb
# 转换
alien -r [packgae].deb
# 安装
sudo zypper in [package].rpm

image-1664548243325
成功!

执行脚本的问题

还是微信,您可能忽略掉这样一句话
image-1664548392300

Warning: Skipping conversion of scripts in package weixin: postinst postrm

好,我们先来看看能不能用微信
image-1664548455903
postinst这个文件无法被正确执行导致无法登陆微信
这两个文件在control里面,我们可以看到一些shell脚本。
image-1664548579688
手动执行一下这些shell脚本,就可以登陆了
image-1664548724808