我正在为 centos 生成一个 rpm 文件,但是当我尝试在干净的机器上安装它时,它失败了:
--> Running transaction check
---> Package grass.x86_64 0:6.4.4-1.el6 will be installed
--> Processing Dependency: libgrass_rli.so()(64bit) for package: grass-6.4.4-1.el6.x86_64
--> Finished Dependency Resolution Error: Package: grass-6.4.4-1.el6.x86_64 (/grass-6.4.4-1.el6.x86_64)
Requires: libgrass_rli.so()(64bit)
除了 rpm 包含 libgrass_rli.so 之外,这很好。
[vagrant@localhost ~]$ rpm -qilp /vagrant_rpms/grass-6.4.4-1.el6.x86_64.rpm | grep _rli
/usr/local/lib/libgrass_rli.6.4.4.so
/usr/local/lib/libgrass_rli.so
我已经尝试了各种提供:规范文件中的行无济于事,任何人都可以看到有什么问题吗?
编辑
[vagrant@localhost ~]$ rpm -qp --provides /vagrant_rpms/grass-6.4.4-1.el6.x86_64.rpm
libgrass_I.6.4.4.so()(64bit)
libgrass_Iortho.6.4.4.so()(64bit)
libgrass_arraystats.6.4.4.so()(64bit)
libgrass_bitmap.6.4.4.so()(64bit)
libgrass_btree.6.4.4.so()(64bit)
libgrass_cdhc.6.4.4.so()(64bit)
libgrass_cluster.6.4.4.so()(64bit)
libgrass_datetime.6.4.4.so()(64bit)
libgrass_dbmibase.6.4.4.so()(64bit)
libgrass_dbmiclient.6.4.4.so()(64bit)
libgrass_dbmidriver.6.4.4.so()(64bit)
libgrass_dbstubs.6.4.4.so()(64bit)
libgrass_dgl.6.4.4.so()(64bit)
libgrass_dig2.6.4.4.so()(64bit)
libgrass_display.6.4.4.so()(64bit)
libgrass_driver.6.4.4.so()(64bit)
libgrass_dspf.6.4.4.so()(64bit)
libgrass_edit.6.4.4.so()(64bit)
libgrass_form.6.4.4.so()(64bit)
libgrass_g3d.6.4.4.so()(64bit)
libgrass_gis.6.4.4.so()(64bit)
libgrass_gmath.6.4.4.so()(64bit)
libgrass_gpde.6.4.4.so()(64bit)
libgrass_gproj.6.4.4.so()(64bit)
libgrass_interpdata.6.4.4.so()(64bit)
libgrass_interpfl.6.4.4.so()(64bit)
libgrass_lidar.6.4.4.so()(64bit)
libgrass_linkm.6.4.4.so()(64bit)
libgrass_lrs.6.4.4.so()(64bit)
libgrass_neta.6.4.4.so()(64bit)
libgrass_nviz.6.4.4.so()(64bit)
libgrass_ogsf.6.4.4.so()(64bit)
libgrass_pngdriver.6.4.4.so()(64bit)
libgrass_psdriver.6.4.4.so()(64bit)
libgrass_qtree.6.4.4.so()(64bit)
libgrass_raster.6.4.4.so()(64bit)
libgrass_rli.6.4.4.so()(64bit)
libgrass_rli.so
libgrass_rowio.6.4.4.so()(64bit)
libgrass_rtree.6.4.4.so()(64bit)
libgrass_segment.6.4.4.so()(64bit)
libgrass_shape.6.4.4.so()(64bit)
libgrass_sim.6.4.4.so()(64bit)
libgrass_sites.6.4.4.so()(64bit)
libgrass_sqlp.6.4.4.so()(64bit)
libgrass_stats.6.4.4.so()(64bit)
libgrass_symb.6.4.4.so()(64bit)
libgrass_trans.6.4.4.so()(64bit)
libgrass_vask.6.4.4.so()(64bit)
libgrass_vect.6.4.4.so()(64bit)
libgrass_vedit.6.4.4.so()(64bit)
grass = 6.4.4-1.el6
grass(x86-64) = 6.4.4-1.el6
提取的文件也看起来不错:
[vagrant@localhost ~]$ file /tmp/libgrass_rli.6.4.4.so
/tmp/libgrass_rli.6.4.4.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, not stripped