Rozumiem apt
, że polecenie update
, aktualizuje listę dostępnych pakietów, ale nie aktualizuje oprogramowania, które zostało już zainstalowane z tych pakietów.
Rozumiem również, że upgrade
aktualizuje oprogramowanie, które już zainstalowałem, z pakietu, który zaktualizowałem update
zgodnie z powyższym opisem.
Jaki był powód, dla którego programiści Ubuntu / Debian dokonali tego podziału update
i upgrade
zamiast tego pracowali z jednym poleceniem, aby wykonać oba zadania?
Jest to raczej pytanie dotyczące filozofii architektury deweloperów Ubuntu.
package-management
upgrade
updates
architecture
history-of-ubuntu
użytkownik9303970
źródło
źródło
alias
tak. Sposób uniksowy to jedno polecenie, które i tak robi tylko jedną rzecz, więc oddzielanie lepiej pasuje do sposobu uniksowego, jeśli argumenty „teologiczne / filozoficzne” też są dla ciebie rzeczą.apt dist-upgrade
i naciśniesz „n”, aby anulować, to zmień zdanie, oszczędzę przepustowość, ponieważ nie „zaktualizuje się” w celu ponownego wykonaniaapt dist-upgrade
polecenia ... Nawet jeśli aktualizacja „dist-upgrade” zrobiła aktualizację automatycznie istnieją powody, by „aktualizować”, które nie obejmują „instalacji”, „aktualizacji” lub „aktualizacji”, więc polecenie „aktualizacja” i tak by istniało.apt update
powinno wystarczy uruchomić automatycznie w razie potrzeby.Odpowiedzi:
Uaktualnienie to nie jedyny czas, który może być potrzebny
apt-get update
, i nie chcę uaktualniać za każdym razem, po prostu chcę zaktualizować listy pakietów.apt-get upgrade
Działa dobrze może zależećapt-get update
prowadzony jest nie tak dawno temu, ale wtedy, że jest prawdąapt-get remove
iapt-get install
jak dobrze! Czy to wszystko powinno oznaczaćapt-get update
? Oczywiście nie! Jeśli chodzi o efektywność zasobów i czystość projektu, jeśli operacja jest wspólna dla wielu innych operacji, należy ją uwzględnić.I odwrotnie, biorąc pod uwagę to
apt-get remove
iapt-get install
może również zależeć odapt-get update
tego, czy ostatnio został pomyślnie zakończony, czy ma to sensapt-get upgrade
dla każdego uruchomieniaapt-get update
? Nie, znowu, ponieważ to, co zamierzam zrobić, może być sprzeczne z tymapt-get upgrade
, co zrobię.źródło
Za każdym razem, gdy zmieniasz źródła oprogramowania, musisz uruchomić polecenie
sudo apt update
, aby odświeżyć listę dostępnego oprogramowania. Następnie możesz wyszukać dostępne pakiety w nowo dodanym źródle oprogramowania i / lub je zainstalować.Ta komenda
sudo apt upgrade
jest terminalowym odpowiednikiem aktualizacji listy zainstalowanych pakietów za pomocą aplikacji Software Updater. Różni się to od zwykłego przepływu pracy polegającego na dodawaniu nowego źródła oprogramowania, aktualizowaniu listy dostępnego oprogramowania w celu uwzględnienia pakietów z nowego źródła oprogramowania i instalowaniu nowych pakietów z nowo dodanego źródła oprogramowania, więc jest to wygodniejsze i mniej mylące tosudo apt update
isudo apt upgrade
są osobnymi poleceniami.Jest to także mniej mylące, aby oddzielić
sudo apt update
isudo apt upgrade
dlatego po uruchomieniusudo apt update
z powodzeniem zostały potwierdzone, że masz połączenie z Internetem. Jeśli wystąpi problem podczassudo apt upgrade
późniejszego uruchomienia , bardziej prawdopodobne jest, że będzie to problem z zarządzaniem pakietami niż problem z połączeniem internetowym, a wynikisudo apt upgrade
zapewnią wskazówki do diagnozowania i rozwiązywania problemu.źródło
Historia różnicy między
update
iupgrade
jest całkiem fajna.Dawno, dawno temu - powiedzmy około 2000 lat, zanim istniało Ubuntu - przepustowość i miejsce na dysku były znacznie bardziej ograniczone ... choć ekspansywne w porównaniu do połowy lat 90. Internet szerokopasmowy dopiero się zaczynał, a połączenie telefoniczne było nadal ważnym sposobem na uzyskanie dostępu do Internetu. Wielkie dyski nadal miały zaledwie kilkaset MB. Apt był błyszczący i nowy, radykalny i rewolucyjny, zbudowany na dpkg.
Gdy się nad tym zastanowić, baza danych apt jest cudem: jest to najdokładniejsza baza danych wszystkich programów ze wszystkich znanych repozytoriów. Jest wystarczająco szczegółowy, aby obliczyć zależności i zidentyfikować dostępne aktualizacje, ale wystarczająco mały, aby przesyłać przez modemy dial-up czasu i przechowywać na małych dyskach czasu. Aktualizacja bazy danych przez telefon może zająć kilka minut w przypadku dobrego połączenia. Choć to już dawno, ręczne wyszukiwanie aktualizacji pakietów (przed apt) może zająć wiele godzin .
W tamtym czasie dystrybucje były budowane inaczej - bez ciągłej integracji, bez testów dymu (no cóż, niewiele testów!), Dopiero zaczynały się budować farmy. Uaktualnienia musiały być cofane częściej niż teraz. Wielu użytkowników zdecydowało się nie aktualizować niektórych pakietów z różnych powodów lub wybrać tylko niektóre aktualizacje dzisiaj (w celu przetestowania ręcznie), a inne aktualizacje jutro.
W ciągu kolejnych 15 lat lub tak, że narzędzia nie zmieniły się znacznie, dlatego wciąż mamy oddzielne
update
iupgrade
działania. Przepływ pracy użytkownika ewoluował wraz z poprawą niezawodności dystrybucji, a znaczna część zarządzania źródłami / aktualizacjami / aktualizacjami, które wcześniej były ręczne, została powoli ukryta za warstwami automatyzacji (software-updater
,unattended-upgrades
).Modernizacja narzędzi pakietu oprogramowania jest jednym z powodów, dla których ostatnio pojawiły się Snaps oraz AppImage i Flatpack, ale to kolejny rozdział.
źródło
Robią osobne rzeczy z wielu powodów.
Jednym z przykładów jest pytanie, które opublikowałem i na które odpowiedziałem sam: Jak można usunąć PPA za pomocą GUI? . Na tym ekranie chcemy usunąć umowy PPA, a nie uaktualnić oprogramowania:
Po usunięciu PPA oprogramowanie GUI uruchamia się automatycznie
sudo apt update
. Jeśli chcesz usunąć PPA z wiersza poleceń, musisz uruchomićsudo apt update
po usunięciu PPA z listy źródeł.Bez osobnej
apt update
funkcji nie można usunąć PPA !.Innym przykładem jest uruchomienie
sudo apt update
z wiersza poleceń, aby odświeżyć źródła. Następnie możesz dowiedzieć się, co można zaktualizować bez faktycznej aktualizacji:Patrząc na dane wyjściowe, możesz zdecydować, że dany pakiet zostanie „przypięty” lub „wstrzymany” i nie zostanie zaktualizowany przy następnym uruchomieniu programu „sudo apt upgrade”. Gdyby istniał pojedynczy proces „aktualizacji / aktualizacji”, utraciłbyś tę zdolność .
Bez osobnego
apt update
nie widać, co by było ulepszone!źródło
yum
idnf
automatycznie uruchom odpowiednik aktualizacji podczas wykonywania odpowiednich operacji. Na przykład odpowiednikapt list --upgradable
toyum check-update
, który aktualizuje listę pakietów, jeśli nie była ostatnio aktualizowana. Z pewnością jest to możliwe, jak widać w innych menedżerach pakietów.sudo apt update
po usunięciu repozytorium.yum
/dnf
ponownie, operacja aktualizacji jest automatyczna, więc wyłączone źródło jest automatycznie usuwane z następnej operacji. Znów coś, co jest całkowicie możliwe.yum
niednf
są zainstalowane. Zainstalowanie jednego z nich w celu zastąpieniaapt update
zwiększyłoby narzut systemu i czas nauki.Można zapytać, dlaczego pobrać program z formalnego repozytorium Ubuntu, a
apt
następnie go zainstalować? Jaką różnicę by to zrobiło, gdyby najpierw go pobrać, a następnie zainstalować, zamiast pobierać i instalować w jednej operacji?Dobrze po przeczytaniu komentarzy i myśli więcej o tym rozumiem, że jest to spowodowane tym filozofii Unix , wykorzystując modułowy filozofia mówi, że w zasadzie „Każdy program ma jedno”: Najpierw pobierz, a następnie zainstalować --- każda akcja z własnym programem dedykowanym .
źródło
W żadnej dystrybucji nie ma jednej komendy aktualizacja-aktualizacja, jeśli tam jest, to nic innego jak predefiniowane aliasy, jak zakładam. Te aliasy można łatwo ustawić również w Ubuntu, edytując ~ / .bashrc.
Aktualizacja służy do ponownej synchronizacji repozytoriów i naprawiania wszelkich problemów. Następnie, podczas aktualizacji, faktycznie aktualizujesz zainstalowane pakiety. Ale kiedy Dist-Upgrade, aktualizujesz w całości. W Arch Linux, kładą nacisk na pełną aktualizację z Syu. Możesz zrobić to samo w Ubuntu. W przypadku pełnej aktualizacji faktycznie rozwiązuje się wszelkie problemy związane z zależnościami, które mogą wynikać z częściowej aktualizacji.
Mam nadzieję, że to pomoże. Proszę wybaczyć surowy tekst jako pisanie na telefonie.
źródło
yum
idnf
automatycznie wykonaj odpowiednikupdate
większości operacji, jeśli buforowane dane są wystarczająco stare. Zobacz na przykład dyskusję na temat zmiany tego zachowania w dnf