Je rychlá distribuce, která nepoužívá balíčkovou metodu správy SW, ale veškeré programy kompiluje ze zdrojového kódu.
Gentoo je tedy distribuce Linux založená na zdrojovém kódu.
Nabízí maximální možnou rychlost a přizpůsobitelnost - zda je tomu tak již delší dobu testuji, mám jej
na pracovním notebooku i na domácím stroji, zatím jsem nadmíru spokojen.
Začínám s Gentoo
Minimální nároky na paměť jsou 2048MB. Pro začátek bohatě postačí pročíst si příručku a
při instalaci postupovat dle ní. Příručka je zde:
Přechod mezi distribucí Arch Linux a Gentoo není nijak složitý a komplikovaný.
Nejprve jsem ve virtuálu otestoval, zda bude v Gentoo k dispozici vše na co jsem zvyklý.
Pak jsem jej zkusil instalovat na skutečném železe(domácím stolní PC).
Pravda je, že během instalace jsem se slušně zapotil(i mé CPU). Jako Gentoo začátečník
jsem se učil novým zvykům a objevoval dosud nepoznaná zákoutí kernelu, modulů a knihoven. Během
několika týdnů jsem celkem 3x reinstaloval Gentoo s tím, že pokaždé jsem aplikoval nově nabyté znalosti
a snažil se dodržovat konvence. Až třetí čistá instalace se zdá být tou finální, protože v předešlých
jsem nepoužíval správně USE a špatně jsem pochopil strukturu souborů v /etc/portage/ a tak podobně. Z toho
plyne, že učený z nebe nespadl a je potřeba zkoušet a učit se.
K instalaci používám raději live CD s GUI, lépe pak spolupracuji s
příručkou a terminálem na jednom stroji.
V ideálním případě využívám k přístupu do sítě kabelové spojení, takové spojení funguje
automaticky pomocí nástroje dhcpcd. Taková síť má jednoduchou konfiguraci a
není potřeba žádné nastavení.
Stahuji ofiko stage3 - systemd a případně s desktop.
Používám výchozí distribuční Gentoo jádro sys-kernel/gentoo-kernel, v případě spěchu
použiji předkompilované jádro sys-kernel/gentoo-kernel-bin.
Při instalaci/aktualizaci jádra dojde k použití patche v /etc/kernel/config.d/mini.config, můžu si jej prohlédnout.
Soubory pro přizpůsobení
V umístění /etc/kernel/config.d je možné umístit snippety pro vlastní nastavení.
Například soubor /etc/kernel/config.d/01name.config upravující název kernelu:
CONFIG_LOCALVERSION="-gentoo-mv-ntb"
Další může být například definice procesoru pro můj Intel Core i5:
# CONFIG_X86_UV is not set
# CONFIG_X86_AMD_PLATFORM_DEVICE is not set
CONFIG_MCORE2=y
# CONFIG_GENERIC_CPU is not set
CONFIG_X86_INTEL_USERCOPY=y
CONFIG_X86_USE_PPRO_CHECKSUM=y
CONFIG_X86_P6_NOP=y
# CONFIG_X86_MCE_AMD is not set
# CONFIG_X86_MCE_INJECT is not set
# CONFIG_PERF_EVENTS_AMD_POWER is not set
# CONFIG_PERF_EVENTS_AMD_UNCORE is not set
# CONFIG_PERF_EVENTS_AMD_BRS is not set
# CONFIG_MICROCODE_AMD is not set
# CONFIG_AMD_MEM_ENCRYPT is not set
# CONFIG_AMD_NUMA is not set
# CONFIG_X86_PMEM_LEGACY is not set
# CONFIG_ACPI_TAD is not set
# CONFIG_ACPI_HOTPLUG_MEMORY is not set
# CONFIG_ACPI_SBS is not set
# CONFIG_ACPI_NFIT is not set
# CONFIG_ACPI_APEI_EINJ is not set
# CONFIG_DPTF_POWER is not set
# CONFIG_DPTF_PCH_FIVR is not set
# CONFIG_ACPI_EXTLOG is not set
# CONFIG_ACPI_PFRUT is not set
# CONFIG_X86_PCC_CPUFREQ is not set
# CONFIG_X86_AMD_PSTATE is not set
# CONFIG_X86_AMD_PSTATE_UT is not set
# CONFIG_X86_ACPI_CPUFREQ is not set
# CONFIG_X86_P4_CLOCKMOD is not set
# CONFIG_KVM_AMD is not set
Gentoo - česká lokalizace
Jak si lokalizovat/počeštit systém Gentoo a jak na český jazyk s českými znaky.
Jaké lokalizace budou použity se definuje v souboru /etc/locale.gen.
Je dobré nechat záložní en a přidat místní cs:
Je srdce Gentoo, bez portage ani ránu. Za dobu užívání systému Gentoo jsem si na portage
náramně zvykl a představa, že bychl měl přejít k "obyčejným" správcům balíčků s binárkami
mne odrazuje vrátit se zpět k Arch Linuxu.
USE
Je mocná zbraň tohoo výjimečného systému. Svědomité nakládání s
přiřazováním těchto kompilačních možností pomáhá budovat vyladěný a
optimální systém. Ukázku nastavení můžeme vidět na příkladu níže.
make.conf
Příklad nastavení, které používám:
cat /etc/portage/make.conf
# These settings were set by the catalyst build script that automatically
# built this stage.
# Please consult /usr/share/portage/config/make.conf.example for a more
# detailed example.
COMMON_FLAGS="-march=native -O2 -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
FCFLAGS="${COMMON_FLAGS}"
FFLAGS="${COMMON_FLAGS}"
# NOTE: This stage was built with the bindist Use flag enabled
# This sets the language of build output to English.
# Please keep this setting intact when reporting bugs.
LC_MESSAGES=cs_CZ.utf8
USE="-clang fontconfig gtk -kde nls policykit -pulseaudio -qt -qt5 truetype ttf -wayland xft xinerama"
GENTOO_MIRRORS="http://ftp.fi.muni.cz/pub/linux/gentoo/ ftp://ftp.fi.muni.cz/pub/linux/gentoo/ rsync://ftp.fi.muni.cz/pub/linux/gentoo/ http://mirror.dkm.cz/gentoo/ https://mirror.dkm.cz/gentoo/ ftp://mirror.dkm.cz/gentoo/ rsync://mirror.dkm.cz/gentoo/ http://gentoo.mirror.web4u.cz/ ftp://gentoo.mirror.web4u.cz/ http://ftp.agdsn.de/gentoo https://ftp.agdsn.de/gentoo rsync://ftp.agdsn.de/gentoo https://ftp.gwdg.de/pub/linux/gentoo/ http://ftp.gwdg.de/pub/linux/gentoo/ ftp://ftp.gwdg.de/pub/linux/gentoo/ rsync://ftp.gwdg.de/gentoo/"
GRUB_PLATFORMS="efi-64"
INPUT_DEVICES="libinput synaptics"
VIDEO_CARDS="intel"
L10N="cs"
PHP_TARGETS="php8-1"
Kompilace - výkon
Je možné pomocí MAKEOPTS určit počet jader pro kompilaci. Počet použitých jader ovlivňuje:
Rychlost
Využití počtu jader CPU
Využití RAM
Je kompilace příliš náročná a blokuje provoz na počítači? Sniž počet jader používaných pro make.
Pro 8mi jádro, které standardně pro kompilaci využívá všech 8 jader, můžu přiřadit pouze polovinu výkonu:
/etc/portage/make.conf
#pouziti pouze 4 jader
MAKEOPTS=-j4
Moje osvědčená struktura
Jak správně jsem si osvojil zvyky nevím, ale vyhovuje mi to takto:
Vytvářím si vlastní soubory začínající čísly,
které obsahují specifické osobní nastavení balíčků
a pro automatické zápisy nechávám soubor automaticky.
Systém bere konfiguráky dle abecedy a proto užití portage s možností --autounmask
zapisuje do souboru abecdně posledního.
Soubor s vlastními možnostmi USE pro každý balíček
Takový soubor s extra přidanými USE k balíčkům vypadá takto:
Stačí zainstalovat jeden z nástrojů, já jsem zkusil genlop.
genlop -cn
Currently merging 5 out of 5
* mail-client/thunderbird-102.15.1
current merge time: 24 minutes and 13 seconds.
ETA: 1 hour, 14 minutes and 47 seconds.
genlop -t thunderbird
Sun Mar 26 11:44:30 2023 >>> mail-client/thunderbird-102.9.0
merge time: 2 hours, 5 minutes and 22 seconds.
Fri Apr 28 04:46:49 2023 >>> mail-client/thunderbird-102.10.0
merge time: 1 hour, 23 minutes and 28 seconds.
Napsal jsem si skript ukazující zbývající čas kompilace balíku, využívám jej
společně s monitoringem Conky:
Zde systém nahlíží k uplatnění speciálních nastavení - pokud jsou zde soubory, můžu je prozkoumat
/etc/portage/make.conf
Obecné nastavení portage
/etc/portage/package.use/01balicky
seznam balíčků a jejich individuálních flagů
/etc/portage/package.use/zzAutomaticky
zde se zapisují automatické individuální setupy - dle abecedy systém dává sem
/var/lib/portage/world
Instalované balíky
/var/tmp/portage
Zde se připravují ebuildy k instalaci
Aliasy které používám
alias gentoo-kernel='/mnt/DATA/Moje_speciality/skripty/kernel/kernel.sh'
alias gentoo-portage-clean='sudo emerge --verbose --ask --clean'
alias gentoo-portage-default-use='sudo emerge --info | grep ^USE'
alias gentoo-portage-depclean-pretend='sudo emerge --pretend --ask --verbose --depclean'
alias gentoo-portage-depclean='sudo emerge --ask --verbose --depclean'
alias gentoo-portage-eclean-kernel='sudo eclean-kernel -n 2'
alias gentoo-portage-glsa-check='glsa-check -t affected'
alias gentoo-portage-make.conf='sudo nano /etc/portage/make.conf'
alias gentoo-portage-module-rebuild='sudo emerge --ask --verbose --oneshot @module-rebuild'
alias gentoo-portage-package.use='sudo nano /etc/portage/package.use/01balicky'
alias gentoo-portage-preserved-rebuild="sudo emerge --verbose-conflicts --autounmask-write --ask @preserved-rebuild"
alias gentoo-portage-repozitare='sudo eselect repository list'
alias gentoo-portage-repozitare-aktivni='sudo eselect repository list -i'
alias gentoo-portage-updatecfg='sudo cfg-update -u'
alias gentoo-portage-upgrade='sudo emaint --auto sync'
alias gentoo-portage-use-info='less /var/db/repos/gentoo/profiles/use.desc'
alias gentoo-portage-worldupdate='sudo emerge --ask --verbose --update --newuse --deep @world'
alias instaluj='sudo emerge --verbose --ask --verbose-conflicts'
alias odinstaluj='sudo emerge --verbose --deselect'
alias odmerguj='sudo emerge --verbose --unmerge'
alias gentoo-portage-zavislosti='equery depgraph'
alias gentoo-portage-zavislosti_baliku='equery depends'
Virtualbox v Gentoo
Stačí zainstalovat balíky app-emulation/virtualbox a
app-emulation/virtualbox-additions.
Používal jsem jako kompozitor xcompmgr, ale ten se nyní jeví jako nepoužitelný,
protože dochází k jeho zasekávání a vykreslení oken není bezproblémové. To poslední s čím se chci potýkat je
špatně vykreslená obrazovka.
Vyřešil jsem to změnou kompozitoru, dle recenzí, parametrů a jednoduchosti jsem si
vybral kompozitor picom.
sudo emerge -av picom
Appimage nejdou spustit
Při pokusu o spuštění appimage jsem se setkal s hláškou o chybějícím fuse. Řešení se
našlo záhy. Stačí zainstalovat:
sudo emerge --ask --verbose sys-fs/fuse:0
emerge --depclean chce odstranit nano
Musí být vybrán výchozí systémový editor pomocí příkazu eselect editor set cisloeditoru.
Výpis seznamu editorů příkazem eselect editor list může být následující:
eselect editor list
[1] nano *
[ ] (free form)
eselect editor set 1
Setting EDITOR to nano ...
Run ". /etc/profile" to update the variable in your shell.