Odpowiedzi:
Krótko mówiąc, apt-get update
tak naprawdę nie instaluje nowych wersji oprogramowania. Zamiast tego aktualizuje listy pakietów aktualizacji dla pakietów wymagających aktualizacji, a także nowych pakietów, które właśnie przybyły do repozytoriów.
apt-get update
pobiera listy pakietów z repozytoriów i „aktualizuje” je, aby uzyskać informacje o najnowszych wersjach pakietów i ich zależnościach. Zrobi to dla wszystkich repozytoriów i umów PPA. Od http://linux.die.net/man/8/apt-get :
Służy do ponownej synchronizacji plików indeksów pakietów z ich źródeł. Indeksy dostępnych pakietów są pobierane z lokalizacji określonych w
/etc/apt/sources.list
(5). Aktualizację należy zawsze wykonać przed aktualizacją lub aktualizacją.
apt-get upgrade
pobierze nowe wersje pakietów istniejących na komputerze, jeśli APT wie o nich apt-get update
.
Od http://linux.die.net/man/8/apt-get :
Służy do instalowania najnowszych wersji wszystkich pakietów aktualnie zainstalowanych w systemie ze źródeł wymienionych w
/etc/apt/sources.list
(5). Pakiety aktualnie zainstalowane z dostępnymi nowymi wersjami są pobierane i aktualizowane; w żadnym wypadku aktualnie zainstalowane pakiety nie są usuwane, a pakiety, które nie zostały jeszcze zainstalowane, nie są pobierane i instalowane. Nowe wersje aktualnie zainstalowanych pakietów, których nie można zaktualizować bez zmiany statusu instalacji innego pakietu, pozostaną w aktualnej wersji. [Moje wyróżnienie] Najpierw należy wykonać aktualizację, aby apt-get wiedział, że dostępne są nowe wersje pakietów.
apt-get dist-upgrade
wykona to samo, co zostało wykonane przez apt-get upgrade
, a także inteligentnie poradzi sobie z zależnościami, aby usunąć przestarzałe pakiety lub dodać nowe. Zobacz tutaj: Co to jest „dist-upgrade” i dlaczego uaktualnia więcej niż „upgrade”?
Od http://linux.die.net/man/8/apt-get :
Oprócz wykonywania funkcji aktualizacji, ta opcja inteligentnie obsługuje także zmieniające się zależności z nowymi wersjami pakietów; apt-get ma „inteligentny” system rozwiązywania konfliktów iw razie potrzeby podejmie próbę uaktualnienia najważniejszych pakietów kosztem mniej ważnych. Plik
/etc/apt/sources.list
(5) zawiera listę lokalizacji, z których można pobrać żądane pliki pakietów. Zobacz także apt_preferences (5), aby poznać mechanizm zastępowania ogólnych ustawień dla poszczególnych pakietów.
Możesz łączyć polecenia &&
w następujący sposób:
sudo apt-get update && sudo apt-get install foo bar baz foo-dev foo-dbg
lub aby uzyskać najnowsze wersje możliwe zgodnie z wymaganiami zależności wersji:
sudo apt-get update && sudo apt-get dist-upgrade
Potrzebujesz sudo
obu razy, ale ponieważ sudo
domyślnie nie wyświetla monitu w ciągu około 5 minut od ostatniej sudo
operacji, hasło zostanie wyświetlone tylko raz (lub wcale).
apt-get update
zajmuje to trochę czasu, internet tutaj jest nadal prymitywny.
Wyszukiwarka Google może podać definicję prawie każdego polecenia terminala, podobnie jak --help w terminalu. Na przykład,
apt-get --help
sudo apt-get update
zasadniczo składa się z trzech części:
sudo
wykonuje następujące polecenie z funkcjami superużytkownika (root). Wiele działań wymagających modyfikacji plików systemowych lub instalowania aplikacji wymaga dodatkowych uprawnień.
apt-get
to narzędzie wiersza polecenia, którego Ubuntu używa do instalowania, usuwania i zarządzania pakietami oprogramowania
update
jest opcją dla programu apt-get, który aktualizuje listy pakietów z serwera w Internecie. Listy pakietów zawierają narzędzie apt-get z ważnymi informacjami na temat pakietów oprogramowania, które można zainstalować za pomocą apt-get. apt-get używa tych list do ustalenia, które oprogramowanie zainstalować, gdy otrzyma polecenie instalacji. Na przykład
sudo apt-get install guake
zainstalowałbym terminal Guake, ponieważ jest on obecnie wymieniony na lokalnych listach oprogramowania mojego komputera. Może to jednak nie być odpowiednia wersja lub jeśli program jest nowy, może nie być w ogóle dostępny. Dlatego podczas instalowania oprogramowania za pomocą apt-get zazwyczaj piszesz
sudo apt-get update
sudo apt-get install <package>
upewniając się, że apt-get wie, jak zainstalować najnowszą wersję pakietu.
Innym przydatnym źródłem informacji jest help.ubuntu.com
strona. Na przykład, jeśli przeszukałeś tę witrynę apt-get
, znajdziesz AptGet / Howto jako jeden z wyników.
&&
między nimisudo apt-get update&&sudo apt-get install foo bar baz
&&
oznacza, że drugie polecenie zadziała tylko wtedy, gdy pierwsze się powiedzie. Jeśli nie zależy ci na sukcesie pierwszego polecenia, użyj ;
zamiast niego.
Uruchamianie sudo apt-get update
po prostu upewnia się, że lista pakietów ze wszystkich repozytoriów i umów PPA jest aktualna. Jeśli to polecenie nie zostanie uruchomione, być może pojawią się starsze wersje instalowanych pakietów lub, co gorsza, problemy z zależnościami. Jeśli właśnie dodałeś PPA i nie dokonałeś aktualizacji, nic z PPA w ogóle nie będzie działać, ponieważ nie masz listy pakietów z tego PPA lub repozytorium.
W skrócie: jest wysoce zalecane, aby uruchomić sudo apt-get update
przed instalacją, ale to może być pominięte, jeśli są naprawdę mało czasu , chyba że zostały zmienione lub repozytoriów PPA od ostatniego apt-get update
.
Aktualizuje listę dostępnych programów na twoim komputerze.
Twój komputer ma listę (jak katalog), która zawiera całe dostępne oprogramowanie dostępne dla serwerów Ubuntu. Jednak dostępne oprogramowanie i wersje mogą się zmienić, więc „aktualizacja” trafi na serwer i zobaczy, jakie oprogramowanie jest dostępne w celu aktualizacji jego lokalnych list (lub katalogów).
Zauważ, że update
różni się od upgrade
. Aktualizacja, jak wspomniano powyżej, pobierze dostępne oprogramowanie i zaktualizuje listy, jednocześnie upgrade
instalując nowe wersje oprogramowania zainstalowanego na komputerze (rzeczywiste aktualizacje oprogramowania).
Aby faktycznie zaktualizować oprogramowanie (nie „aktualizować” list), wykonaj polecenie
sudo apt-get upgrade
który jest zwykle wykonywany po „aktualizacji”.
sudo apt-get install
? Instalujesz określone pakiety zamiast ogólnej aktualizacji?
Musisz uruchomić apt-get update
raz przed instalacją nowych pakietów, ponieważ aktualizuje to informacje o lokalnym repozytorium. Jeśli zamierzasz zainstalować wiele pakietów wkrótce po sobie, nie musisz uruchamiać apt-get update
. Możesz także zainstalować wiele pakietów jednocześnie, jeśli wpiszesz
sudo apt-get install package1 package2...
Podczas instalowania pakietów z wiersza polecenia za pomocą sudo apt-get install ...
(lub sudo aptitude install ...
) lub podczas uaktualniania ich z wiersza polecenia (z upgrade
lub dist-upgrade
zamiast install
), następujące informacje są uzyskiwane z konfiguracji systemu lokalnego, a nie z Internetu:
jakie pakiety są dostępne
jakie ich wersje są dostępne
skąd należy pobrać dostępne pakiety
Uruchomienie sudo apt-get update
(lub sudo aptitude update
) aktualizuje to w systemie lokalnym. Jest to krok, który faktycznie pobiera informacje o tym, które pakiety można zainstalować, w tym jakie aktualizacje aktualnie zainstalowanych pakietów są dostępne , ze źródeł internetowych.
Po zainstalowaniu pakietów z interfejsem GUI (Menedżer aktualizacji, Centrum oprogramowania lub Menedżer pakietów Synaptic) praca sudo apt-get update
jest wykonywana automatycznie. Podczas instalowania pakietów z wiersza polecenia tak nie jest i zawsze powinieneś to robić sam, chyba że zrobiłeś to niedawno .
Ponieważ informacje o tym, jakie zaktualizowane wersje pakietów są dostępne, można uzyskać, uruchamiając sudo apt-get update
(lub sudo aptitude update
), zaleca się uruchomienie tego przed instalacją dowolnego pakietu i konieczne jest uruchomienie go w celu zainstalowania najnowszych aktualizacji, nawet jeśli nie dodano ani nie usunięto żadnego oprogramowania Źródła (takie jak PPA) .
Pamiętaj, że jeśli zamierzasz wykonać wiele operacji zarządzania pakietami w tym samym czasie, nie musisz uruchamiać sudo apt-get update
przed każdym z nich. Tylko jeśli informacje nie były aktualizowane przez jakiś czas, powinieneś je uruchomić.
Jak wspomniano powyżej Eliah Kagan, można się spodziewać, że aplikacja GUI będzie działała apt-get update
przed apt-get install
/ apt-get upgrade
, ale właśnie odkryłem interesujący błąd 404 na stosunkowo nowej maszynie wirtualnej ofensywnie zabezpieczonej, która przez minutę mnie zaskoczyła.
Z wiersza poleceń uruchomiłem apt-get update
, a następnie ponownie spróbowałem wykonać polecenie Narzędzia systemowe / Aktualizacja oprogramowania i tym razem nie wystąpiły błędy 404.
Myślę, że nie zawsze można założyć, że apt-get update
jest uruchamiany z aplikacji GUI ...
apt-get
niż przez automatyczne sprawdzanie przeprowadzane przy użyciu narzędzia Software Updater / Update Manager? Czy korzystasz z proxy HTTP? Czy jesteś w stanie sprawić, by to się powtórzyło, czy może stało się to tylko raz? Jeśli jest to izolowana anomalia, zastanawiam się, czy problem może wynikać z tymczasowej błędnej konfiguracji serwera. Z jakiego lustra korzystasz? Więcej informacji może może poprawić moją odpowiedź. (Przy okazji, czy jest to zamierzone jako osobna odpowiedź, czy powinno być przekształcone w komentarz?)
Jak powiedziało wiele osób przede mną, aktualizuje to twoje lokalne repozytorium (lista pakietów).
Podczas próby instalacji możesz mieć problemy
apt-get install foobar
a foobar lub zależność nie mają najnowszej wersji w repozytorium. Może to być szczególnie problematyczne w przypadku ręcznego instalowania pliku .deb lub ppa od strony trzeciej.
Zasadniczo upewnia się, że twoja lista jest zgodna z listą główną .
Rozważmy przykład instalacji odtwarzacza multimediów VLC na Ubuntu:
sudo apt-get update
Sprawdza repozytoria pod kątem dostępnych aktualizacji.
Natomiast
sudo apt-get install vlc vlc-plugin-pulse mozilla-plugin-vlc
zainstaluje odtwarzacz multimedialny VLC z repozytoriów, których szukaliśmy.
Jeśli zalogowałeś się jako użytkownik root (administrator), nie musisz go używać sudo
, ponieważ masz już uprawnienia superużytkownika.
sudo apt-get update
polecenie za każdym razem, gdy instalujemy pakiety? Jaka jest wada, jeśli tego nie zrobimy?