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

标签 rpm

假设我们有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/

相关文章:

rpm - 如何在 RPM 安装期间访问用户在安装后脚本中指定的 --prefix 值?

linux - 在访问权限非常有限的不同 Linux 机器上安装程序

RPM 规范文件 - 是否可以动态填充规范文件变量

cmake - 如何在 CMakeLists.txt 中禁用 CPACK_PACKAGE_VERSION_PATCH?

linux - 如何强制 rpm -V 验证所有文件?

key - rpm 安装错误 : Header V4 RSA/SHA1 signature: BAD, key ID

centos - 禁用 rpmbuild 自动需求查找

Linux - 找不到依赖项 libmysqlclient.so.15

regex - 如何在 RPM 规范文件中使用正则表达式?

mysql - 需要 MySQL 或 MariaDB 的 RPM 规范文件