rpmbuild的默认行为似乎是扫描buildroot中每个文件的#!行,并将这些解释器添加为硬需求。是否可以禁用此功能?我遇到过这样的情况:人们使用#!/path/to/local/install/of/something提交脚本,并且该需求嵌入到rpm中。我还没有找到一个命令行或规范文件选项来抑制这种行为。希望我只是没有努力寻找不够。
nwwlzxa71#
我认为这个问题在Where does rpm look for dependencies中有答案。至少AutoReqProv: no禁用扫描,然后您将需要手动Requires: xxx值;不是最少工作的解决方案,而是一个解决方案。我还会猜测像 .rpmmacros 这样的东西有办法禁用脚本扫描。看看/usr/lib/rpm/find-requires。
AutoReqProv: no
Requires: xxx
/usr/lib/rpm/find-requires
o4tp2gmn2#
__provides_exclude_from、__provides_exclude、__requires_provides_from和__requires_provides也适用于Fedora / Centos / RHEL%global __provides_exclude_from %{buildroot}%{_javadir}/%{name}/lib/其中%{buildroot}%{_javadir}/%{name}/lib/是一个目录一个更复杂的例子:
__provides_exclude_from
__provides_exclude
__requires_provides_from
__requires_provides
%global __provides_exclude_from %{buildroot}%{_javadir}/%{name}/lib/
%{buildroot}%{_javadir}/%{name}/lib/
# Filter away the deps om bundled libs and those substituted # by symlinks and explicit Requires:. %global __requires_exclude ^libssl.so.1.0.0 %global __requires_exclude %__requires_exclude|^libcrypto.so.1.0.0 %global __requires_exclude %__requires_exclude|^libcef.so %global __requires_exclude %__requires_exclude|^libcurl.so.4 %global __requires_exclude %__requires_exclude|^libcurl-gnutls.so.4 %global __requires_exclude %__requires_exclude|^libwidevinecdm.so.* #global __requires_exclude #__requires_exclude|[.]so[.][0-2][a-f]
2条答案
按热度按时间nwwlzxa71#
我认为这个问题在Where does rpm look for dependencies中有答案。至少
AutoReqProv: no
禁用扫描,然后您将需要手动Requires: xxx
值;不是最少工作的解决方案,而是一个解决方案。我还会猜测像 .rpmmacros 这样的东西有办法禁用脚本扫描。看看/usr/lib/rpm/find-requires
。o4tp2gmn2#
__provides_exclude_from
、__provides_exclude
、__requires_provides_from
和__requires_provides
也适用于Fedora / Centos / RHEL%global __provides_exclude_from %{buildroot}%{_javadir}/%{name}/lib/
其中
%{buildroot}%{_javadir}/%{name}/lib/
是一个目录一个更复杂的例子: