Като цяло на принципа на контейнерите се добива система която обединява множество линукс дистрибуции в една среда.
И както по-горе показах може да има едновременно Gentoo, Alma, Debian, Ubuntu, Fedora, Void, Alpine и други и други.
Примерно база от Gentoo с десктоп от Arch или Ubuntu и други, или база със Alma Linux (CentOS) и десктоп от Дебиан и подобни.
Gentoo
❯ eix-sync
* Running emerge --sync
>>> Syncing repository 'gentoo' into '/var/db/repos/gentoo'...
* Using keys from /usr/share/openpgp-keys/gentoo-release.asc
* Refreshing keys via WKD ... [ ok ]
>>> Starting rsync with rsync://81.91.253.252/gentoo-portage...
>>> Checking server timestamp ...
Welcome to starling.gentoo.org / rsync.gentoo.org
Server Address : 81.91.253.252, 2a01:90:200:10::1a
Contact Name :
[email protected]
Hardware : 2 x Intel(R) Xeon(R) CPU E5-2470 0 @ 2.30GHz, 3946MB RAM
Sponsor : Qube Managed Services Limited, Zurich, Switzerland, EU
sent 37.42K bytes received 10.13M bytes 701.20K bytes/sec
total size is 218.71M speedup is 21.51
* Manifest timestamp: 2021-04-24 04:38:50 UTC
* Valid OpenPGP signature found:
* - primary key: DCD05B71EAB94199527F44ACDB6B8C1F96D8BF6D
* - subkey: E1D6ABB63BFCFB4BA02FDF1CEC590EEAC9189250
* - timestamp: 2021-04-24 04:38:50 UTC
* Verifying /var/db/repos/gentoo/.tmp-unverified-download-quarantine ... [ ok ]
=== Sync completed for gentoo
>>> Syncing repository 'ROKO__' into '/var/db/repos/ROKO__'...
/bedrock/cross/pin/bin/git fetch origin
Already up to date.
=== Sync completed for ROKO__
Exherbo
❯ cave sync
Starting sync
Repository Status Pending Active Done
-> accounts starting 13 1 0
-> arbor starting 12 2 0
-> danyspin97 starting 11 3 0
-> accounts no syncing required 11 2 1
-> installed starting 10 3 1
-> installed no syncing required 10 2 2
-> installed-accounts starting 9 3 2
-> installed-accounts no syncing required 9 2 3
-> installed_unpackaged starting 8 3 3
-> installed_unpackaged no syncing required 8 2 4
-> repository starting 7 3 4
-> repository no syncing required 7 2 5
-> danyspin97 active 7 2 5
Sync results
* accounts: no syncing required
* arbor: success
* danyspin97: success
* desktop: success
* graveyard: success
* haskell-unofficial: success
* installed: no syncing required
* installed-accounts: no syncing required
* installed_unpackaged: no syncing required
* repository: no syncing required
* unavailable: success
* unavailable-unofficial: success
* unwritten: success
* x11: success
Void
❯ xbps-install -Su
[*] Updating repository `https://alpha.de.repo.voidlinux.org//current//x86_64-repodata' ...
x86_64-repodata: 1689KB [avg rate: 54GB/s]
[*] Updating repository `https://alpha.de.repo.voidlinux.org/current/x86_64-repodata' ...
x86_64-repodata: 1689KB [avg rate: 27GB/s]
Alpine
❯ apk update ; apk upgrade
fetch http://tux.rainside.sk/alpine//latest-stable/main/x86_64/APKINDEX.tar.gz
v3.13.5-38-g3b498d9902 [http://tux.rainside.sk/alpine//latest-stable/main]
OK: 4691 distinct packages available
OK: 9 MiB in 20 packages
Arch
❯ pacman -Syu
:: Synchronizing package databases...
core is up to date
extra 1601.4 KiB 6.80 MiB/s 00:00 [-----------------------------------------------------------------------------] 100%
community 5.5 MiB 48.9 MiB/s 00:00 [-----------------------------------------------------------------------------] 100%
:: Starting full system upgrade...
resolving dependencies...
looking for conflicting packages...
Package (2) Old Version New Version Net Change Download Size
extra/vim 8.2.2653-1 8.2.2803-1 0.06 MiB 1.77 MiB
extra/vim-runtime 8.2.2653-1 8.2.2803-1 0.06 MiB 6.47 MiB
Total Download Size: 8.24 MiB
Total Installed Size: 34.18 MiB
Net Upgrade Size: 0.11 MiB
:: Proceed with installation? [Y/n]
Alma (CentOS Fork)
❯ dnf makecache ; dnf upgrade
AlmaLinux 8 - BaseOS 4.6 MB/s | 4.4 MB 00:00
AlmaLinux 8 - AppStream 13 MB/s | 6.9 MB 00:00
AlmaLinux 8 - PowerTools 6.3 MB/s | 2.1 MB 00:00
AlmaLinux 8 - Extras 17 kB/s | 3.6 kB 00:00
Extra Packages for Enterprise Linux Modular 8 - x86_64 667 kB/s | 557 kB 00:00
Extra Packages for Enterprise Linux 8 - x86_64 10 MB/s | 9.3 MB 00:00
Metadata cache created.
Last metadata expiration check: 0:00:07 ago on Sat Apr 24 08:12:36 2021.
Dependencies resolved.
Nothing to do.
Complete!
Debian
❯ apt update; apt full-upgrade
Get:1 http://deb.debian.org/debian bullseye InRelease [146 kB]
Get:2 http://deb.debian.org/debian bullseye-updates InRelease [40.1 kB]
Get:3 http://deb.debian.org/debian-security bullseye-security InRelease [44.1 kB]
Get:4 http://deb.debian.org/debian experimental InRelease [75.4 kB]
Get:5 http://deb.debian.org/debian bullseye/main Sources.diff/Index [63.6 kB]
Get:6 http://deb.debian.org/debian bullseye/main amd64 Packages.diff/Index [63.6 kB]
Get:7 http://deb.debian.org/debian bullseye/main Sources T-2021-04-24-0200.39-F-2021-04-24-0200.39.pdiff [1827 B]
Get:7 http://deb.debian.org/debian bullseye/main Sources T-2021-04-24-0200.39-F-2021-04-24-0200.39.pdiff [1827 B]
Get:8 http://deb.debian.org/debian bullseye/main amd64 Packages T-2021-04-24-0200.39-F-2021-04-24-0200.39.pdiff [4369 B]
Get:8 http://deb.debian.org/debian bullseye/main amd64 Packages T-2021-04-24-0200.39-F-2021-04-24-0200.39.pdiff [4369 B]
Get:9 http://deb.debian.org/debian experimental/main amd64 Packages.diff/Index [63.3 kB]
Get:10 http://deb.debian.org/debian experimental/main Translation-en.diff/Index [63.3 kB]
Get:11 http://deb.debian.org/debian experimental/main amd64 Packages T-2021-04-24-0200.39-F-2021-04-23-2000.54.pdiff [5071 B]
Get:11 http://deb.debian.org/debian experimental/main amd64 Packages T-2021-04-24-0200.39-F-2021-04-23-2000.54.pdiff [5071 B]
Get:12 http://deb.debian.org/debian experimental/main Translation-en T-2021-04-23-2000.54-F-2021-04-23-2000.54.pdiff [538 B]
Get:12 http://deb.debian.org/debian experimental/main Translation-en T-2021-04-23-2000.54-F-2021-04-23-2000.54.pdiff [538 B]
Fetched 571 kB in 5s (116 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
1 package can be upgraded. Run 'apt list --upgradable' to see it.
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
sysvinit-utils
1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 25.3 kB of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n]
За списък с налични за автоматично инсталиране контейнери.
❯ brl fetch --list
alpine
arch
centos
debian
devuan
exherbo
exherbo-musl
fedora
gentoo
ubuntu
void
void-musl
Както и за такива които все още са в тестов стадий.
❯ ls /bedrock/share/brl-fetch/distros/
alpine arch arch-32 arch-arm artix centos clear crux debian devuan exherbo exherbo-musl fedora gentoo kiss manjaro openwrt raspbian slackware solus ubuntu void void-musl
Да речем че искам да добавя crux.
❯ brl fetch crux
* Fetch code for specified distro is experimental. The fetch operation and resulting files may or may not work.
[ 1/15 ( 6%)] Determining name
* Using crux
[ 2/15 ( 13%)] Determining CPU architecture
* Using x86_64
[ 3/15 ( 20%)] Determining release
* Using 3.6
[ 4/15 ( 26%)] Determining mirror
* Checking bedrock.conf [brl-fetch-mirror] items
[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\] 100%
* Fast filtering 11 to top 10
[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\] 100%
* Finding fastest mirror from 4
[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\] 100%
* Using http://www.mirrorservice.org/sites/crux.nu/crux/
[ 5/15 ( 33%)] Making bootstrap directory structure
[ 6/15 ( 40%)] Downloading bootstrap software
Connecting to www.mirrorservice.org (212.219.56.184:80)
saving to '/bedrock/strata/crux/brl-bootstrap/checksum'
checksum 100% |*******************************************************************************************************************************************************************| 47 0:00:00 ETA
'/bedrock/strata/crux/brl-bootstrap/checksum' saved
Connecting to www.mirrorservice.org (212.219.56.184:80)
saving to '/bedrock/var/cache/brl-fetch-crux-3.6-x86_64/crux.iso'
crux.iso 100% |*******************************************************************************************************************************************************************| 819M 0:00:00 ETA
'/bedrock/var/cache/brl-fetch-crux-3.6-x86_64/crux.iso' saved
[ 7/15 ( 46%)] Preparing bootstrap software
[ 8/15 ( 53%)] Running bootstrap software
[\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\] 100%
[ 9/15 ( 60%)] Configuring
[10/15 ( 66%)] Setting locale
[11/15 ( 73%)] Cleaning up
[12/15 ( 80%)] Importing users and groups
[13/15 ( 86%)] Preparing symlinks
[14/15 ( 93%)] Showing
[15/15 (100%)] Enabling
* Successfully fetched a new crux stratum with name crux
❯ brl list | grep crux
crux
❯ brl which pkgadd
crux
❯ brl which prt-get
crux
❯ ports -u
Updating file list from crux.nu::ports/crux-3.6/core/
Updating collection core
Finished successfully
Updating file list from crux.nu::ports/crux-3.6/opt/
Updating collection opt
Finished successfully
Updating file list from crux.nu::ports/crux-3.6/xorg/
Updating collection xorg
Finished successfully
❯ prt-get install nano
prt-get: installing /usr/ports/opt/nano
=======> Downloading 'https://www.nano-editor.org/dist/v5/nano-5.6.1.tar.xz'.
--2021-04-24 08:21:21-- https://www.nano-editor.org/dist/v5/nano-5.6.1.tar.xz
Resolving www.nano-editor.org... 213.138.109.86
Connecting to www.nano-editor.org|213.138.109.86|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1432720 (1.4M) [application/x-xz]
Saving to: '/usr/ports/opt/nano/nano-5.6.1.tar.xz.partial'
nano-5.6.1.tar.xz.partial 100%[=====================================================================================================================>] 1.37M 3.82MB/s in 0.4s
2021-04-24 08:21:24 (3.82 MB/s) - '/usr/ports/opt/nano/nano-5.6.1.tar.xz.partial' saved [1432720/1432720]
=======> Building '/usr/ports/opt/nano/nano#5.6.1-1.pkg.tar.gz'.
bsdtar -p -o -C /usr/ports/opt/nano/work/src -xf /usr/ports/opt/nano/nano-5.6.1.tar.xz
+ build
+ cd nano-5.6.1
+ ./configure --prefix=/usr --disable-nls
=======> Building '/usr/ports/opt/nano/nano#5.6.1-1.pkg.tar.gz' succeeded.
prt-get: installing nano 5.6.1-1
-- Packages installed
nano
prt-get: installed successfully
Като също се споделят всички конфигурации потребители и пароли между контейнерите (не знам дали са точно контейнери, но аз така си го обяснявам).