从我的研究中,我似乎注意到所有包管理器都坚持以特权用户身份使用,并且必须安装到/
.
通常,我喜欢做的是创建一个一次性帐户,编译一些软件,然后安装到$HOME
该帐户。我可以尝试各种设置,然后当我完成后,只需销毁该帐户即可。
然而,编译软件变得乏味。
我的经验实际上仅限于yum
,但我不明白为什么我无法将存储库文件放入~/etc/yum.repos.d
并让 yum 将所有内容安装到家庭帐户中。
是否有任何理由必须使用包管理器作为特权用户来安装软件?
答案1
编译二进制包时假设它们将安装到/
.这并不总是很容易改变,并且需要额外的质量保证工作(这首先就足够困难了!)来确定特定的二进制文件是否可重定位。
在某种程度上,您可以使用类似的东西假根以非 root 用户身份在子目录中创建整个系统,但这既乏味又脆弱。
如果你有源码包的话,你的运气会更好。 Gentoo 前缀和无根GoboLinux都是可以安装到非/
位置并且可供非root
用户使用的包管理器。
答案2
有一个包管理器项目——尼克斯——有一个有趣的基本想法(“功能性的“ pkg 管理器),它还支持每用户操作:
多用户支持
从 0.11 版本开始,Nix 具有多用户支持。这意味着非特权用户可以安全地安装软件。每个用户可以有一个不同的配置文件,即 Nix 存储中出现在用户路径中的一组包。如果用户安装了其他用户之前已经安装过的软件包,则不会再次构建或下载该软件包。同时,一个用户不可能将特洛伊木马注入到另一个用户可能使用的包中。
我想添加的注释: Nix
应该可以在您选择的类 Unix 系统(例如 Linux 发行版)中使用。
还有可以使用 Nix 包管理器安装的相关大量包集合 -尼克斯包装--为多种平台构建:
- 32 位和 64 位 x86 上的 GNU/Linux(i686-linux 和 x86_64-linux)
- Mac OS X(i686-darwin 和 x86_64-darwin)
- FreeBSD(i686-freebsd 和 x86_64-freebsd)
- OpenBSD (i686-openbsd)
- Windows / Cygwin (i686-cygwin),
以及相关的发行版——尼克斯操作系统:
NixOS 是一个基于 Nix 的 Linux 发行版。它不仅使用 Nix 进行包管理,还用于管理系统配置(例如,在 /etc 中构建配置文件)。这意味着,除其他外,可以轻松地将系统的整个配置回滚到较早的状态。此外,用户无需 root 权限即可安装软件。阅读更多…
以及相关的“连续”构建系统——九头蛇。
答案3
我用聚巢它基本上允许在 $HOME/.junest 目录中拥有一个非常小的 Linux 发行版(仅包含包管理器)。
它允许您的自定义系统位于可通过 proot 访问的主目录中,因此,您可以在没有 root 权限的情况下安装任何软件包。它可以在所有主要的 Linux 发行版上正常运行,唯一的限制是 JuNest 可以在最低推荐版本 2.6.32 的 Linux 内核上运行。
答案4
聚巢
基于 Arch Linux 的轻量级发行版,无需 root 权限,可在任何其他 Linux 发行版之上运行。
街区里来了一个新孩子:“聚巢(被监禁的用户 NEST)。
一个优点是它没有引入一种新的包格式,因此在非常简单的安装(最小:约 320M)之后,完整的 Arch Linux 存储库(超过 13000 个包 ATM)就在您的指尖。