当前位置: 首页 > 面试题库 >

如何使rpm自动安装依赖项

苍兴怀
2023-03-14
问题内容

我已经建立了两个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

还有其他办法吗?

谢谢你的帮助。


问题答案:

创建一个(本地)存储库,并使用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
    
  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
    


 类似资料:
  • 问题内容: 例如,当我安装Angular2时: 是否可以传递给npm的魔术标志也将安装对等项依赖关系?我找不到一个……手动复制并粘贴对等项依赖关系并确保我具有正确的版本很繁琐。 换句话说,我宁愿不必这样做: 有什么更好的方法? 问题答案: npm 3明确删除了对等依赖项的自动安装,因为它引起的问题比它尝试解决的更多。例如,您可以在此处阅读有关信息: https://blog.npmjs.org/p

  • If you have just checked out a package from version control, you will need to install those dependencies. If you are adding dependencies for your project, then those dependencies are automatically ins

  • 问题内容: 在Ubuntu上使用软件包安装程序时,可以使用Ubuntu Packages Search 检查软件包的依赖性。例如,我可以从这里看到Wireshark的依赖关系。如您所见,依赖项由红色项目符号标记。如果您知道程序所依赖的所有软件包,都可以下载并安装。 是否有RPM软件包的替代网站?专门用于RHEL? 我知道我可以通过其他方法来获得这些软件包的名称,例如使用来安装RPM软件包时,但它不

  • 使用rpm包安装MySQL 以mysql-5.5.16为例,我们可以在光盘或者网上下载到三个安装包 MySQL-server-5.5.16-1.rhel5.i386.rpm MySQL-client-5.5.16-1.rhel4.i386.rpm MySQL-devel-5.5.16-1.rhel4.i386.rpm 其中,必须安装MySQL-server-*和MySQL-client-*软件包,

  • 然而,似乎什么也没发生。没有变化,控制台输出没有提到新版本(这就足够了)。 我的如下所示: