Czy „sudo apt-get update” jest obowiązkowe przed każdą instalacją pakietu?

21

Wiem, jaki jest cel polecenia aktualizacji i zastanawiałem się, czy muszę go użyć przed wykonaniem instalacji pakietu. Co się stanie, jeśli nie będę aktualizować zbyt długo i nie zainstaluję niektórych krytycznych pakietów? Ponadto, czy jest jakaś okazja, że ​​nie ma takiej potrzeby?

Nikos Grigoriadis
źródło

Odpowiedzi:

20

Twoja kopia Ubuntu ma prywatną kopię listy pakietów znajdujących się w repozytoriach Ubuntu. Podczas instalowania pakietu apt-getczyta listę i określa adres URL pakietu do pobrania (który zazwyczaj zawiera informacje o wersji pakietu).

apt-get updateaktualizuje listy pakietów. Jeśli nie zrobisz tego przed instalacją, apt-getmoże narzekać, że nie może znaleźć pakietu w repozytorium, ponieważ obliczył adres URL na podstawie starej wersji listy (która zawiera starszą wersję pakietu).

Oczywiście apt-get updatejest to konieczne po zmianie repozytoriów, ponieważ system musi pobrać listę nowych repozytoriów.

Jest to niezbędne przed aktualizacją zainstalowanych pakietów, ponieważ system nie może wiedzieć, czy repozytorium ma nową wersję pakietu, chyba że ma aktualną kopię listy pakietów.

Nie ma powodu, aby nie uruchamiać się apt-get updateprzed instalacją pakietu. Nie jest to jednak konieczne, jeśli wiesz, że żadna nowa wersja tego pakietu i jego zależności nie została udostępniona w mirrach od czasu ostatniej apt-get update. Szczególnym przypadkiem jest to, że listy pakietów są aktualne, czyli po stosunkowo krótkim czasie od ostatniego apt-get update; oznacza to, że wszystkie pakiety w lustrze są w tej samej wersji, co były.

Lista pakietów zmienia się za każdym razem, gdy pakiet jest aktualizowany w kopii lustrzanej. Niemożliwe jest przewidzenie, jak często się zmienia, bez odniesienia do konkretnego problemu lub zgłoszenia błędu lub bez śledzenia rozwoju tej wersji Ubuntu.

ignis
źródło
„Listy pakietów są aktualne (czyli po stosunkowo krótkim czasie od ostatniej aktualizacji apt-get” - jak szybko? Jak często się zmieniają listy pakietów? Co można zmienić listy pakietów?
joshreesjones
@ mathguy54 odpowiedź zaktualizowana. W praktyce uruchamiam aktualizację apt-get, ilekroć otrzymuję błędy 404 („nie znaleziono pliku”) podczas pobierania pakietów.
ignis
„Ubuntu ma prywatną kopię listy pakietów znajdujących się w repozytoriach Ubuntu” - gdzie ta lista? Chciałbym to przeczytać. Dzięki za świetną informację.
joshreesjones
@ mathguy54 Pliki, które kończą się *_Packagesponiżej, można odczytać /var/lib/apt/lists/za pomocą edytora tekstu, jednak zwykle można przeprowadzić bardziej zaawansowane wyszukiwanie za pomocą narzędzi do zarządzania pakietami, np.apt-cache show/policy/etc.
ignis
3

Nie musisz absolutnie używać polecenia aktualizacji przed zainstalowaniem pakietu, ale jeśli nie, możesz zaktualizować pakiet zaraz po jego zainstalowaniu.

Pamiętaj również, że musisz regularnie aktualizować system. Jeśli tego nie zrobisz, komputer będzie zagrożony (nie będziesz mieć najnowszych poprawek zabezpieczeń).


źródło
3

Jeśli właśnie dodałeś repozytorium oprogramowania (PPA lub repozytorium Debiana), musisz uruchomić, apt-get updateaby odpytać repozytorium i zasadniczo dodać wszelkie zawarte w nim pakiety do listy dostępnych programów APT. W przeciwnym razie APT nie rozpozna nazwy pakietu, który chcesz zainstalować.

Podczas instalowania nowego oprogramowania za pomocą wiersza polecenia warto zaktualizować informacje o repozytorium, aby nie instalować oprogramowania tylko w celu wykrycia, że ​​jest ono nieaktualne. Dotyczy to również aktualizacji oprogramowania.

Jeśli zastosujesz graficzną metodę instalowania lub aktualizowania oprogramowania, np. Odpowiednio Centrum oprogramowania Ubuntu lub Menedżer aktualizacji, klienci ci automatycznie sprawdzą, czy są dostępne absolutnie najnowsze wersje pakietów.

Biorąc to pod uwagę, jeśli instalujesz pakiet oprogramowania i przeprowadziłeś aktualizację zaledwie kilka minut lub nawet kilka godzin wcześniej, istnieje szansa, że ​​otrzymasz najnowszą wersję. Jeśli jednak instalujesz oprogramowanie, które jest często aktualizowane (takie jak alfa / beta lub najnowocześniejsze oprogramowanie), przed uruchomieniem czegokolwiek z repozytorium tego oprogramowania będziesz chciał uruchomić aktualizację.

terrygarcia
źródło