gpt4 book ai didi

python - 为什么在具有 'virtualenv'(和联合/覆盖文件系统)的 Linux 上使用 Pythons 'chroot'?

转载 作者:IT王子 更新时间:2023-10-29 01:09:21 25 4
gpt4 key购买 nike

首先让我声明我是通用软件的支持者(一般来说 ;-)。我不是 Python 专家,但似乎“virtualenv”实用程序解决了与“chroot”可以帮助解决的几乎相同的问题——引导一个可以作为根传递的目录树,从而有效地保护真正的目录树,如果需要。

由于我不是前面提到的 Python 专家,我想知道 - virtualenv 可以解决什么 chroot 不能解决的问题?我的意思是,我不能只设置一个漂亮的假根树(可能使用联合挂载),chroot 进入它,然后 pip install 我想要的包新环境,然后在我的新环境范围内玩耍,运行 python 脚本等等?

我是不是漏掉了什么?

更新:

不能在任何应用程序目录中本地安装包/模块,我的意思是,没有 root 权限并且随后没有覆盖或添加文件到 /usr/lib/usr/local/库?看来这就是 virtualenv 所做的,但我认为它必须为每个创建的环境提供符号链接(symbolic link)或以其他方式提供 python 解释器,不是吗?

最佳答案

bootstrapping a directory tree that can be passed as root

这不是 virtualenv 所做的,除了(在某种程度上)Python 包。它提供了一个可以安装这些文件的地方,而无需替换文件系统的其余部分。它也可以在没有 root 权限的情况下工作,并且它是可移植的,因为它不需要内核支持,这与 chroot 不同,后者(我认为)不会在 Windows 上工作。

Can't one install packages/modules locally in whatever application directory

是的,但是 virtualenv 还做了一件事,那就是它禁用(至少在默认情况下)系统的 Python 包目录。这意味着您可以测试您的包是否正确安装了它的所有依赖项(您可能忘记列出一个,因为它已经安装在您的系统上)并且它允许安装不同的版本,以防您需要更新或旧版本。不应忽视安装旧版本的能力,因为有时新版本的软件包会引入错误。

关于python - 为什么在具有 'virtualenv'(和联合/覆盖文件系统)的 Linux 上使用 Pythons 'chroot'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20001606/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com