是否可以在没有 root 权限的情况下使用 rpm?
答案1
根据包裹的内容,你可以简单地提取内容rpm 并从主目录中的某个位置使用它。即使它没有被标记为可重定位。如果包中的二进制文件有硬编码路径,或者应用程序需要 root 访问权限,那么可能就无法实现。
答案2
有很多答案建议使用可重定位的软件包。重定位选项是让管理员选择目标(例如,将目标设为 /opt 而不是 /usr/local),而不是真正为用户权限。
虽然使用此方法可以解决一些权限问题,但主要问题是,当您执行 rpm 操作时,它会修改 root:root 拥有的 /var/lib/rpm/__db.* 数据库。因此,正如 JPerkSter 所说,“简短回答 = 否”。设置 sudo 以允许特定需求可能是最好的选择。
答案3
考虑到以上所有关于可重定位构建的内容,您可以尝试按照列出的说明进行操作这里。
rpm --initdb --root /home/username/local --dbpath /home/username/local/lib/rpm
rpm --root /home/username/local --dbpath /home/username/local/lib/rpm \
--relocate /usr=/home/username/local --nodeps -ivh package.rpm
答案4
RPM 规范包含一个名为“可重定位”的选项。如果 rpm 在构建时启用了可重定位性,则可以使用“--prefix”选项将其安装在用户指定的目录中。因此,只要满足两个条件,就可以在本地安装 rpm,而无需超级用户访问权限:
- 该软件包最初是为可移动而构建的
- ‘rpm’ 二进制文件不会尝试将包添加到全局系统目录
但一般来说,不需要,您需要超级用户权限才能安装 RPM。虽然存在可重定位选项,但我几乎从未见过支持该选项的软件包。