elm*_*lmt 56 yum root not-root-user package-management
从我的研究中,我似乎注意到所有包管理器都坚持被用作特权用户,并且必须安装到/.
通常,我喜欢做的是创建一个一次性帐户,编译一些软件,然后$HOME为该帐户安装。我可以尝试各种设置,然后当我完成后,只需销毁帐户。
然而,编译软件变得乏味。
我的经验是真的只是限于yum,但我不明白为什么我会无法回购文件拖放到~/etc/yum.repos.d并已百胜一切安装到主账户。
是否有任何理由必须将包管理器用作特权用户来安装软件?
eph*_*ent 37
编译二进制包时假设它们将安装到/. 这并不总是很容易改变,并且需要额外的 QA 工作(首先这已经足够困难了!)来确定特定的二进制文件是否可重定位。
在某种程度上,您可以使用fakechroot 之类的东西以非 root 用户身份在子目录中创建整个系统,但这既乏味又脆弱。
使用源代码包会更好。 Gentoo Prefix和Rootless GoboLinux都是可以安装到非/位置的包管理器,非root用户也可以使用。
imz*_*hev 30
有一个包管理器项目——Nix——有一个有趣的基本想法(一个“功能性”的包管理器),它也支持每个用户的操作:
多用户支持
从 0.11 版本开始,Nix 具有多用户支持。这意味着非特权用户可以安全地安装软件。每个用户都可以拥有不同的配置文件,即 Nix 商店中出现在用户 PATH 中的一组包。如果用户安装了另一个用户之前已经安装过的包,则不会再次构建或下载该包。同时,一个用户不可能将特洛伊木马程序注入另一个用户可能使用的包中。
我想补充的一点: Nix应该可以在您选择的类 Unix 系统中使用(例如,Linux 发行版)。
还有一个相关的大型软件包集合可以与 Nix 软件包管理器一起安装 - Nixpkgs - 为许多平台构建:
- 32 位和 64 位 x86(i686-linux 和 x86_64-linux)上的 GNU/Linux
- Mac OS X(i686-darwin 和 x86_64-darwin)
- FreeBSD(i686-freebsd 和 x86_64-freebsd)
- OpenBSD (i686-openbsd)
- Windows / Cygwin (i686-cygwin),
以及相关的发行版——NixOS:
NixOS 是基于 Nix 的 Linux 发行版。它不仅使用 Nix 来管理包,还管理系统配置(例如,在 /etc 中构建配置文件)。这意味着,除其他外,可以轻松地将系统的整个配置回滚到较早的状态。此外,用户可以在没有 root 权限的情况下安装软件。阅读更多…
以及相关的“连续”构建系统-水润。
首先是因为依赖。某些软件包可能不会由用户安装 - 例如 PolicyKit。因此,这会给那些贡献空闲时间的打包人员带来额外的负担,并且通常安装程序就像打字sudo(单用户站)或唠叨管理员一样简单。
在 $HOME 中有安装选项
./configure --prefix=$HOME/sandbox --enable-cool-feature && make all install(或像 jhbuild 这样的变体)。有一个新的孩子:“ JuNest(被监禁的用户 NEST) - 基于 Arch Linux 的发行版,可以在没有 root 访问权限的任何 Linux 发行版上运行。” @ https://github.com/fsquillace/junest 优点是它没有引入一种新的包格式,所以安装后很容易(最小:ca. 320M),完整的 Arch Linux 存储库(超过 13000包 ATM)触手可及。
| 归档时间: |
|
| 查看次数: |
21611 次 |
| 最近记录: |