CentOS 7 - 如何在 RPM 规范文件中使用 wget 安装依赖项

CentOS 7 - how to install dependency using wget in an RPM spec file

我正在尝试编写规范 RPM 文件来构建 RPM 包。 这实际上是我的规范文件:

[...]
Requires: nodejs java-1.8.0-openjdk java-1.8.0-openjdk-devel log4j 

%define _rpmdir ../
%define _rpmfilename %%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm
%define _unpackaged_files_terminate_build 0

%pre
[Some script]


%post
[Some script]

%preun
[Some script]

%postun
[Some script]

%install
[...]

%files
[...]

我已经成功地安装了带有序言 Requires 的包依赖项,期望一个 yum package (tomcat8) 不存在。在网上查到centOS的安装方式是:

wget https://harbottle.gitlab.io/harbottle-main/7/x86_64/00853071-tomcat8/tomcat8-8.5.37-2.el7.harbottle.x86_64.rpm
rpm -ivh tomcat8-8.5.37-2.el7.harbottle.x86_64.rpm

但是我应该把它放在规范文件的什么地方呢?我试图将它放在 %pre 脚本中,但是 rpm 上有一个锁阻止了它的使用。我试着把它放在 %install 部分,但它似乎不对。你能帮我解决这个问题吗?有没有办法仍然把它放在 Requires 序言中?

谢谢!

这不是您管理这些依赖关系的方式。您应该寻找一种方法使此 rpm 在您的存储库中可用。我看到多个选项:

  1. 添加 harbottle 存储库:yum-config-manager --add-repo https://harbottle.gitlab.io/harbottle-main/7/x86_64/。现在您的 yum 将能够自行找到 tomcat8 rpm
  2. 如果您想确保包裹仍然可用;最好将 tomcat8.rpm 除了其他 rpms 复制到您自己的存储库中。