首页 > 解决方案 > fpm 创建的带有扩展名的 gem 包的 RPM 放在 /usr/share/gem 而不是 /usr/lib64

问题描述

看起来 fpm 为包含扩展的 ruby​​ gem 包生成的 RPM 直接放在/usr/share/gems而不是放在/usr/lib64.

例如:您可以运行fpm -s gem -t rpm ffi并在安装时创建一个 RPM 包,在以下位置创建扩展:

[root@rhel8test04 ~]# rpm -ql  rubygem-ffi | grep ffi_c.so
/usr/share/gems/extensions/x86_64-linux/2.5.0/ffi-1.12.2/ffi_c.so
/usr/share/gems/gems/ffi-1.12.2/ext/ffi_c/ffi_c.so

但是,由 redhat 或 gem 构建的包(默认情况下)将这些.so文件安装在/usr/lib64.

[root@rhel8test04 ~]# sudo rpm -ql rubygem-json-2.1.0-106.module+el8.3.0+7153+c6f6daa5.x86_64 | grep parser.so
/usr/lib64/gems/ruby/json-2.1.0/json/ext/parser.so

有人可以提出解决方案吗?或者,这是 fpm 中的错误吗?

标签: rubylinuxrubygemsshared-librariesrpm

解决方案


推荐阅读