如何解决什么指定 rpm64 位标签?
我已经为 omniORB 4.2.3 版构建了源代码,可从 Sourceforge 获得。我使用提供的源存档和 .spec 文件创建了一个 .rpm 文件。这个构建产生了几个包,包括 libomniORB4.2 和 omniORB-devel。首先,我安装了 libomniORB4.2,当我尝试安装 omniORB-devel 时,它想从 epel 存储库安装包 omniORB(旧版本),用于依赖项:
[developer@centos-arm aarch64]$ sudo yum install omniORB-devel-4.2.3-1.el7.aarch64.rpm
Loaded plugins: fastestmirror
Examining omniORB-devel-4.2.3-1.el7.aarch64.rpm: omniORB-devel-4.2.3-1.el7.aarch64
Marking omniORB-devel-4.2.3-1.el7.aarch64.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package omniORB-devel.aarch64 0:4.2.3-1.el7 will be installed
--> Processing Dependency: libCOS4.so.2()(64bit) for package: omniORB-devel-4.2.3-1.el7.aarch64
Loading mirror speeds from cached hostfile
epel/aarch64/metalink | 17 kB 00:00:00
* base: mirror.pit.teraswitch.com
* epel: packages.oit.ncsu.edu
* extras: mirror.genesisadaptive.com
* updates: mirror.pit.teraswitch.com
--> Processing Dependency: libCOSDynamic4.so.2()(64bit) for package: omniORB-devel-4.2.3-1.el7.aarch64
--> Processing Dependency: libomniCodeSets4.so.2()(64bit) for package: omniORB-devel-4.2.3-1.el7.aarch64
--> Processing Dependency: libomniConnectionMgmt4.so.2()(64bit) for package: omniORB-devel-4.2.3-1.el7.aarch64
--> Processing Dependency: libomniDynamic4.so.2()(64bit) for package: omniORB-devel-4.2.3-1.el7.aarch64
--> Processing Dependency: libomniORB4.so.2()(64bit) for package: omniORB-devel-4.2.3-1.el7.aarch64
--> Processing Dependency: libomniZIOP4.so.2()(64bit) for package: omniORB-devel-4.2.3-1.el7.aarch64
--> Processing Dependency: libomniZIOPDynamic4.so.2()(64bit) for package: omniORB-devel-4.2.3-1.el7.aarch64
--> Processing Dependency: libomnisslTP4.so.2()(64bit) for package: omniORB-devel-4.2.3-1.el7.aarch64
--> Processing Dependency: libomnithread.so.4()(64bit) for package: omniORB-devel-4.2.3-1.el7.aarch64
--> Running transaction check
---> Package omniORB.aarch64 0:4.2.0-3.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
===============================================================================================================================================
Package Arch Version Repository Size
===============================================================================================================================================
Installing:
omniORB-devel aarch64 4.2.3-1.el7 /omniORB-devel-4.2.3-1.el7.aarch64 21 M
Installing for dependencies:
omniORB aarch64 4.2.0-3.el7 epel 1.4 M
Transaction Summary
===============================================================================================================================================
Install 1 Package (+1 Dependent package)
Total size: 23 M
Installed size: 30 M
Is this ok [y/d/N]: n
Exiting on user command
Your transaction was saved,rerun it with:
yum load-transaction /tmp/yum_save_tx.2021-03-22.14-23.YTXFPA.yumtx
[developer@centos-arm aarch64]$
注意上面输出中的(64位)限定符。
如果我尝试安装 omniORB-devel,它会因为来自 omniORB 的文件和已安装的 libomniORB4.2 之间的冲突而失败。
问题是,我刚刚构建的 libomniORB4.2 包提供了与存储库中的 omniORB 相同的所有文件。
当我使用 rpm -qlp 列出 libomniORB4.2 和 omniORB 的内容时,除了版本号之外,它们基本上是相同的:
[developer@centos-arm aarch64]$ rpm -qlp libomniORB4.2-4.2.3-1.el7.aarch64.rpm
/etc/omniORB.cfg
/usr/lib64/libCOS4.so.2
/usr/lib64/libCOS4.so.2.3
/usr/lib64/libCOSDynamic4.so.2
/usr/lib64/libCOSDynamic4.so.2.3
/usr/lib64/libomniCodeSets4.so.2
/usr/lib64/libomniCodeSets4.so.2.3
/usr/lib64/libomniConnectionMgmt4.so.2
/usr/lib64/libomniConnectionMgmt4.so.2.3
/usr/lib64/libomniDynamic4.so.2
/usr/lib64/libomniDynamic4.so.2.3
/usr/lib64/libomniORB4.so.2
/usr/lib64/libomniORB4.so.2.3
/usr/lib64/libomniZIOP4.so.2
/usr/lib64/libomniZIOP4.so.2.3
/usr/lib64/libomniZIOPDynamic4.so.2
/usr/lib64/libomniZIOPDynamic4.so.2.3
/usr/lib64/libomnisslTP4.so.2
/usr/lib64/libomnisslTP4.so.2.3
/usr/lib64/libomnithread.so.4
/usr/lib64/libomnithread.so.4.1
/usr/share/doc/libomniORB4.2-4.2.3
/usr/share/doc/libomniORB4.2-4.2.3/COPYING
/usr/share/doc/libomniORB4.2-4.2.3/COPYING.LIB
/usr/share/doc/libomniORB4.2-4.2.3/CREDITS
[developer@centos-arm aarch64]$
和
[developer@centos-arm Downloads]$ rpm -qlp omniORB-4.2.0-3.el7.aarch64.rpm
/usr/lib64/libCOS4.so.2
/usr/lib64/libCOS4.so.2.0
/usr/lib64/libCOSDynamic4.so.2
/usr/lib64/libCOSDynamic4.so.2.0
/usr/lib64/libomniCodeSets4.so.2
/usr/lib64/libomniCodeSets4.so.2.0
/usr/lib64/libomniConnectionMgmt4.so.2
/usr/lib64/libomniConnectionMgmt4.so.2.0
/usr/lib64/libomniDynamic4.so.2
/usr/lib64/libomniDynamic4.so.2.0
/usr/lib64/libomniORB4.so.2
/usr/lib64/libomniORB4.so.2.0
/usr/lib64/libomniZIOP4.so.2
/usr/lib64/libomniZIOP4.so.2.0
/usr/lib64/libomniZIOPDynamic4.so.2
/usr/lib64/libomniZIOPDynamic4.so.2.0
/usr/lib64/libomnisslTP4.so.2
/usr/lib64/libomnisslTP4.so.2.0
/usr/lib64/libomnithread.so.4
/usr/lib64/libomnithread.so.4.0
/usr/share/doc/omniORB-4.2.0
/usr/share/doc/omniORB-4.2.0/COPYING.LIB
/usr/share/doc/omniORB-4.2.0/README.FIRST.txt
/usr/share/doc/omniORB-4.2.0/README.unix.txt
[developer@centos-arm Downloads]$
在所有情况下,较短的名称,例如libCOS4.so.2 是版本特定名称 libCOS4.so.2.3 的符号链接。
当我用 rpm -qp --provides 查询包时 输出不同:
[developer@centos-arm aarch64]$ rpm -qp libomniORB4.2-4.2.3-1.el7.aarch64.rpm --provides
config(libomniORB4.2) = 4.2.3-1.el7
libCOS4.so.2
libCOSDynamic4.so.2
libomniCodeSets4.so.2
libomniConnectionMgmt4.so.2
libomniDynamic4.so.2
libomniORB = 4.2.3-1.el7
libomniORB4.2 = 4.2.3-1.el7
libomniORB4.2(aarch-64) = 4.2.3-1.el7
libomniORB4.so.2
libomniZIOP4.so.2
libomniZIOPDynamic4.so.2
libomniorb = 4.2.3-1.el7
libomnisslTP4.so.2
libomnithread.so.4
omniORB = 4.2.3-1.el7
omniorb = 4.2.3-1.el7
[developer@centos-arm aarch64]$
和
[developer@centos-arm aarch64]$ rpm -qp ~/Downloads/omniORB-4.2.0-3.el7.aarch64.rpm --provides
omniORB = 4.2.0-3.el7
omniORB(aarch-64) = 4.2.0-3.el7
libCOS4.so.2()(64bit)
libCOSDynamic4.so.2()(64bit)
libomniCodeSets4.so.2()(64bit)
libomniConnectionMgmt4.so.2()(64bit)
libomniDynamic4.so.2()(64bit)
libomniORB4.so.2()(64bit)
libomnisslTP4.so.2()(64bit)
libomnithread.so.4()(64bit)
libomniZIOP4.so.2()(64bit)
libomniZIOPDynamic4.so.2()(64bit)
[developer@centos-arm aarch64]$
来自 repo 的 omniORB 包,它是 omniORB 的旧版本,列出了它提供的带有 (64bit) 标签的文件,而我构建的 libomniORB 没有 (64bit) 标签。
libomniORB4.2 是在 64 位 ARM 机器上构建的,如果您查询文件,例如
[developer@centos-arm aarch64]$ 文件 /usr/lib64/libCOS4.so.2.3 /usr/lib64/libCOS4.so.2.3:ELF 64 位 LSB 共享对象,ARM aarch64,版本 1 (SYSV),动态链接,BuildID[sha1]=c4044d2801c254b4be0fdf7d27c83f3f13492db5,未剥离 [developer@centos-arm aarch64]$
生成的文件被识别为 64 位库。
为什么 rpm 元数据不同?是什么导致(64 位)标签被添加到 rpm 元数据中?
任何帮助将不胜感激!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。