一尘不染

如何使rpm自动安装依赖项

linux

我已经建立了两个RPM套件

  • proj1-1.0-1.x86_64.rpm
  • libtest1-1.0-1.x86_64.rpm

proj1取决于libtest1.so存在的文件,它在RPM软件包中正确反映,如下所示:

user@my-pc:~$ rpm -qp --requires proj1-1.0-1.x86_64.rpm
libtest1.so()(64bit)

user@my-pc:~$ rpm -qp --provides libtest1-1.0-1.x86_64.rpm
libtest1.so()(64bit)

proj1由于缺少依赖项,安装失败。

user@my-pc:~$ rpm -ivh proj1-1.0-1.x86_64.rpm
error: Failed dependencies:
libtest1.so()(64bit) is needed by proj1-1.0-1.x86_64.rpm

如何确保libtest1-1.0-1.x86_64.rpm在安装过程中自动安装proj1-1.0-1.x86_64.rpm

我确实按照此处所述尝试了该--aid选项,但对我而言不起作用。rpm -i

还有其他办法吗?

谢谢你的帮助。


阅读 1532

收藏
2020-06-03

共1个答案

一尘不染

创建一个(本地)存储库,并使用yum它来为您解决依赖关系。

CentOS Wiki有一个漂亮的页面,提供有关此操作方法的信息。CentOS Wiki HowTos /
CreateLocalRepos


总结并进一步最小化(不理想,但最快):

  1. 为本地存储库创建目录,例如/home/user/repo
  2. 将RPM移至该目录。
  3. 修复一些所有权和文件系统权限:

    # chown -R root.root /home/user/repo
    
  4. 安装createrepo软件包(如果尚未安装)并运行

    # createrepo /home/user/repo
    

    chmod -R o-w+r /home/user/repo

  5. 创建一个存储库配置文件,例如/etc/yum.repos.d/myrepo.repo包含

[local]
name=My Awesome Repo
baseurl=file:///home/user/repo
enabled=1
gpgcheck=0
  1. 使用以下方法安装软件包
    # yum install packagename
    
2020-06-03