我正在创建一个RPM文件(使用rpmbuild),其安装后脚本将在/etc/X11/xinit/xinitrc.d/
中创建一个文件。为了确保该目录已经存在,我想在创建它的包上指定依赖项。
在这种情况下,在规范文件中添加Requires: /etc/X11/xinit/xinitrc.d
行是否正确?或者是否不允许依赖目录,我是否应该在xorg-x11-xinit
包上添加一个依赖项(它似乎在我的系统上提供了这个目录)?
该软件包适用于CentOS(RHEL)6。
答案 0 :(得分:0)
这应该可以工作(您可以要求任何路径),但您应该依赖于提供该路径的包。你有没有理由不这样做?
答案 1 :(得分:0)
当所需文件可由多个软件包提供时,您应该使用虚拟软件包来避免意外。
在您的示例中,yum provides
表示/etc/X11/xinit/xinitrc.d
由xorg-x11-xinit
和qt5-qtbase-gui
提供,因此,将该路径指定为依赖项可能会提取您不希望的包。
您应该为每个提供该文件的可能包提供虚拟包。包my-xinit-x11
应包含:
Requires: xorg-x11-xinit
Provides: my-xinit
您的包裹应包含:
Requires: my-xinit
可以使用相同的Provides
创建更多虚拟包,因此当安装任何一个虚拟包时,rpmbuild会将依赖关系视为满意