GNU/Linux >> Znalost Linux >  >> Linux

Vysvětlení správce balíčků APT v systému Linux

Jako správce systému, který ví, jak instalovat , aktualizovat nebosmažte balíčky Linux je zásadní pro údržbu vašich hostitelů a serverů Linuxu.

Možná budete muset aktualizovat vaše aktuální balíčky, abyste získali nejnovější bezpečnostní záplaty pro vaše servery.

Na druhou stranu možná budete muset nastavit celý HTTP webový server, abyste mohli nasadit zcela nový web, který váš aplikační tým vyvinul.

Někdy můžete chtít otestovat nový software, abyste zjistili, zda vyhovuje vašim potřebám, abyste balíčky později odinstalovali.

Vědětjak spravovat balíčky Linuxu je proto zásadní .

V tomto tutoriálu se zaměříme na správu balíčků Linux pomocí Správce balíčků APT.

Nejprve projdeme trochou historie počátků softwaru s otevřeným zdrojovým kódem abyste pochopili základy linuxových balíčků.

Později se zaměříme trochu více na APT (Nástroj pro pokročilé balíčky ) a uvidíme, jak můžete zkompilovat své vlastní programy, abyste měli vlastní instalace.

Jste připraveni?

Co se naučíte

Přečtením tohoto návodu se dozvíte o následujících tématech:

  • GNU /Linux projekt a původ svobodného softwaru;
  • Jak instalace programu je navržen pro Linux a jak se liší od hostitelů Windows;
  • Jaká softwarová úložiště jsou a jaké jsou různé typy úložišť, se kterými se můžete setkat;
  • Mezipaměť APT kompletní průvodce :jak aktualizovat mezipaměť a jak hledat programy ve vašem systému;
  • APT získá podrobné příkazy :jak správně nainstalovat a odebrat balíčky Linuxu;

To je dlouhý program, takže se do něj bez dalších okolků vrhněme.

Vysvětlení původu GNU/Linux

Než popíšete, jak můžete instalovat a odinstalovat balíčky na Linuxu, je docela důležité mít nějaké základy o tom, co je GNU a Linux.

Když se mluví o Linuxu, je docela běžné označovat Linux jako operační systém, ale není to tak úplně pravda .

Když mluvíme o operačních systémech Linux, ve skutečnosti mluvíme o operačních systémech GNU/Linux.

Co je GNU?

GNU (zkratka pro „GNU Not Unix “) je operační systém navržený tak, aby poskytoval svobodný software, který lze snadno získat, distribuovat a upravovat.

Dnes je docela populární považovat Unix (nebo alespoň GNU) za svobodný operační systém, ale ne vždy tomu tak bylo.

Pokud byste například spustili „uname ” na vašem systému s volbou “-o” (pro operační systém), uvidíte, že s největší pravděpodobností používáte OS GNU/Linux.

$ uname -o

Zajímavé !

V raných dobách Unixu nebyl operační systém Unix vůbec svobodným softwarem s otevřeným zdrojovým kódem:byl vyvinut společnostmi jako IBM, HP nebo AT&T pro obchodní potřeby.

Vzhledem k nárůstu softwaru chráněného autorským právem a licencovaných distribucí se však Richard Stallman, výzkumník z MIT, rozhodl vyvinout alternativu pro UNIX:GNU.

GNU byl navržen jako operační systém s otevřeným zdrojovým kódem, který je zpětně kompatibilní s operačními systémy Unix.

V operačním systému GNU jsou příkazy (jako např. „ls“, „cat“ nebo „gcc“) zcela open source.

Navíc je GNU definován jako „svobodný software“, ale mluvíme o penězích ?

Vysvětlení svobodného softwaru

Jak jsme vysvětlili dříve, GNU je samozvané svobodný software .

Ale „svobodný“ software doslova neodkazuje na peníze, ale odkazuje na základní svobody které jsou jádrem GNU:

  • Svoboda spouštět programy, jak si přejete , za jakýmkoli účelem, kterého se snažíte dosáhnout;
  • Svoboda program upravovat , což předurčuje úplný přístup ke zdrojovému kódu programu;
  • Svoboda redistribuovat kopie abyste pomohli svým sousedům;
  • Sdílejte své úpravy se světem :tímto způsobem nejste omezeni na své vlastní změny, ale můžete pomoci tisícům vývojářů po celém světě.

Tyto základní svobody jsou spojeny s konceptem copyleftu .

K této sadě základních pravidel můžete přidat konkrétní pravidla, pokud nezasahují do samotných základních pravidel.

Bylo by například nezákonné převzít otevřený zdrojový kód, upravit jej a prodat, aniž by byl koncovým uživatelům poskytnut zdrojový kód.

Toto je důležité prohlášení, protože to znamená, že není zakázáno prodávat kód jako takový, je nezákonné bránit koncovým uživatelům v dodržování základních práv.

V důsledku toho GNU nejen definuje tato základní pravidla svobody, ale také zaručuje, že tato práva budou rozšířena na všechny následující verze softwaru.

V této souvislosti a za účelem nakládání s obsahem chráněným autorským právem licence GPL (GNU General Public License) byl vytvořen.

Licence GPL pomáhá agregovat různá vlastní pravidla vyhrazená pro svobodný software a definovat porušení licence. Kompletní GPL FAQ lze nalézt na této stránce.

Přístup k balíkům GNU

Jak jste již pravděpodobně pochopili, GNU balíčky jsou balíčky navržené ke sdílení , upraveno a spustit kdekoli chcete, za jakýmkoli účelem.

V tomto kontextu jsou balíčky GNU dostupné přímo na webu GNU.

Pokud přejdete na softwarovou stránku oficiálního webu GNU, budete moci vidět celý seznam GNU balíčků, které máte k dispozici.

Jak můžete vidět, toto je poměrně dlouhý seznam balíčků.

Jedním z nejoblíbenějších balíků je balík core-utils, který poskytuje nejoblíbenější příkazy Linuxu, jako je „ls “, „kočka “ nebo „najít “.

A tyto příkazy lze libovolně upravovat a spouštět!

Všechny tyto balíčky jsou dodávány vždy, když jste nainstalovali operační systém GNU/Linux, ale co kdybyste chtěli nainstalovat software třetí strany?

Za tímto účelem je Linux navržen tak, aby komunikoval s tím, co nazývámesoftwarová úložiště.

Co jsou to softwarová úložiště pro Linux?

Před popisem linuxových softwarových repozitářů je docela důležité mít nějaké znalosti o tom, jak je navržen systém balení Linuxu.

Pokud pocházíte z prostředí Windows, jste zvyklí stahovat spustitelné soubory (.exe) z internetu, otevřít průvodce instalací a několikrát kliknout na „Další“, aby byl váš program nainstalován.

V systému Linux toto není tento případ.

V systému Linux balíčky stahuje a instaluje z online úložišť správce balíčků.

Správce balíčků APT v systému Linux

V distribucích založených na Debianu se balíčky stahují pomocí Správce balíčků APT.

Když mluvíme o balíčcích, máme v podstatě co do činění s archivními soubory, které obsahují více souborů deb, které používá nástroj dpkg k instalaci programů.

Proč bychom tedy potřebovali APT?

APT, což je zkratka pro Advanced Package Manage, zodpovídá za stahování, instalaci, aktualizaci a odstraňování balíčků z vašeho systému.

Ale proč bychom k tomu měli potřebovat správce balíčků?

Nemohli bychom si programy nainstalovat sami?

Bylo by to těžké, protože balíčky jsou svázány dohromady prostřednictvím závislostí balíčků.

Koncept závislostí balíčků

Vezměme si například VIM Editor na Linuxu.

Pokud používáte distribuci Debianu, stránka VIM pro repozitáře Debianu je k dispozici zde.

