假设我们有10个产品都需要安装在/opt/xyz
下。
rpm -e
未清理上次卸载时的目录。
规范文件如下:
%dir
/opt/xyz/client/version/lib
/opt/xyz/client/version/bin
/opt/xyz/client/version/etc
最佳答案
如果您指定
%目录 /opt/xyz/client/version/lib
rpm -qlp 未列出 lib 或以上目录下的任何其他文件夹。 因此,要删除此包安装的所有父文件夹,请在 %dir 文件夹中显式列出它们,如下所示
%dir
/opt/xyz
/opt/xyz/client
/opt/xyz/client/version
/opt/xyz/client/version/lib
或 在 %files 部分指定父文件夹(这包括该文件夹下的所有文件夹)
%files
/opt/xyz
包括 xyz 之后的所有内容。因此,如果您想通过 rpm 进行安装/清理,请在 %files 部分中指定。但是,如果您希望 rpm 仅拥有少数选择性文件夹/文件,请在 %dir 部分中指定它们
关于rpm -e 不清理由许多包共同拥有的文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53906740/