Прежде всего позвольте мне заявить, что я сторонник универсального программного обеспечения (вообще ;-). Я не эксперт по Python, но мне кажется, что утилита virtualenv решает почти ту же проблему, которую может решить chroot — загружает дерево каталогов, которое можно передать как root, тем самым эффективно защищая реальное дерево каталогов, если нужный.
Поскольку я не являюсь экспертом в Python, как уже упоминалось, мне интересно, какую проблему может решить virtualenv, которую не может решить chroot? Я имею в виду, не могу ли я просто создать красивое фальшивое корневое дерево (возможно, используя монтирование объединения), chroot
в него и pip install
сделать пакет, который я хочу, в моей новой среде, а затем поиграть в пределах моей новой среды, запуск скриптов python, а что нет?
Я что-то упустил здесь?
Обновлять:
Нельзя ли установить пакеты/модули локально в любой каталог приложения, я имею в виду, без привилегий root и впоследствии без перезаписи или добавления файлов в /usr/lib
или /usr/local/lib
? Похоже, что это то, что делает virtualenv, однако я думаю, что он должен символически ссылаться или иным образом предоставлять интерпретатор Python для каждой создаваемой среды, не так ли?