Я видел этот вопрос Могу ли я установить Portage, Pacman или другие менеджеры пакетов на Ubuntu? , что было не очень хорошей идеей устанавливать portage на Ubuntu из-за того, насколько тесно он связан находится с gentoo. Причина, по которой я хочу его установить, - это управление вещами, которые я компилирую из исходников. Я не хочу компилировать все, мне просто нужна возможность управлять тем, что я собираюсь компилировать из исходного кода. Я хотел бы иметь возможность указать на сборку репозитория git из него, а затем использовать его. Если бы я позже решил, что мне больше не нужно приложение, вместо того, чтобы помнить, где я его установил, я мог бы использовать диспетчер пакетов, чтобы удалить его. Также было бы неплохо обновить его, указав выпуск для обновления. Мне было интересно, было ли такое приложение, которое работало бы для Ubuntu?
В текущем состоянии технологий вы можете изолировать базовую систему Gentoo внутри вашей Ubuntu, используя такие контейнеры, как Docker или chroot / schroot .
Как давний поклонник Gentoo, я буду помогать вам в этом процессе.
Метод ниже объясняет, как реализовать механизм schroot
. Нам нужно получить текущий моментальный снимок stage3 Gentoo, затем распаковать его и настроить в соответствии с Gentoo Handbook , но без разделения диска.
sudo apt-get update
sudo apt-get install schroot -y
cat <<EOF | sudo tee /etc/schroot/chroot.d/gentoo.conf
[gentoo]
description=Gentoo
directory=/srv/chroot/gentoo
root-users=$USER
type=directory
users=$USER
EOF
sudo mkdir -p /srv/chroot/gentoo
# add portage user and group
sudo groupadd portage -g 250
sudo useradd -M -g portage -s /bin/false -u 250 portage
cd ~/Downloads
wget https://bouncer.gentoo.org/fetch/root/all/releases/amd64/autobuilds/20210630T214504Z/stage3-amd64-20210630T214504Z.tar.xz
sudo tar -xf stage3-amd64-20210630T214504Z.tar.xz -C /srv/chroot/gentoo
Затем вы можете перейти к только что созданному Gentoo schroot, используя команду ниже:
schroot -c gentoo -u root bash
# do something, then use Ctrl+D to exit to Ubuntu
Чтобы быть уверенным, что вы установили систему Gentoo, вы можете выполнить
schroot -c gentoo cat /etc/os-release
, чтобы получить
NAME = Gentoo ID = gentoo PRETTY_NAME = "Gentoo / Linux" ANSI_COLOR = "1; 32" HOME_URL = "https://www.gentoo.org/" SUPPORT_URL = "https://www.gentoo.org/support/" BUG_REPORT_URL = "https://bugs.gentoo.org/"
Тогда в качестве примера мы можем скомпилировать небольшой графическое приложение xclock
и Midnight Commander со значением по умолчанию make.conf .
schroot -c gentoo -u root -- emerge --sync
schroot -c gentoo -u root -- emerge -qv x11-apps/xclock app-misc/mc
и, наконец, запустить установленное приложение xclock
schroot -c gentoo env DISPLAY=$DISPLAY xclock
Кроме того, вы можете управлять локальными данными с помощью приложений, установленных внутри Gentoo schroot:
schroot -c gentoo
mc
exit
в том же терминале . Думаю, вы уловили идею. Используя такой метод, вы можете разместить Gentoo внутри вашего Ubuntu. Этот внутренний Gentoo можно настроить с помощью USE-флагов, системного профиля и т. Д. Он будет использовать Portage по вашему желанию.
Если вам нравятся приключения, вы даже можете установить полностью легкую среду рабочего стола в эту систему Gentoo и запустить ее во вложенной системе X11 под названием Xephyr. Без подробностей это можно сделать следующим образом:
schroot -c gentoo -u root -- mount /dev/shm /dev/shm -t tmpfs
schroot -c gentoo -u root -- emerge -atv mate-session-manager --exclude=dev-lang/rust
schroot -c gentoo -u root -- useradd polkitd
schroot -c gentoo -u root -- emerge -qatv mate-base/mate app-office/libreoffice-bin
mkdir ~/.gentoo # create new $HOME for Gentoo
Xephyr -screen 1360x680 :1 &
schroot -c gentoo -u $USER env HOME=~/.gentoo DISPLAY=:1 mate-session
получить что-то вроде