Zde byste mohli najít informace o tomto konkrétním balíčku: jaké funkce poskytuje, kdo jej vytvořil, ale hlavně na jakých balíčcích závisí.

V Linuxu většina balíčků nepřichází jako „čisté“ balíčky:závisí na široké škále různých balíčků, aby skutečnému programu poskytly funkce třetích stran.

Jak můžete vidět rolováním stránky, balíček VIM závisí na mnoha dalších balíčcích.

Jak můžete vidět zde, závislosti jsou rozděleny do čtyř různých kategorií:

  • závisí :jak název napovídá, tato závislost je nutná pro běh programu. Bez něj se program vůbec nespustí;
  • doporučuje :bez této závislosti by byl program schopen běžet, ale neposkytoval by všechny funkce, které je tento nástroj navržen;
  • doporučuje :bez této závislosti by byl program schopen běžet a poskytovat základní funkce, ale nebyla by to konečná verze nástroje;
  • vylepšuje :tato závislost může zlepšit skutečný nástroj zlepšením výkonu nebo zobrazení, ale není to vůbec potřeba.

Nyní víte, proč používáme nástroj APT:závislosti na balíčcích jsou vyřešeny za vás v době instalace.

Nyní, když víte více o balíčcích, pojďme se podívat,co jsou softwarová úložiště .

Linuxová architektura distribuce softwaru

V systému Linux je software distribuován prostřednictvím softwarových úložišť.

Softwarová úložiště se používají k agregaci svobodného softwaru poskytovaného komunitou.

Repozitáře mohou být vázány na konkrétní distribuci.

Ubuntu, Debian, CentOS nebo RHEL mají svá vlastní úložiště, která jsou denně aktualizována.

V důsledku toho, když chcete nainstalovat nový program, dotazujete se na tato základní úložiště, abyste z nich získali balíčky.

Pokud byste chtěli instalovat balíčky, které nejsou umístěny v úložištích založených na distribuci, přidali byste do svého systému svá vlastní důvěryhodná úložiště, abyste mohli nainstalovat nové balíčky.

To je v podstatě důvod, proč se říká, že Linux je bezpečnější než Windows, pokud jde o instalaci nových programů.

Pokud neinstalujete stínové balíčky, většinu času komunikujete s důvěryhodnými repozitáři kde stovky různých vývojářů kontrolují kód, který na svém počítači spouštíte.

Nebrání virům nebo malwaru v šíření, ale bylo by to nepravděpodobné, protože kód balíčku zkontrolovalo několik nezávislých recenzentů.

Všimněte si, že úložiště jsou rozdělena do různých kategorií a možná budete muset vybrat správné úložiště, abyste zaručili, že používáte bezpečné verze.

Mezi takové verze patří „stabilní ” repozitáře, “testování ” a “nestabilní úložišť“.

Poznámka :v jiných distribucích mohou mít tato úložiště jiný název (Ubuntu má multivesmír, vesmír, hlavní a tak dále)

Ve výchozím nastavení je vaše distribuce s největší pravděpodobností propojena se stabilním (také nazývaným „hlavním“) úložištěm prostřednictvím konfiguračního souboru sources.list.

$ cat /etc/apt/sources.list

Nyní, když víte více o softwarových úložištích a o tom, jak s nimi váš správce balíčků spolupracuje, pojďme se podívat, jakou máte mezipaměť správce balíčků.

Vysvětlení mezipaměti APT

Jak jsme již uvedli dříve, správce balíčků APT je zodpovědný za stahování balíčků z internetu (nebo místních úložišť balíčků) za účelem jejich instalace.

Operace prováděné správcem balíčků APT se však neprovádějí neustále online.

APT spravuje interní databázi zvanou cache.

Cache APT se používá k poskytování offline informací o aktuálních balíčcích nainstalovaných ve vašem systému. V podstatě zaručuje, že máte přístup k informacím o balíčku, aniž byste museli být připojeni k internetu.

