我想创建一个依赖于github存储库的RPM包。
如果我独立运行此命令:
yum localinstall https://github.com/matthewmueller/giftbox/blob/master/rpm/monit.rpm
它会工作得很好。但是,如果我尝试将其作为RPM包的依赖项(使用FPM),则会出错:
--> Processing Dependency: https://github.com/matthewmueller/giftbox/raw/release-2017-08-21-08-33/rpm/monit.rpm for package: giftbox-2017_08_21_08_33-1.x86_64
--> Finished Dependency Resolution
Error: Package: giftbox-2017_08_21_08_33-1.x86_64 (/giftbox)
Requires: https://github.com/matthewmueller/giftbox/raw/release-2017-08-21-08-33/rpm/monit.rpm
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
这是我正在运行以生成RPM包的命令:
@fpm \
--input-type=dir \
--output-type=rpm \
--name $(NAME) \
--version $(VERSION) \
--architecture x86_64 \
--package "$(DIR)/rpm/$(NAME)-$(VERSION).rpm" \
--rpm-os linux \
--template-scripts \
--after-install "$(DIR)/postinstall.sh" \
--after-upgrade "$(DIR)/postupgrade.sh" \
--before-remove "$(DIR)/preremove.sh" \
--depends "procps" \
--depends "util-linux" \
--depends "initscripts" \
--depends "$(GHBASE)/monit.rpm" \
--force \
"$(DIR)/init.sh"="/etc/init.d/giftbox"
非常感谢任何帮助。谢谢!
答案 0 :(得分:1)
这是不可能的。
Requires: some_package
只能包含包名。
yum install http://some.url/some.package.rpm
只是yum的功能,它会下载文件然后安装。您无法在要求中使用URL。
你能做什么:
*创建rpm,例如my-repo.rpm将包含repo文件(/etc/yum.repos.d
),它将启用monit.rpm所在的存储库
*然后你可以将Requires: monit
放到礼品盒中。
* yum install my-repo.rpm
,在第二步,您应该能够'yum install giftbox`