Wyszukiwanie w witrynie

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:

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