Из-за проблем с работой pypi (python) я решил посмотреть в сторону Debian в chroot окружении.
Для установки chroot в Debian используется debootstrap (непосредственно в Debian):
sudo apt-get install debootstrap
sudo debootstrap --arch amd64 trixie /home/chroot_web https://mirror.yandex.ru/debian
sudo cp /etc/resolv.conf /home/chroot_web/etc/resolv.conf
sudo cp /etc/apt/sources.list /home/chroot_web/etc/apt/
Если что, то мой sources.lists:
# See https://wiki.debian.org/SourcesList for more information.
deb https://mirror.yandex.ru/debian trixie main non-free contrib non-free-firmware
deb-src https://mirror.yandex.ru/debian trixie main non-free contrib non-free-firmware
deb https://mirror.yandex.ru/debian trixie-updates main non-free contrib non-free-firmware
deb-src https://mirror.yandex.ru/debian trixie-updates main non-free contrib non-free-firmware
deb https://mirror.yandex.ru/debian-security/ trixie-security main non-free contrib non-free-firmware
deb-src https://mirror.yandex.ru/debian-security/ trixie-security main non-free contrib non-free-firmware
# Backports allow you to install newer versions of software made available for this release
deb https://mirror.yandex.ru/debian trixie-backports main non-free contrib non-free-firmware
deb-src https://mirror.yandex.ru/debian trixie-backports main non-free contrib non-free-firmware
После выполнения этих несложных команд соберётся debian в /home/chroot_web, а дальше надо немного настроить среду:
Установим пакет локализации:
sudo chroot /home/chroot_web apt update
sudo chroot /home/chroot_web apt upgrade
sudo chroot /home/chroot_web apt-get install locales
настроим локализацию:
cat > /tmp/locale.gen << EOF
en_US.UTF-8 UTF-8
ru_RU.UTF-8 UTF-8
EOFsudo cp /tmp/locale.gen /home/chroot_web/etc/
sudo chroot /home/chroot_web locale-gen
Настроим монтирование нужных (не всем) псевдофайловую систему:
sudo tee -a /etc/fstab << EOF
proc /home/chroot_web/proc none rbind 0 0
#/dev /home/chroot_web/dev none rbind 0 0
sysfs /home/chroot_web/sys none rbind 0 0
EOF
отредактируем /etc/sudoers
настроим shcroot (для работы обычного пользователя):
/etc/schroot/chroot.d/trixie.conf или /etc/schroot/schroot.conf:
[trixie]
description=Django Chroot
directory=/home/chroot_web
type=directory
groups=sudo
/home/chroot_web/etc/sudoers:
...
%sudo ALL=(ALL:ALL) NOPASSWD: ALL
...
Создадим пользователя с таким же именем:
sudo chroot /home/chroot_web/etc/schroot/ useradd -m $USER
sudo chroot /home/chroot_web/etc/schroot/ groupadd -g sudo $USER
Войти в систему можно так:
schroot -c trixie
А теперь у нас есть десятки пакетов Django (apt-cache search python3-django).
Можно сделать первый проект:
sudo apt install python3-django
django-admin startproject prj1
cd prj1/
./manage.py migrate
./manage.py runserver
Ссылки:
Подготовка chroot-окружения в Debian или Ubuntu
Подготовка chroot-окружений для тестирования на сервере Ubuntu 12.04