每当我尝试安装我下载的一些 .rpm 时,我都会得到:
> sudo rpm -i something.rpm
error: open of something.rpm failed: Permission denied
看来rpm的选择并不重要。我先对 .rpm 进行了 chmodded(777),但没有什么区别。我缺少什么?使用rpm -i -v
不会透露任何附加信息。
系统是RHEL6 64位。
答案1
如果您的 rpm 文件位于您的主目录中,并且您的主目录位于 NFS 上,则 root 可能无法访问它。这在某种程度上是不寻常的:通常,root 可以访问每个文件。但在常见设置中,当 root 访问通过 NFS 挂载的目录时,将使用该用户的权限nobody
而不是 root 用户。主要目的是确保客户端上的 root 无法像服务器上的 root 一样操作文件。这被实现为“root 没有任何人的权限”而不是“root 可以拥有除 root 之外的任何人的权限”,主要是因为这更容易(尽管可能还有其他原因:某些 NFS 服务器将此应用于除 root 之外的用户,以便保护服务器上的所有系统用户)。
如果这是问题所在,您需要让 root 可以访问 rpm 文件和包含该文件的目录。这意味着让用户可以访问它们nobody
,通常唯一的方法是使文件和目录可供所有人读取。更准确地说,最小权限是
chmod a+x .
chmod a+r something.rpm
或者,将 rpm 文件移动到本地目录。
mv something.rpm /tmp
sudo rpm -i /tmp/something.rpm