Vyhledávání balíčků v mezipaměti

Můžete například vyhledat všechny balíčky související s Pythonem, které mohou být uloženy ve vaší mezipaměti APT.

Chcete-li to provést, musíte spustit příkaz „apt-cache“ s příkazem „search “.

$ apt-cache search <search string>

$ apt-cache search python

Tip:Chcete-li zobrazit všechny poskytnuté výsledky, můžete hledání v mezipaměti procházet pomocí „méně“.

apt-cache search python | méně

Kromě hledání konkrétních balíčků může mezipaměť APT také zobrazit úplné podrobnosti o balíčku.

Zobrazují se informace o balíčku

Chcete-li zobrazit informace o balíčku, musíte provést příkaz „apt-cache“ s příkazem „show “.

$ apt-cache show <package_name>

Chcete-li například získat více informací o balíčku gcc (což je kompilátor GNU), zadejte

$ apt-cache show gcc

Pokud tedy k zobrazení některých podrobností nepotřebujeme připojení k internetu, znamená to, že jsou uloženy někde v naší instanci.

Řekněme například, že chci vyhledat stránku dokumentace mezipaměti pro příkaz nano.

Ve výchozím nastavení jsou informace o balíčku uloženy v „/var/lib/apt/lists

$ ls /var/lib/apt/lists

V tomto adresáři máte přístup ke spoustě různých souborů, které ukládají informace o balíčcích uložených ve vašem systému.

Abychom to dokázali, podívejme se na soubor poskytující informace pro příkaz nano.

$ sudo grep -r -A 3 -B 3 -E "Package: nano$" . | less

Jak můžete vidět, mnoho souborů obsahuje odkaz na balíček nano, ale ten, který mě zajímá, je určitě obsažen v souboru „main amd64“ (pro připomenutí „main ” znamená stabilní a „amd64 ” na architekturu mého procesoru )

Pokud máte nějaké pochybnosti o architektuře vašeho CPU, spusťte příkaz „lscpu“.

$ lscpu

Aktualizace mezipaměti APT

Jak jste již pravděpodobně pochopili, mezipaměť APT funguje offline.

V důsledku toho musí být mezipaměť APT pravidelně aktualizována, aby bylo zajištěno, že:

  • Ukazujete na správná úložiště;
  • Dostáváte nejnovější aktualizace softwaru nainstalovaného ve vašem počítači .

Chcete-li načíst aktualizace pro mezipaměť, musíte spustit příkaz „apt-get update“.

$ sudo apt-get update

Poznámka:Abyste mohli aktualizovat systémovou mezipaměť, musíte být sudo.

Jak můžete vidět, příkaz provede několik volání GET do vzdálených úložišť za účelem získání nových informací.

Když aktualizujete své repozitáře, je důležité si uvědomit, že na vašem počítači nebyl aktualizován žádný software.

Spuštěním „aktualizace apt-get ” pouze aktualizuje mezipaměť, aby měl nejnovější informace o softwaru, neaktualizuje přímo vaše programy.

Chcete-li aktualizovat své programy, musíte provést „upgrade “.

Aktualizace (upgrade) vašich místních balíčků

Chcete-li aktualizovat své místní programy, musíte spustit „apt-get“ s „upgrade “.

$ sudo apt-get upgrade

V určitém okamžiku během příkazu budete dotázáni, zda chcete nainstalovat aktualizace.

Stiskněte „Y ” a stiskněte Enter.

Po potvrzení budou vaše programy upgradovány na nejnovější stabilní verzi.

Pěkný!

Úspěšně jste upgradovali své balíčky pomocí příkazu upgrade.

Aktualizace mezipaměti a aktualizace stávajících balíčků je opravdu příjemná, ale co kdybyste chtěli do systému nainstalovat nové balíčky?

V další části uvidíte, jak můžete nainstalovat nové programy do vašeho systému pomocí APT.

