rpm -e 不清理许多包共有的文件夹

rpm -e not cleaning up folders which are co-owned by many packages

假设我们有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 拥有 install/cleanup 在 %files 部分指定。但是如果你希望 rpm 只拥有少数选择性 folders/files 在 %dir 部分

中指定它们