带有 nodeps 标志的 rpm 包安装问题

rpm package installation issue with nodeps flag

我正在尝试使用以下命令安装 rpm 包:

rpm -Uvh --root=/mnt/bank_a rpm/app_name.rpm --nodeps

它是一个应用程序包,是 linux 下已安装设备的根文件系统安装的一部分,因此根标志对于指定安装路径至关重要。

--不能使用前缀,因为它是一个不可重定位的包。 nodeps 标志用于抑制以下错误(sh 在 /bin 文件夹下作为软 link 到 bash 存在):

失败的依赖项:xxx

需要 /bin/sh

但是我的 pre scriplet 失败并出现以下错误

错误:%pre(app_name.rpm) scriptlet 失败,退出状态 255 错误:安装:%pre scriptlet 失败 (2),跳过 app_name.rpm

我不明白为什么 --root 和 --nodeps 不能一起工作,或者在这里做什么是正确的。

此时正确的做法是不要使用 RPM。通过弄乱根,然后说“我不关心依赖关系”,你就进入了无人区。脚本正在尝试做它们不能做的事情,而您没有提供足够的信息来实际告诉您哪里出了问题。

最简单的解决方案是转到临时目录和运行rpm2cpio your.rpm | cpio -div,然后将生成的文件树复制到需要安装的位置。

所以我没有被指责没有回答实际问题,你 可以 --noscripts,但你明天会在这里问为什么程序没有如果您一开始没有使用作为 RPM 的支持基础设施来完成它,它就无法工作。