23 Przydatne przykłady poleceń PKG do zarządzania pakietami we FreeBSD
W tym samouczku wyjaśnimy, jak zarządzać wstępnie skompilowanymi aplikacjami w postaci pakietów binarnych w FreeBSD za pomocą narzędzia do zarządzania pakietami o nazwie PKG poprzez Porty > repozytorium kolekcji oprogramowania.
Repozytorium Porty oferuje niezbędne narzędzia do kompilacji aplikacji z kodu źródłowego wraz z ich zależnościami, ale także utrzymuje ogromną kolekcję prekompilowanych pakietów, obecnie ponad 24.000 pakietów, który można zainstalować w systemie FreeBSD za pomocą polecenia pkg.
Wymagania:
- Instalacja FreeBSD 11.x
Wyszukaj i znajdź aplikacje w drzewie portów we FreeBSD
1. Repozytoria portów są podzielone na kategorie w FreeBSD, a każda kategoria jest reprezentowana przez katalog w ścieżce systemu plików /usr/ports/.
Prosta lista katalogu /usr/ports/ wyświetli wszystkie dostępne kategorie, jak pokazano na poniższym zrzucie ekranu.
ls /usr/ports/
2. Aby zobaczyć wszystkie dostępne aplikacje należące do danej kategorii, wydaj polecenie ls w stosunku do katalogu kategorii.
Załóżmy, że chcesz wyświetlić wszystkie dostępne pakiety oprogramowania, które ma do zaoferowania kategoria bazy danych, wykonaj poniższe polecenie w konsoli. Prześlij wynik za pomocą polecenia less, aby łatwiej poruszać się po wynikach.
ls /usr/ports/databases/ | less
3. Aby zobaczyć, ile pakietów jest dostępnych w danej kategorii, wyświetl katalog kategorii i prześlij wynik za pomocą polecenia wc, jak pokazano w poniższym przykładzie.
ls /usr/ports/databases/ | wc -l
Jak widać na powyższym zrzucie ekranu, kategoria baz danych FreeBSD zawiera ponad 1000 wstępnie skompilowanych pakietów baz danych.
4. Aby sprawdzić, czy konkretna aplikacja jest dostępna w danej kategorii, ponownie użyj polecenia ls i przefiltruj wynik za pomocą narzędzia grep w celu wyszukania niestandardowej aplikacji.
W poniższych przykładach zostaną wyszukane dostępne pakiety bazy danych mongodb i pakiety bezpieczeństwa antywirusowy clam.
ls /usr/ports/databases/ | grep mongodb
ls /usr/ports/security/ | grep clam
Jak widać, w portach FreeBSD może być dostępnych wiele wersji aplikacji.
5. Jeśli nie wiesz, do której kategorii należy oprogramowanie, możesz zastosować inną metodę, aby znaleźć kategorię oprogramowania. Użyj symbolu wieloznacznego *
powłoki powłoki, aby wyszukać wzorzec w całym drzewie katalogów Ports.
Zakładając, że chcesz zobaczyć, w jakiej kategorii znajdziesz pakiety oprogramowania narzędzia mailx, możesz uruchomić następujące polecenie.
ls /usr/ports/*/*mailx
6. Inną metodą przeszukiwania pakietu oprogramowania i kategorii, do której należy pakiet, jest użycie polecenialocate w oparciu o wzorzec ciągu znaków.
Przed wykonaniem ciągu wyszukiwania należy zaktualizować bazę danych lokalizacji za pomocą następującego polecenia.
/usr/libexec/locate.updatedb
7. Po zaktualizowaniu bazy danych lokalizacji wyszukaj konkretny pakiet oprogramowania, używając wzorca słów kluczowych z nazwy pakietu. Na przykład, jeśli chcesz wyszukać narzędzie mailx, możesz uruchomić poniższe polecenie.
locate mailx
Jak widać, dostępne są dwa pakiety narzędzia mailx, oba zlokalizowane w kategorii /usr/ports/mail/.
8. Podobnie do znajdowania pakietu za pomocą polecenia zlokalizowania, możesz także użyć polecenia Whereis, aby wyświetlić kategorię aplikacji.
whereis mailx
Wyszukaj oprogramowanie za pomocą polecenia PKG we FreeBSD
9. Najłatwiejszą metodą wyszukiwania i znajdowania aplikacji we FreeBSD jest użycie wiersza poleceń PKG do zarządzania pakietami. Aby przeszukać pakiety binarne aplikacji, np. oprogramowania postfix, wydaj poniższe polecenie.
pkg search package_name
10. Jeśli chcesz sprawdzić, do której kategorii należy pakiet, uruchom tę samą komendę co powyżej z flagą -o
, jak pokazano w poniższych przykładach.
pkg search -o package_name
Zarządzaj oprogramowaniem we FreeBSD
11. Aby zainstalować wstępnie skompilowany pakiet z repozytoriów Portów we FreeBSD, wydaj polecenie pkg, jak pokazano w poniższym przykładzie.
pkg install package_name
12. Aby zapytać o informacje o konkretnym zainstalowanym pakiecie w systemie, wydaj poniższe polecenie.
pkg info package_name
13. Przełącznik polecenia pkg info wyświetli komunikat „Brak pakietów pasujących do nazwy_pakietu”, jeśli pakiet oprogramowania nie jest jeszcze zainstalowany w swojego systemu, jak pokazano na poniższym zrzucie ekranu.
pkg info tcpdump
14. Aby wyświetlić listę wszystkich zainstalowanych pakietów oprogramowania we FreeBSD, wykonaj polecenie pkg info bez żadnych opcji i przełączników.
Filtr grep względem polecenia pkg info może pokazać, czy w systemie są już obecne określone pakiety lub aplikacje, jak pokazano w poniższym przykładzie.
pkg info | grep ftp
15. W celu usunięcia pakietu z systemu należy wydać poniższe polecenia.
pkg remove package_name
or
pkg delete package_name
16. Jeśli chcesz zapobiec usunięciu lub modyfikacji zainstalowanego pakietu, możesz użyć przełącznika blokady dla polecenia pkg, jak pokazano na poniższym obrazku.
pkg lock package_name
Przełącznik polecenia Odblokuj pkg pozwoli Ci usunąć ograniczenia pakietu i zmodyfikować lub odinstalować pakiet.
pkg unlock package_name
17. Aby dowiedzieć się, do którego zainstalowanego pakietu należy polecenie lub plik wykonywalny, wydaj następujące polecenie, jak pokazano na poniższych przykładach zrzutów ekranu.
pkg which /path/to/executable
18. Aby lokalnie pobrać pakiet z repozytorium Porty, bez instalowania pakietu w systemie, uruchom polecenie pkg z przełącznik pobierania.
Pobrany plik binarny pakietu, będący skompresowanym plikiem .txz, można znaleźć w ścieżce systemowej /var/cache/pkg/.
pkg fetch package_name
ls /var/cache/pkg/ | grep package_name
19. Aby sprawdzić, czy zainstalowane pakiety są narażone na typowe luki lub błędy, wydaj poniższe polecenie.
pkg audit -F
Aby wyświetlić listę starych luk, które wpływały na pakiet oprogramowania we wcześniejszych wersjach, wykonaj poniższe polecenie.
pkg audit package_name
Poniżej znajduje się fragment wszystkich znanych luk, które znaleziono w serwerze WWW Nginx skompilowanym dla 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
...
Konserwacja narzędzia do zarządzania pakietami we FreeBSD
20. Aby mieć pewność, że repozytoria oprogramowania i wszystkie zainstalowane pakiety są aktualne i zawierają najnowsze wersje lub poprawki zabezpieczeń, wydaj następujące polecenia.
pkg update
pkg upgrade
21. Aby wyświetlić statystyki zdalnych repozytoriów i pakietów lokalnych, np. liczbę zainstalowanych pakietów w systemie i ilość miejsca na dysku zajętą przez zainstalowane oprogramowanie, wykonaj następujące polecenie.
pkg stats
22. Aby usunąć wszystkie zależności pozostawione przez zainstalowane pakiety w systemie, wydaj poniższe polecenie.
pkg autoremove
23. Aby automatycznie usunąć lokalny katalog pamięci podręcznej zarządzania pakietami dla zdalnie pobranych pakietów, uruchom poniższe polecenie. Najpierw powinieneś sprawdzić listę lokalnie pobranych pakietów binarnych.
pkg clean -a -n
pkg clean -a -y
To wszystko! Jak widać, FreeBSD ma imponujący system zbierania pakietów, podobny do narzędzi do zarządzania pakietami używanych w dystrybucjach Linuksa, takich jak Yum, RPM i APT, z ogromną liczbą prekompilowanych plików binarnych oprogramowania oraz prostym i skuteczna linia poleceń pkg, za pomocą której można w przyzwoity sposób zarządzać oprogramowaniem.