Bash pro začátečníky/Přehledy
Tato stránka je součástí kurzu: | |
začátečníci | |
Příslušnost: všeobecná |
Přehledy
[editovat]Instalace/odinstalace
[editovat]V této sekci vytváříme podrobný postup způsobů instalace či odinstalace balíčků či softwaru. Jednotlivé kroky jsou samozřejmě volitelné, ale zde si ukazujeme kroky v režimu „doporučené a bezpečné“.
Jelikož není statistika distribucí Linuxu pro ČR, vycházíme ze světových statistik za rok 2022, že asi 50 % uživatelů používá Debian (Debian, Ubuntu) takže je balíčkovací systém debianu apt
pro balíčky *.deb je na prvním místě. Na druhém místě jsou systémy odvozené od RedHatu (RedHat, CentOS, Fedora) s 20 % používající magery dnf a balíčky *.rpm. Globální balíčkovací systémy (snap, flatpack) následují poté.
Krok | Co | Kód | Vysvětlení |
---|---|---|---|
1 | update informací o balíčcích | sudo apt update
|
Před každým záměrem instalovat nový software přes příkaz apt, je dobré si stáhnout aktuální informace o debian baličcích. Ty se dají procházet i online, kde jsou seřazeny do různých kategorii. |
2 | nainstalovat micro | sudo apt install micro
|
Nainstaluje textový editor Micro. Micro je textový editor, který umožní lépe prohlédnout celkový seznam nabízených balíčků. Lze to udělat i v předinstalovaným Less. Na druhou stranu Nano má například problém celý seznam načíst. |
3 | vypsat seznam dostupných balíčků | apt list | micro
|
Vypíše seznam dostupných balíčků a pipne je do editoru Micro. Pokud nechcete používat micro, můžete si je zobrazit například v Less. Kód by pak byl sudo apt list | less .
|
4 | vyhledat v micro | CTRL+F ^
|
V Micro se dá hledat po stisku kláves CTRL+F řetězec. Pokud chcete hledat na začátku každého řádku, musíte před Váš řetězec vložit znak stříky (^ ).
|
5 | zobrazit informace o balíčku | apt-cache show balíček
|
Pokud si nejste jisti, který balíček nainstalovat, můžete po opuštění Micro (CTRL+Q) vypsat informace o balíčku příkazem apt-cache show, tedy například sudo apt-cache show micro .
|
6 | instalace programu | viz bod 2 | |
A | vypsat seznam nainstalovaných | apt --installed list
|
|
B | odinstalace programu | sudo apt remove název programu
|
Takže například sudo apt remove nano odebere textový editor Nano.
|
C | odinstalace knihoven | sudo apt autoremove
|
Odinstaluje nepotřebné závislosti (angl. dependiencies), které používal odnistalovaný sw. |
D | vyčištění cache | sudo apt clean
|
Vyčistí cache od nepotřebných souborů. To může urychlit chod počítače. Neovlivní to nainstalované aplikace. |
Byť aplikace instalované pomocí příkazu apt, běží v jádru a mohou ho poškodit, jsou na druhou stranu kontrolovány správci repozitáře, takže by k tomu nemělo dojít. Horší by bylo instalovat aptem z jiných zdrojů. Pak jsou aplikace, které nejde kontajnerizovat, tak zcela logicky jedou přes apt (jako například flatpak).
Krok | Co | Kód | Vysvětlení |
---|---|---|---|
1 | update informací o balíčcích | sudo dnf check-update
|
|
2 | vypsat seznam dostupných balíčků | dnf list available | micro
|
V tomto případě pro přehlednost posíláme seznam dostupných balíčků do editoru micro. |
3 | vyhledat v micro | CTRL+F ^
|
V Micro se dá hledat po stisku kláves CTRL+F řetězec. Pokud chcete hledat na začátku každého řádku, musíte před Váš řetězec vložit znak stříky (^ ).
|
4 | zobrazí informace o specifickém balíčku | dnf info balíček
|
|
5 | nainstaluje konkrétní program | sudo dnf install balíček
|
|
A | odinstaluje program | sudo dnf uninstall název programu
|
|
B | odinstalace závislostí | sudo dnf autoremove
|
Odinstaluje knihovny, které už nejsou potřeba. Zpravidla ty, které používala právě odinstalovaná aplikace. |
C | vyčistí cache | sudo dnf clean all
|
Vyčistí cache od nepotřebných souborů. To může urychlit chod počítače. Neovlivní to nainstalované aplikace. |
Krok | Co | Kód | Vysvětlení |
---|---|---|---|
1 | Najít odpovídající balíček | snap find název balíčku
|
Jelikož se na rozdíl od balíčků typu apt nevytváří v PC seznam dostupných balíčků, je možné pouze vyhledávat konkrétní, nebo se podívat na web snapů: https://snapcraft.io/store. Příkaz by tedy mohl vypadat: snap find kdenlive .
|
2 | Informace o balíčku | snap info název balíčku
|
Zobrazí podrobnější informace o balíčku včetně vydavatele a krátkého popisu. |
3 | Instalace | sudo snap install název balíčku
|
Nainstaluje balíček, který obsahuje samotný program plus software, který tento program potřebuje (angl. dependecies). |
A | Odinstalace | sudo snap remove název balíčku
|
Odinstaluje konkrétní program a jeho závislosti. |
Jsou kritizovány za to, že repozitáře moc nekontrolují kód. Nicméně snapy mohou být zapouzdřeny a nevyužívat tak vnější prostředky (kategorie strict). Pokud instalujeme soubor, který nemá pevné zapouzdření, jsme na to upozornění (např. kategorie classic). Snapy mají různé úrovně zapouzdření:
- strict - jede pouze ve své obálce a nemůže používat nepřidělené zdroje
- classic - funguje jako aplikace instalovaná přes klasický apt, tedy využívá prostředky mimo zapouzdření. Může představovat určitou úroveň hrozby
- devmode - dočasné zapouzdření určené pro vývoj, ovšem s širokou možností využívat zdroje
- jailmode - zapouzdření pro snapd a jeho vývoj s omezenými možnostmi využívat prostředky
Krok | Co | Kód | Vysvětlení |
---|---|---|---|
1 | nainstalovat flatpak | sudo apt install flatpak
|
Instalujeme příkazem apt .
|
2 | ověření jestli jsou připojeny repozitáře | flatpak remotes
|
Pokud už je Flathub nastaven, nemusím nic dál řešit, v opačném případě ho nastavíme následujícím krokem. |
3 | připojení Flathub repozitáře | flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
|
|
Odinstalace repozitáře | flatpak remote-delete název repozitáře
|
Takže například v případě odebrální repozitáře Flathub, by příkaz vypadal následovně: flatpak remote-delete flathub .
| |
4 | Updatovat informace o balíčcích | flatpak update
|
|
5 | Vypsat seznam dostupných balíčků v repozitáři | flatpak remote-ls
|
|
6 | Zobrazit podrobnější informace o balíčku | flatpack info ID balíčku
|
Zde se neuvádí jméno, jako u příkazu apt, ale rovnou ID balíčku (označeno je to ale jako ID Application), ta je ve druhém sloupci zleva ve výpisu. Dotaz by zněl flatpack info org.telegram.desktop.webview .
|
7 | instalace balíčku | flatpak install název repozitáře ID balíčku
|
Takže například flatpak install flathub net.kvirc.KVIrc instaluje balíček KVIrc z repozitáře Flathub.
|
A | vyjet seznam nainstalovaných aplikací | flatpak list --app
|
Důvod proč to děláme je, abysme zjistili ID balíčku, který chceme odinstalovat. Atribut --app vypíše pouze aplikace. Pokud bysme potřebovali řešit i jiné balíčky, pak stačí napsat flatpak list .
|
B | odinstalujeme aplikaci | flatpak uninstall ID balíčku
|
Takže například flatpak uninstall net.kvirc.KVIrc .
|
C | odinstaluje nepoužívané závislosti v prostředí flatpak | flatpak uninstall --unused
|
Slouží k pročištění systému na podobné bázi jako sudo apt autoremove . Jeližkož flatpak a apt pracují každý v jiným prostředí, zároveň také nesdílí závislosti a nemůže se stát, že by jsme odinstalací knihoven ve flatpaku znefunkčnili nějakou aplikaci nainstalovanou přes apt .
|
odinstalace flatpaku | sudo apt remove název programu
|
||
odstranění závislostí | sudo apt autoremove
|
Installují pouze dektopové aplikace (tedy nenabízí aplikace do příkazového řádku) bez použití administrátorských práv (sudo). Flatpakové aplikace používají systémy postavené na kontajnerizaci (např. běží ve svém jmenném prostoru) tak, aby se oddělili od hlavního systému.
Krok | Co | Kód | Vysvětlení |
---|---|---|---|
0 | zjistit, jestli není zkontrolovaný balíček v apt repozitáři | apt list | micro
|
Jde totiž o to, že pokud je balíček dostupný ve zkontrolovaném repozitáři, tak po zadání sudo apt install název balíčku, stejně apt nainstaluje balíček z zkontrolovaného repozitáře, nikoliv z PPA. Apt totiž volí ten balíček, který je novější a z repozitáře, který je uveden první v seznamech repozitářů. Pokud jsme tedy nepozmněnili seznami repozitářů, či neuděli jiné piny, nainstaluje se to z toho oficiálního. |
1 | získat ppa | Někde na webu, nebo si ho vyhledat v repozitáři launchpad.net | |
2 | přidat repozitář | sudo apt-add-repository ppa:název repozitáře/ppa
|
Takže například sudo apt-add-repository ppa:jeffreyratcliffe/ppa .
|
3 | updatovat informace o balíčcích | sudo apt update
|
|
4 | nainstalovat balíček PPA | sudo apt install název balíčku
|
Pokud bych chtěl apt donutit, aby instaloval balíček z konkrétního repozitáře (viz krok 0), musím použí následující příkaz: sudo apt-get install -t název repozitáře název balíčku .
|
A | odinstalovat program | sudo apt remove název programu
|
|
B | odinstalovat nepoužívané závislosti | sudo apt autoremove
|
PPA je archiv repozotářů od Canonical (stejná firma spravuje oficiální apt repozitář) pro nezkontrolované balíčky vývojářů (každý balíček má většinou vlastní repozitář). Zde je tedy při každé instalaci balíčku potřeba mít daný balíček nebo daného vývojáře ověřeného, aby nedošlo k zanesení škodlivého systému. Ideální je před instalací a spoštěním systém zazálohovat. Fakt, že má každý vývojáře či balíček vlastní repozitář umožňuje oddělit balíčky a dobře vyhledávat odkud jsou. Odděluje se tím odpovědnost za špatný kód.
Krok | Co | Kód | Vysvětlení |
---|---|---|---|
0 | podívat se jestli je instalátor a instalační návod | Jednoduší je instalovat poskytnutým instalátorem. Pokud neni dostupný ani návod instalace, může to být docela složité. Konfigurační skrypty se nazývají většinou *configure*. A spouští se příkazem ./configure . Nápověda bývá v souborech nazvaných readme, install či build.
| |
1 | stáhnout zdrojový kód | ||
2 | sestavení softwaru (angl. build) | Build, česky sestavení je převod kódu z člověku čitelné podoby do binárního kódu pro počítač. To se dělá přiloženým instalátorem, nebo příkazem make . Projekt ale musí obsazovat makefile soubor s instrukcemi, jak program složit.
| |
3 | instalace | Instalace je umístění binárních souborů tak, aby byly spustitelné. To se dělá přiloženým instalátorem, nebo příkazem make .
|
Samoinstalace softwaru je složitá, nainstalovaný software se pak sám neupdatuje a bývá problém ho odinstalovat.
Zvážít zpracování appimage, dkpg