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:
- 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.