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 在您的存储库中可用。我看到多个选项:
- 添加 harbottle 存储库:
yum-config-manager --add-repo https://harbottle.gitlab.io/harbottle-main/7/x86_64/
。现在您的 yum
将能够自行找到 tomcat8 rpm
- 如果您想确保包裹仍然可用;最好将 tomcat8.rpm 除了其他 rpms 复制到您自己的存储库中。
我正在尝试编写规范 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 在您的存储库中可用。我看到多个选项:
- 添加 harbottle 存储库:
yum-config-manager --add-repo https://harbottle.gitlab.io/harbottle-main/7/x86_64/
。现在您的yum
将能够自行找到 tomcat8 rpm - 如果您想确保包裹仍然可用;最好将 tomcat8.rpm 除了其他 rpms 复制到您自己的存储库中。