使用 Yum 仅为我的用户安装软件包

Oli*_*lay 24 linux package-management shared-hosting

我希望能够使用包管理器安装包(Yum 在我的服务器上可用),但我没有 root 访问权限。从技术上讲,我不需要 root 访问权限,我只想将软件包安装在我的主目录中。

有什么办法可以做到这一点吗?

Ign*_*ams 12

不使用 yum。您可以使用yumdownloader,然后放入包rpm2cpio ... | cpio -id以提取其内容,然后将文件放在适当的位置。


Mik*_*kel 10

正如 Ignacio 指出的那样,您可以使用yumdownloader.

但是对于第二步

rpm -ivh --relocate /usr=/home/username/usr --relocate /etc=/home/username/etc
Run Code Online (Sandbox Code Playgroud)

或者

rpm -ivh --relocate /=/home/username/progname
Run Code Online (Sandbox Code Playgroud)

可能更容易。

如果 RPM 有任何脚本假定它们以 root 身份运行,您可能还需要添加该--noscripts选项。

另外,您可以添加--aid解决依赖项的选项。

在这种情况下,另一个有用的选项是--root避免 rpm 写入/var路径(因为您不是 root),因此命令将类似于:

rpm -ivh --relocate /=/home/username/progname --root /home/username/progname
Run Code Online (Sandbox Code Playgroud)

  • 请注意以下[来自 Fedora 的指南](http://fedoraproject.org/wiki/Packaging:Guidelines#Relocatable_packages):“强烈建议不要使用 RPM 的工具来生成可重定位的包。很难使其正常工作, 不可能从安装程序或 yum 中使用,如果遵循其他打包指南,则通常不需要。但是,万一您有充分的理由使包可重定位,您必须在请求中说明此意图和推理用于包裹审查。”。 (2认同)