需要帮助将 rpm 格式的程序安装到 CentOS 7 中

Need help to install a rpm format program into CentOS 7

我想从 https://lanmessenger.github.io/ 安装 Lan Messenger 到我的 CentOS 7 并且我下载了 rpm 格式的安装程序“lmc-1.2.37.x86_64_min.rpm”。

因为只有libcrypto.so.10,所以在安装lacking-from-existed-yum-repos依赖后libcrypto.so.1.0.0 from http://rpmfind.net/linux/RPM/openmandriva/4.0/x86_64/main/release/lib64crypto1.0.0-1.0.2r-2.x86_64.html。我运行

$ sudo yum install lmc-1.2.37.x86_64_min.rpm

但它以下面的错误消息结尾:

Transaction Summary
=============================================================================================================================================================================================================================================
Install  1 Package  (+15 Dependent packages)
Upgrade             (  3 Dependent packages)

Total size: 32 M
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction check error:
  file / from install of lmc-1.2.37-2.x86_64 conflicts with file from package filesystem-3.2-21.el7.x86_64
  file /usr from install of lmc-1.2.37-2.x86_64 conflicts with file from package filesystem-3.2-21.el7.x86_64
  file /usr/bin from install of lmc-1.2.37-2.x86_64 conflicts with file from package filesystem-3.2-21.el7.x86_64
  file /usr/lib from install of lmc-1.2.37-2.x86_64 conflicts with file from package filesystem-3.2-21.el7.x86_64
  file /usr/share from install of lmc-1.2.37-2.x86_64 conflicts with file from package filesystem-3.2-21.el7.x86_64
  file /usr/share/applications from install of lmc-1.2.37-2.x86_64 conflicts with file from package filesystem-3.2-21.el7.x86_64
......(etc)

我通过

检查了rpm文件

$ rpm -qpl lmc-1.2.37.x86_64_min.rpm

输出的开头如下:

/
/usr
/usr/bin
/usr/bin/lmc
/usr/lib
/usr/lib/lmc
/usr/lib/lmc/COPYING
/usr/lib/lmc/lan-messenger
/usr/lib/lmc/lang
/usr/lib/lmc/lang/ar_SA.qm
/usr/lib/lmc/lang/bg_BG.qm
/usr/lib/lmc/lang/de_DE.qm
/usr/lib/lmc/lang/en_US.qm
/usr/lib/lmc/lang/es_ES.qm
/usr/lib/lmc/lang/fr_FR.qm
/usr/lib/lmc/lang/it_IT.qm
/usr/lib/lmc/lang/ko_KR.qm
/usr/lib/lmc/lang/ml_IN.qm
/usr/lib/lmc/lang/pt_BR.qm
/usr/lib/lmc/lang/ro_RO.qm
/usr/lib/lmc/lang/ru_RU.qm
/usr/lib/lmc/lang/sl_SI.qm
/usr/lib/lmc/lang/system
/usr/lib/lmc/lang/system/ar_SA.qm
/usr/lib/lmc/lang/system/de_DE.qm
/usr/lib/lmc/lang/system/es_ES.qm
/usr/lib/lmc/lang/system/fr_FR.qm
/usr/lib/lmc/lang/system/ko_KR.qm
/usr/lib/lmc/lang/system/pt_BR.qm
/usr/lib/lmc/lang/system/sl_SI.qm
/usr/lib/lmc/lang/tr_TR.qm
/usr/lib/lmc/liblmcapp.so.2
/usr/lib/lmc/lmc.rcc
/usr/lib/lmc/lmc.sh
......(etc)

感觉rpm文件里有“/”、“/usr”、“/usr/bin”等项目,感觉很奇怪

我需要在我的“sudo yum install ...”命令中添加一些额外的选项吗?还是我下载了不适合 CentOS 7 的 rpm 文件?或者我需要做其他事情?

你能给我一些建议吗?非常感谢!

It is strange that items such as "/", "/usr", "/usr/bin", etc are in the rpm file, I feel.

的确,这些都是不正确的。看来作者使用 alien 将 deb 转换为 rpm,生成的 RPM 包包含错误的文件位置。

Or I need to do other things?

无需实际重建包,我认为您可以通过 rpmrebuild:

成功修复当前包
rpmrebuild --edit-spec --package lmc-1.2.37.x86_64_min.rpm

然后通过删除错误位置来调整 %files 部分,然后您就可以安装 resulting/modified 包了。