Vyhledávání na webu

23 Užitečné příklady příkazů PKG pro správu balíčků ve FreeBSD


V tomto tutoriálu vysvětlíme, jak spravovat předkompilované aplikace binárních balíčků v FreeBSD pomocí nástroje pro správu balíčků s názvem PKG přes Porty > úložiště sbírky softwaru.

Úložiště Ports nabízí potřebné nástroje pro kompilaci aplikací ze zdrojového kódu spolu s jejich závislostmi, ale také spravuje obrovskou sbírku předkompilovaných balíčků, v současnosti více než 24 000 balíčků, který lze nainstalovat na systém FreeBSD pomocí příkazu pkg.

Požadavky:

  1. Instalace FreeBSD 11.x

Hledejte a najděte aplikace ve stromu portů ve FreeBSD

1. Úložiště portů jsou ve FreeBSD rozdělena do kategorií, přičemž každá kategorie je reprezentována adresářem v cestě k systému souborů /usr/ports/.

Jednoduchý výpis adresáře /usr/ports/ zobrazí všechny dostupné kategorie, jak je znázorněno na níže uvedeném snímku obrazovky.

ls /usr/ports/

2. Chcete-li zobrazit všechny dostupné aplikace patřící do kategorie, zadejte pro adresář kategorie příkaz ls.

Předpokládejme, že chcete zobrazit všechny dostupné softwarové balíčky, které kategorie databáze nabízí, spusťte v konzole níže uvedený příkaz. Zpracujte výsledek pomocí méně příkazů, abyste mohli snadněji procházet výstupem.

ls /usr/ports/databases/ | less

3. Chcete-li zobrazit, kolik balíčků je k dispozici v kategorii, vypište adresář kategorie a přeneste výsledek pomocí příkazu wc, jak je znázorněno v příkladu níže.

ls /usr/ports/databases/ | wc -l

Jak můžete vidět na výše uvedeném snímku obrazovky, kategorie databáze FreeBSD obsahuje více než 1000 databázových předpřipravených balíčků.

4. Chcete-li zjistit, zda je konkrétní aplikace dostupná v kategorii, znovu použijte příkaz ls a filtrujte výsledek pomocí nástroje grep, abyste našli vlastní aplikaci.

V níže uvedených příkladech vyhledá balíčky mongodb dostupné v databázi a balíčky zabezpečení clam antivirus.

ls /usr/ports/databases/ | grep mongodb
ls /usr/ports/security/ | grep clam

Jak vidíte, ve FreeBSD Ports může být k dispozici více verzí aplikace.

5. V případě, že nevíte, do které kategorie software patří, můžete kategorii softwaru najít jiným způsobem. Použijte zástupný znak * shell globbing k vyhledání vzoru v celém stromu adresářů portů.

Za předpokladu, že chcete vidět, v jaké kategorii můžete najít softwarové balíčky pro nástroj mailx, můžete spustit následující příkaz.

