我看到了这个问题我可以在 Ubuntu 上安装 Portage、Pacman 或其他包管理器吗?,在 Ubuntu 上安装 portage 不是一个好主意,因为它与 gentoo 捆绑得非常紧密。我想安装它的原因是为了管理我从源代码编译的东西。我不想编译所有的东西,我只想能够管理我选择从源代码编译的东西。我希望能够指向从中构建的 git 存储库,然后使用它。如果我后来决定不再需要该应用程序,而不必记住我将其安装在哪里,我可以使用包管理器来删除它。通过指定要升级到的版本来更新它也很好。我想知道是否有这样的应用程序,可以用于 Ubuntu?
答案1
在目前的技术水平下,你可以使用 Docker 或 chroot/ 等容器在 Ubuntu 中隔离 Gentoo 基础系统施鲁特。
作为 Gentoo 的长期粉丝,我将指导您完成整个过程。
以下方法解释了如何实现schroot
机制。我们需要获取当前 stage3 快照Gentoo,然后解压并按照Gentoo 手册但没有磁盘分区。
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配置配置文件。
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
schroot -c gentoo
- 然后执行一些命令
mc
exit
在同一终端中使用退出 schroot
我想你已经明白了。通过这种方法,你可以在你的 Ubuntu 中安装 Gentoo。这个内部 Gentoo 可以通过 USE 标志、系统配置文件等进行配置。它将按照你的需要使用 Portage。
如果您喜欢冒险,那么您甚至可以将完整的轻量级桌面环境安装到此 Gentoo 系统并在名为 Xephyr 的嵌套 X11 系统中运行它。无需详细说明,只需执行以下操作即可:
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
得到类似的东西