Które polecenie powinien zastosować root w systemie Ubuntu Linux, aby pobrać z repozytoriów aktualną listę dostępnych pakietów, nie instalując jeszcze żadnych aktualizacji?
A. apt-get upgrade
B. apt-get dist-upgrade
C. apt-get update
D. apt-get install nazwa_pakietu
W tym przypadku właściwe jest polecenie apt-get update, ponieważ jego zadaniem jest odświeżenie lokalnej bazy informacji o pakietach dostępnych w skonfigurowanych repozytoriach Ubuntu. System pobiera wtedy metadane, czyli m.in. listy pakietów, wersje, zależności i informacje o źródłach zdefiniowanych w plikach takich jak /etc/apt/sources.list oraz w katalogu /etc/apt/sources.list.d/. Ważne jest to, że apt-get update niczego jeszcze nie instaluje i nie aktualizuje programów w systemie. Ono tylko przygotowuje menedżer pakietów APT do dalszej pracy. Z mojego doświadczenia to jest jedno z tych poleceń, które warto wykonać przed instalacją pakietu albo przed aktualizacją systemu, np. przed apt-get upgrade. Dobra praktyka administracyjna wygląda często tak: najpierw apt-get update, potem analiza dostępnych zmian, a dopiero później właściwa aktualizacja. W praktyce root może uruchomić to bezpośrednio jako apt-get update, a zwykły użytkownik zwykle użyje sudo apt-get update. To rozróżnienie jest ważne, bo pobranie aktualnej listy pakietów wymaga uprawnień administracyjnych do zapisu w systemowych katalogach APT, na przykład w /var/lib/apt/lists.
W tym pytaniu łatwo pomylić samo pobranie informacji o pakietach z faktyczną aktualizacją systemu, bo słowa update i upgrade w języku potocznym brzmią podobnie. W administracji Ubuntu mają jednak konkretne znaczenie. Polecenie apt-get upgrade korzysta z już pobranej lokalnej listy pakietów i próbuje zaktualizować zainstalowane programy do nowszych wersji. Czyli ono nie służy głównie do odświeżenia listy, tylko do wykonania aktualizacji pakietów. Jeśli lokalna baza APT jest stara, upgrade może działać na nieaktualnych danych, co jest po prostu słabą praktyką.
Polecenie apt-get dist-upgrade idzie jeszcze dalej, bo potrafi inteligentniej rozwiązywać zależności, instalować dodatkowe pakiety albo usuwać takie, które blokują aktualizację. W praktyce używa się go ostrożniej, szczególnie na serwerach produkcyjnych, bo może wprowadzić większe zmiany w systemie. Moim zdaniem to polecenie trzeba rozumieć, a nie odpalać automatycznie, bo czasem potrafi zaskoczyć mniej doświadczonego administratora.
Z kolei apt-get install nazwa_pakietu służy do instalowania konkretnego pakietu, na przykład apt-get install mc albo apt-get install nginx. Ono również nie jest odpowiedzią na pytanie, bo nie pobiera samej aktualnej listy dostępnych pakietów jako osobnej czynności administracyjnej. Typowy błąd myślowy polega tu na założeniu, że każde polecenie APT najpierw samo aktualizuje repozytoria. Tak nie jest. Standardowy, poprawny schemat pracy to najpierw apt-get update, a dopiero potem instalacja lub aktualizacja. Dzięki temu system korzysta ze świeżych informacji z repozytoriów i zmniejsza się ryzyko problemów z zależnościami albo komunikatów o brakujących wersjach pakietów.
Polecenie apt-get dist-upgrade idzie jeszcze dalej, bo potrafi inteligentniej rozwiązywać zależności, instalować dodatkowe pakiety albo usuwać takie, które blokują aktualizację. W praktyce używa się go ostrożniej, szczególnie na serwerach produkcyjnych, bo może wprowadzić większe zmiany w systemie. Moim zdaniem to polecenie trzeba rozumieć, a nie odpalać automatycznie, bo czasem potrafi zaskoczyć mniej doświadczonego administratora.
Z kolei apt-get install nazwa_pakietu służy do instalowania konkretnego pakietu, na przykład apt-get install mc albo apt-get install nginx. Ono również nie jest odpowiedzią na pytanie, bo nie pobiera samej aktualnej listy dostępnych pakietów jako osobnej czynności administracyjnej. Typowy błąd myślowy polega tu na założeniu, że każde polecenie APT najpierw samo aktualizuje repozytoria. Tak nie jest. Standardowy, poprawny schemat pracy to najpierw apt-get update, a dopiero potem instalacja lub aktualizacja. Dzięki temu system korzysta ze świeżych informacji z repozytoriów i zmniejsza się ryzyko problemów z zależnościami albo komunikatów o brakujących wersjach pakietów.