ls /usr/ports/*/*mailx

6. Další metodou pro vyhledávání softwarového balíčku a kategorie, do které balíček patří, je použití příkazu locate proti vzoru řetězce.

Před provedením vyhledávacího řetězce byste měli aktualizovat databázi lokalizace pomocí následujícího příkazu.

/usr/libexec/locate.updatedb

7. Po aktualizaci databáze lokalizace vyhledejte konkrétní softwarový balíček pomocí vzoru klíčových slov z názvu balíčku. Pokud například chcete vyhledat nástroj mailx, můžete spustit níže uvedený příkaz.

locate mailx

Jak můžete vidět, pro nástroj mailx jsou k dispozici dva balíčky, oba se nacházejí v kategorii /usr/ports/mail/.

8. Podobně jako při hledání balíčku pomocí příkazu locate můžete také použít příkaz whereis k zobrazení kategorie aplikace.

whereis mailx

Vyhledejte software pomocí příkazu PKG ve FreeBSD

9. Nejjednodušší způsob, jak vyhledat a najít aplikaci ve FreeBSD, je pomocí příkazového řádku pro správu balíčků PKG. Chcete-li v binárních balíčcích vyhledat aplikaci, například software postfix, zadejte níže uvedený příkaz.

pkg search package_name

10. V případě, že chcete vidět, do které kategorie balíček patří, spusťte stejný příkaz jako výše s příznakem -o, jak je znázorněno v příkladech níže.

pkg search -o package_name

Správa softwaru ve FreeBSD

11. Chcete-li nainstalovat předkompilovaný balíček z repozitářů portů ve FreeBSD, zadejte příkaz pkg, jak je znázorněno v příkladu níže.

pkg install package_name

12. Chcete-li zjistit informace o konkrétním balíčku nainstalovaném v systému, zadejte níže uvedený příkaz.

pkg info package_name

13. Přepínač příkazu pkg info zobrazí zprávu „Žádné balíčky neodpovídají názvu balíčku “, pokud softwarový balíček ještě není nainstalován v váš systém, jak je znázorněno na níže uvedeném snímku obrazovky.

pkg info tcpdump

14. Chcete-li zobrazit seznam všech nainstalovaných softwarových balíků ve FreeBSD, spusťte příkaz pkg info bez jakékoli volby nebo přepínačů.

Filtr grep proti příkazu pkg info vám může ukázat, zda jsou v systému již přítomny některé konkrétní balíčky nebo aplikace, jak ukazuje příklad níže.

pkg info | grep ftp

15. Chcete-li odebrat balíček ze systému, zadejte níže uvedené příkazy.

pkg remove package_name
or
pkg delete package_name

16. V případě, že chcete zabránit odstranění nebo úpravě nainstalovaného balíčku, můžete pro příkaz pkg použít přepínač lock, jak je znázorněno na obrázku níže.

pkg lock package_name

Přepínač příkazu Unlock pkg vám umožní odstranit omezení balíčku a upravit nebo odinstalovat balíček.

pkg unlock package_name

17. Chcete-li zjistit, ke kterému nainstalovanému balíčku patří příkaz nebo spustitelný soubor, zadejte následující příkaz, jak je znázorněno na níže uvedených příkladech snímků obrazovky.

pkg which /path/to/executable

18. Chcete-li lokálně stáhnout balíček z úložiště Ports bez instalace balíčku do systému, spusťte příkaz pkg pomocí aportpřepínač.

Binární soubor staženého balíčku, což je komprimovaný soubor .txz, lze nalézt v systémové cestě /var/cache/pkg/.

pkg fetch package_name
ls /var/cache/pkg/ | grep package_name

19. Chcete-li zkontrolovat, zda jsou nainstalované balíčky vystaveny běžným zranitelnostem nebo chybám, zadejte níže uvedený příkaz.

pkg audit -F

Chcete-li zobrazit seznam starých chyb zabezpečení, které ovlivňují softwarový balíček v dřívějších verzích, zadejte níže uvedený příkaz.

pkg audit package_name

Níže je uveden výňatek všech známých zranitelností, které byly nalezeny na webovém serveru Nginx kompilovaném pro FreeBSD.

pkg audit nginx
nginx is vulnerable:
Affected versions:
<= 0.8.41 : > 1.4.4,1
nginx -- Request line parsing vulnerability
CVE: CVE-2013-4547
WWW: https://vuxml.FreeBSD.org/freebsd/94b6264a-5140-11e3-8b22-f0def16c5c1b.html

nginx is vulnerable:
Affected versions:
< 1.0.15
nginx -- Buffer overflow in the ngx_http_mp4_module
CVE: CVE-2012-2089
WWW: https://vuxml.FreeBSD.org/freebsd/0c14dfa7-879e-11e1-a2a0-00500802d8f7.html

nginx is vulnerable:
Affected versions:
< 1.4.7
nginx -- SPDY heap buffer overflow
CVE: CVE-2014-0133
WWW: https://vuxml.FreeBSD.org/freebsd/fc28df92-b233-11e3-99ca-f0def16c5c1b.html
...

Udržujte utilitu pro správu balíčků ve FreeBSD

20. Chcete-li zajistit, aby softwarová úložiště a všechny vaše nainstalované balíčky byly aktuální s nejnovějšími verzemi nebo záplatami zabezpečení, zadejte následující příkazy.

pkg update
pkg upgrade

21. Chcete-li zobrazit statistiky vzdálených úložišť a místních balíčků, například kolik balíčků je nainstalováno ve vašem systému a kolik místa na disku zaplnil nainstalovaný software, proveďte následující příkaz.

pkg stats

22. Chcete-li odstranit všechny závislosti, které po sobě zanechaly nainstalované balíčky v systému, zadejte níže uvedený příkaz.

pkg autoremove

23. Chcete-li automaticky vymazat místní mezipaměť správy balíčků pro vzdáleně stažené balíčky, spusťte níže uvedený příkaz. Nejprve byste měli ověřit seznam lokálně stažených binárních balíčků.

pkg clean -a -n  
pkg clean -a -y

To je vše! Jak můžete vidět, FreeBSD má působivý systém shromažďování balíčků, podobný nástrojům pro správu balíčků používaných v distribucích Linuxu, jako je Yum, RPM a APT, s velkým množstvím předkompilovaných softwarových binárních souborů a jednoduchým efektivní příkazový řádek, pkg, který lze použít ke slušné správě softwaru.