Запустите nix-оболочку только с установленным текущим каталогом (аналогично контейнеру)
Я ищу способ запустить оболочку с установленными внутри определенными пакетами, но без ненужного доступа к остальной части системы, то есть:
- Только текущий каталог (
pwd
) смонтирован, нет доступа к другим частям файловой системы* - Доступны только запрошенные пакеты*, плюс оболочка
- Возможность отключить доступ к сети будет плюсом.
- Обычно нет доступа к другим частям системы*
Поэтому я ищу среду, подобную той, которую можно достичь с помощьюdocker
: (илиpodman
, и т. д...)docker run -it -v "$PWD:/pwd" -w /pwd $someImage
guix shell --pure --container --network $somePackage
*кроме строго необходимых
Возможно ли это сnix
? Преимущество будет заключаться в том, что хранилище содержимого пакетов используется совместно с хост-системой, знанием системы и т. д.; и, по сравнению сguix
, что у Nix гораздо больше доступных пакетов..
1 ответ
Базовые технологии контейнеров — это chroot и пространства имен, которые вы можете использовать для достижения того, что ищете.
Часть chroot, которая будет ограничивать просмотр файловой системы, часто называют тюрьмой (по аналогии с BSD), доступ к сети можно ограничить через пространства имен.
Однако, если вы ищете решение с возможностью копирования и вставки, я настоятельно рекомендую вам использовать контейнеры, которые поместят большую часть этого за вас.