Odpowiedzi:
apt-get i aptitude to różne interfejsy użytkownika, które są częścią tego samego systemu zarządzania pakietami, APT, Advanced Packaging Tool . Na przykład oba są skonfigurowane przy użyciu /etc/apt/apt.conf
, oba używają tej samej przestrzeni plików i formatów do reprezentowania stanu pakietu oraz tej samej przestrzeni plików do przechowywania pobranych plików .deb.
Różnią się tym, że ich wewnętrzny system reguł reprezentuje potencjalne konflikty między pakietami, jak je rozwiązywać (powiedzmy podczas apt-get dist-upgrade
vs. aptitude full-upgrade
) i jak wyrażać je podczas interakcji z użytkownikiem. Ogólnie rzecz biorąc, obaj mogą zrobić coś złego w trudnych sytuacjach, ale apt-get jest znacznie bardziej podatny na błędy niż aptitude.
Wiele dobrych rad jest już tutaj, ale dodam jedną rzecz, o której nikt nie wspomniał. Jeśli zdecydujesz się na zmianę, możesz uruchomić to polecenie, w zależności od tego, co robiłeś apt-get
:
aptitude keep-all
To polecenie resetuje aptitude
poczucie, które pakiety są sierotami i powinny zostać usunięte.
Oto powód, dla którego czasami jest użyteczny: zarówno teraz, jak apt-get
i aptitude
będzie śledził pakiety, które były automatycznie instalowane jako zależność od czegoś innego. Na przykład, jeśli zainstalujesz mpd
, możesz uzyskać lib-so-and-so
zależność. Robią to, więc jeśli później usuniesz mpd
, lib-so-and-so
zostanie również usunięty. Ale aptitude
i apt-get
posprzątaj to inaczej. aptitude
natychmiast próbuje usunąć wszystkie osierocone zależności; ale apt-get
tylko sugeruje, że biegniesz, apt-get autoremove
aby posprzątać. (Logika tego wszystkiego jest to, że dostał tylko biblioteki ponieważ mpd
potrzebne. Jeśli nie utrzymać mpd
, nie ma potrzeby biblioteki dłużej. Jeśli kolejny pakiet nadal zależy od niego, po czym oboje aptitude
iapt-get
będzie o tym wiedział i nie będzie próbował usunąć biblioteki).
O co mi chodzi? Cóż, jeśli widzisz ciągłe szturchnięcia do biegania apt-get autoremove
i przełączasz się na aptitude
, możesz być w szoku przy pierwszej próbie zainstalowania czegoś. aptitude
od razu spróbuje usunąć wszystkie sieroty. Zasadniczo będzie dobrze (w końcu są sierotami i nie są konieczne), ale jest jeden skomplikowany przypadek. Wszystkie meta-pakiety pulpitu obejmują złożony łańcuch zależności, w którym każdy program jest wciągany jako zależność wirtualnego opakowania pakietu. Na przykład, jeśli masz zainstalowany Gnome, ponieważ zainstalowałeś gnome
pakiet, wszystkie normalne programy na pulpicie zostały zainstalowane jako zależności. Jeśli odinstalowałeś jeden z tych programów (np. Ekiga lub Gedit), to w oczachaptitude
resztę pulpitu również należy usunąć. Pamiętaj, że aptitude
zawsze pyta przed usunięciem rzeczy, ale ludzie często wpisują „Y” bez czytania. Z mojego doświadczenia wynika, że jest to najczęstsza skarga / zamieszanie wśród osób początkujących w Debianie.
Dwie ogólne porady:
aptitude
lub apt-get
uważnie, zanim powiesz coś „tak”.aptitude -s safe-upgrade
lub aptitude -s install foo
. -s|--simulate
Flaga jest twoim przyjacielem.Na liście dyskusyjnej Debiana wiele lat temu powiedziano, że przejście z apt-get na aptitude jest ryzykowne. To dwie wersje Debiana (powiedzmy 10 lat) temu. Wydaje się, że wszystkie te problemy zostały już rozwiązane i na pewno nie widziałem problemów ani w Debianie, ani w Ubuntu.
apt-get
na aptitude
. Wtedy bardzo różnie obsługiwali wiele podstawowych funkcji. Z biegiem czasu stały się znacznie bardziej podobne i aptitude
osiągnęły dojrzałość tonową. W 90% przypadków teraz nie powinno być problemów po zmianie. Zobacz mój post dla jednego przypadku krawędzi.
Powiedziałbym również, śmiało i skorzystaj aptitude
.
Aptitude
ma lepsze zarządzanie zależnościami niż apt-get
. Pomoże to utrzymać niską liczbę osieroconych pakietów.
Czytałem jakiś czas temu, że aptitude
ma lepszy algorytm aktualizacji dist w porównaniu do apt-get
. Ale nie jest to funkcja zabójcza, ponieważ nie jest używana tak często w czasie życia systemu.
Dodatkowo będziesz mieć więcej rzeczy połączonych w jednym narzędziu. Zamiast pamiętać kiedy zadzwonić apt-get
, apt-cache
czy dpkg
i który przełącza po prostu użyć umiejętności i uzyskać większość rzeczy zrobić.
Jeśli chodzi o komplikacje przy przełączaniu „w środku”: nie pamiętam, żeby je miałem, kiedy to robiłem.
Czy nie są one tylko innym interfejsem do tego samego zaplecza?
aptitude
jest bardziej funkcjonalnym interfejsem ...
dpkg
. ale dpkg
po prostu instaluje pakiety; to interfejsy są odpowiedzialne za wyszukiwanie, rozwiązywanie zależności i pobieranie.
Z mojego doświadczenia wynika, że mają inny sposób przypinania wersji pakietów. W moim przypadku powiedziałem aptitude, aby zablokował niektóre pakiety, zakładając, że będę bezpieczny przed przyszłymi aktualizacjami. Myliłem się; menedżer aktualizacji zaplanowany przez crona, który używa apt-get, przechodzi do aktualizacji do mojego przerażenia.
Drats, kiedy to pisałem, poszukałem google i odkryłem, że błąd ( # 557580 aptitude nie stosuje się do pinów w preferencjach. D / *) został już naprawiony!
Korzystam zarówno z apt-get, jak i aptitude bez żadnego problemu: mam to samo pytanie ... Dlaczego ludzie to mówią ??? :RE
Kontynuuj, i nie martw się: aptitude to po prostu tekstowe GUI dla apt-get, którego możesz nawet użyć jako aplikacji wiersza poleceń, na przykład apt-get install foo
jest taki sam jak aptitude install foo
.
pozdrowienia
apt-get
oferują również automatyczne usuwanie pakietów zainstalowanych tylko jako zależności. Pozostała różnica w tym względzie polega na tym, że aptitude
natychmiast usuwa zależności (odpowiednio), ale apt-get
tylko zachęca do uruchomienia polecenia apt-get autoremove
. Ale teraz oba śledzą zależności w ten sam sposób. Wciąż jednak różnią się pod względem obsługi złożonych zależności i przypadków skrajnych (bardzo skomplikowane instalacje lub usunięcia), ale dla większości osób i większości sytuacji działają one teraz tak samo.
aptitude
usunie je od razu, aleapt-get
poprosi tylko o ich usunięcie poprzez wprowadzenie poleceniaapt-get autoremove
. Zasadniczo będą chcieli usunąć te same elementy. Zobacz ten link, aby zapoznać