我可以在 rpm 包的 .spec 文件中的 "Requires" 之前添加我的 repo 吗?
Can I add my repo before the "Requires" in .spec file of rpm package?
这里有个问题:
- 我需要从我自己的 rpm 包在 CentOS 7 中安装包(我们称之为 "testpack")。感谢来自 Whosebug 的人,我知道我需要从 .spec 文件的 "Requires" 部分安装这个测试包,但是需要从非默认存储库安装测试包。
这里有一个问题:
- 如何在包含字符串 "Requires: testpack" 的 .spec 文件中添加非默认存储库?添加新存储库和安装测试包需要从同一个包中进行。可能吗?
这是我奇怪的预解决方案:
- 尝试在 .spec 文件的
%pre
和 %prep
部分添加类似 curl http://domain.com/testpack_repo.sh | bash /dev/stdin arg1
的字符串,但该部分仅在 rpm 使用 rpmbuild --bb test.spec
制作时启动.如果我尝试使用 yum install test.rpm
在其他系统中安装此软件包,则忽略此部分;
- 尝试在
%post
部分添加 curl http://domain.com/testpack_repo.sh | bash /dev/stdin arg1
但没有希望。此部分在 yum install test.rpm
期间被忽略,因为从 "Requires" 安装测试包失败;
- 尝试将 bash 脚本与 curl 一起使用而不是 naked curl - 得到相同的结果;
- 尝试在 .spec 文件的不同部分使用
echo repo_info > repo_file
- 再次失败。
这是我的 .spec 文件:
Name: test_script_name
Summary: It's just a test_script_summary
Version: 0.1
Release: 1
Group: Applications/Internet
License: GPL
Requires: testpack
BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-root
%description
A test_script_description.
%pre
curl http://domain.com/test.sh | bash /dev/stdin arg1
%prep
%build
%install
%clean
%post
#bash test.sh
%files
%defattr(-,root,root)
%changelog
* Tue Dec 08 2015 test test <test@test.com>
- test_script_changelog!
希望得到帮助。谢谢。
不,你不能。
您可以制作一个 RPM 供用户下载,然后将您的 GPG 密钥和存储库位置文件放在适当的位置。
看看像 https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm 这样的东西,看看他们是如何为 EPEL 做的。
这里有个问题:
- 我需要从我自己的 rpm 包在 CentOS 7 中安装包(我们称之为 "testpack")。感谢来自 Whosebug 的人,我知道我需要从 .spec 文件的 "Requires" 部分安装这个测试包,但是需要从非默认存储库安装测试包。
这里有一个问题:
- 如何在包含字符串 "Requires: testpack" 的 .spec 文件中添加非默认存储库?添加新存储库和安装测试包需要从同一个包中进行。可能吗?
这是我奇怪的预解决方案:
- 尝试在 .spec 文件的
%pre
和%prep
部分添加类似curl http://domain.com/testpack_repo.sh | bash /dev/stdin arg1
的字符串,但该部分仅在 rpm 使用rpmbuild --bb test.spec
制作时启动.如果我尝试使用yum install test.rpm
在其他系统中安装此软件包,则忽略此部分; - 尝试在
%post
部分添加curl http://domain.com/testpack_repo.sh | bash /dev/stdin arg1
但没有希望。此部分在yum install test.rpm
期间被忽略,因为从 "Requires" 安装测试包失败; - 尝试将 bash 脚本与 curl 一起使用而不是 naked curl - 得到相同的结果;
- 尝试在 .spec 文件的不同部分使用
echo repo_info > repo_file
- 再次失败。
这是我的 .spec 文件:
Name: test_script_name
Summary: It's just a test_script_summary
Version: 0.1
Release: 1
Group: Applications/Internet
License: GPL
Requires: testpack
BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-root
%description
A test_script_description.
%pre
curl http://domain.com/test.sh | bash /dev/stdin arg1
%prep
%build
%install
%clean
%post
#bash test.sh
%files
%defattr(-,root,root)
%changelog
* Tue Dec 08 2015 test test <test@test.com>
- test_script_changelog!
希望得到帮助。谢谢。
不,你不能。
您可以制作一个 RPM 供用户下载,然后将您的 GPG 密钥和存储库位置文件放在适当的位置。
看看像 https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm 这样的东西,看看他们是如何为 EPEL 做的。