Instalace nových balíčků pomocí APT

Při instalaci nových balíčků pomocí APT máte v podstatě dvě možnosti:

  • Balík se již nachází v jednom z úložišť, se kterými jste propojeni;
  • Balík je ve vzdáleném úložišti a je třeba jej přidat.

Chcete-li zjistit, zda je balíček již umístěn ve vaší mezipaměti APT, musíte ji prohledat.

V tomto příkladu budeme předstírat, že chceme nainstalovat balíček „gcc“.

Nejprve se podívejme, zda je GCC již umístěn v naší mezipaměti APT.

$ apt-cache search --names-only ^gcc$

Jak můžete vidět, balíček GCC je přímo dostupný s mými výchozími místními repozitáři.

Instalace softwaru nalezeného v mezipaměti

Když je balíček přímo dostupný ve výchozích úložištích, můžete jej nainstalovat spuštěním příkazu „apt-get“ s příkazem „install “.

Poznámka:K instalaci nových balíčků na váš systém budete potřebovat oprávnění sudo.

$ sudo apt-get install gcc

Můžete být také dotázáni, zda souhlasíte s instalací tohoto balíčku na váš systém.

Kdykoli budete vyzváni k této otázce, stiskněte „Y“.

Krátce poté by měl být váš program nainstalován a použitelný.

Chcete-li ověřit, zda byl příkaz správně nainstalován, můžete spustit příkaz „whereis“.

$ whereis gcc

Skvělé, správně jste na svůj systém nainstalovali kompilátor GCC!

Instalace softwaru v mezipaměti není k dispozici

V některých případech můžete chtít nainstalovat software, který není uložen přímo ve vaší mezipaměti APT.

Pro tuto sekci nainstalujeme Grafana, open-source dashboarding, který není přímo dostupný ve výchozích balíčcích.

Poznámka:Toto není návod věnovaný Grafaně, tato část se bude zabývat pouze příkazy souvisejícími s APT.

Nejprve se musíme ujistit, že balíček již není obsažen v naší mezipaměti APT.

$ apt-cache search --names-only ^grafana$
<empty>

V tomto případě nejsou pro Grafana nainstalovány žádné výchozí balíčky, musíme je přidat sami.

Přidání vlastních repozitářů APT

Abyste mohli přidat vlastní úložiště APT, musíte porozumět struktuře adresářů zdrojů APT.

Ve výchozím nastavení jsou úložiště ukládána do složky „/etc/apt“.

$ ls -l /etc/apt

V tomto adresáři máte několik položek:

  • apt.conf.d :konfigurační složky APT obsahující konfigurační soubory například pro konfiguraci proxy;
  • auth.conf.d :lze použít k uložení ověřovacích podrobností souvisejících s proxy;
  • preferences.d :lze použít k nastavení priorit pro konkrétní úložiště nebo balíčky;
  • zdroje. seznam :obsahuje výchozí sadu úložišť pro vaši distribuci;
  • sources.list.d :adresář, který může obsahovat vlastní úložiště APT;
  • trusted.gpg.d :sada klíčů GPG, kterým důvěřujete za účelem certifikace pravosti stahování.

„sources.list“ je již naplněn výchozími repozitáři, takže tento soubor možná nebudeme chtít upravovat.

Místo toho přidáme vlastní úložiště do adresáře sources.list.d.

$ sudo touch /etc/apt/sources.list.d/custom.list

Do tohoto nově vytvořeného souboru přidejte jednu položku pro vlastní úložiště, které chcete nainstalovat.

$ sudo nano /etc/apt/sources.list.d/custom.list

deb https://packages.grafana.com/oss/deb stable main

Pro bezpečnou instalaci balíčků možná budete muset importovat klíče GPG.

$ sudo wget -q -O https://packages.grafana.com/gpg.key | sudo apt-key add -
OK

Poznámka :Možná nebudete muset přidávat GPG klíč pro každý balíček, ale zaručuje to, že je balíček bezpečně nainstalován.

Nyní, když byl váš repozitář správně přidán, aktualizujte mezipaměť APT, aby se změny projevily.

$ sudo apt-get update

Pokud nyní hledáte svůj balíček, měli byste jej najít.

$ sudo apt-cache show grafana

V důsledku toho jste nyní připraveni nainstalovat svůj balíček.

Chcete-li balíček nainstalovat, jednoduše spusťte „apt-get “ pomocí příkazu „install “.

$ sudo apt-get install grafana

Úžasné !

Nyní je váš balíček úspěšně nainstalován.

Jak můžete vidět, instalace vlastního softwaru je zcela odlišná od instalace softwaru dostupného v mezipaměti:musíte přidat vlastní úložiště a případně přidat klíče GPG.

Nyní, když víte, jak instalovat balíčky, pojďme se podívat, jak je můžete odinstalovat.

Odinstalace balíčků pomocí APT

Při odinstalování balíčků pomocí správce balíčků APT máte v podstatě dvě možnosti:odstranit nebo vyčistit .

Odstranění balíčků pomocí apt-get remove

První způsob, jak odinstalovat balíček, je použít apt-get remove příkaz.

$ sudo apt-get remove <package>

Pomocí balíčku grafana, který jsme nainstalovali dříve, by to poskytlo

$ sudo apt-get remove grafana

Proč bychom tedy potřebovali funkci čištění?

Při použití apt-get remove , balíčky jsou odstraněny, ale soubory přidružené k balíčku zůstanou nedotčeny.

Chcete-li to vidět, zkuste pomocí příkazu dpkg vypsat seznam souborů přidružených k balíčku ve vašem systému.

$ dpkg -L <package>

Jak vidíte, konfigurační soubory jsou stále k dispozici, proto musíte použít vyčištění příkaz.

Čištění balíčků pomocí apt-get purge

Chcete-li použít příkaz purge, jednoduše spusťte „apt-get “ pomocí „vyčištění “.

$ sudo apt-get purge <package>

Nyní, když se pokusíte zobrazit soubory spojené s vaším balíčkem, nebudete moci najít žádný z nich.

$ dpkg -L <package>
<empty>

Odstranění závislostí pomocí automatického odstranění

Jak jste pravděpodobně pochopili, smyslem použití APT je to, že načte závislosti balíčků za vás a správně je nainstaluje.

V důsledku toho, kdykoli instalujete nové balíčky, existuje riziko, že na vašem systému zůstanou visící závislosti.

Chcete-li odstranit visící závislosti (tj. závislosti již nepoužívané), musíte použít možnost automatického odstranění.

Můžete to udělat buď při odinstalaci balíček

$ sudo apt-get autoremove <package>

Nebo to můžete udělat po provedení autoremove možnost zcela bez argumentů.

$ sudo apt-get autoremove

Závěr

V tomto dlouhém tutoriálu jste se naučili, jak můžete instalovat a odinstalovat balíčky pomocí správce balíčků APT.

Také jste se dozvěděli více o původu Open Source Software , odkud pochází a jak GNU/Linux operační systém se vynořil ze standardních unixových operačních systémů.

Pokud vás zajímá administrace systému Linux , máme na webu kompletní sekci věnovanou tomu, takže se na to určitě podívejte.


Linux
  1. Správa balíků Linux pomocí apt

  2. Jaký je váš oblíbený správce balíčků pro Linux?

  3. Jak nainstalovat a používat Snap Package Manager na Alma Linux 8

  1. Jak používat XBPS Package Manager na Void Linux

  2. Instalace a používání Homebrew Package Manager v systému Linux

  3. Jak nainstalovat a používat Správce balíčků příze v Linuxu

  1. Správci balíčků Linux:dnf vs apt

  2. Příkaz whoami v Linuxu vysvětlený na příkladech

  3. Otázky k rozhovoru:Linux Package Manager (RPM)