Czy może powodować problemy z przejściem z apt-get na aptitude?


8

Zastanawiałem się nad przejściem na aptitude, ale słyszałem, jak ludzie mówią: „jeśli już korzystasz z apt-get, powinieneś poczekać, aż przełączy się kolejna instalacja”. Dlaczego ludzie to mówią? Jakie problemy (jeśli występują) może to powodować?

Odpowiedzi:


8

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-upgradevs. 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.


2
Świetna, jasna odpowiedź. Dodatkowym szczegółem jest to, jak / kiedy usuwają automatycznie zainstalowane zależności. aptitudeusunie je od razu, ale apt-getpoprosi tylko o ich usunięcie poprzez wprowadzenie polecenia apt-get autoremove. Zasadniczo będą chcieli usunąć te same elementy. Zobacz ten link, aby zapoznać
Telemachus

5

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 aptitudepoczucie, 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-geti aptitudebę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-sozależność. Robią to, więc jeśli później usuniesz mpd, lib-so-and-sozostanie również usunięty. Ale aptitudei apt-getposprzątaj to inaczej. aptitudenatychmiast próbuje usunąć wszystkie osierocone zależności; ale apt-gettylko sugeruje, że biegniesz, apt-get autoremoveaby posprzątać. (Logika tego wszystkiego jest to, że dostał tylko biblioteki ponieważ mpdpotrzebne. Jeśli nie utrzymać mpd, nie ma potrzeby biblioteki dłużej. Jeśli kolejny pakiet nadal zależy od niego, po czym oboje aptitudeiapt-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 autoremovei przełączasz się na aptitude, możesz być w szoku przy pierwszej próbie zainstalowania czegoś. aptitudeod 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ś gnomepakiet, 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 oczachaptituderesztę 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:

  1. Zawsze czytaj dane wyjściowe aptitudelub apt-getuważnie, zanim powiesz coś „tak”.
  2. Pamiętaj, że zawsze możesz wykonać próbę przy użyciu aptitude -s safe-upgradelub aptitude -s install foo. -s|--simulateFlaga jest twoim przyjacielem.

4

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.


1
Czy masz link do posta na liście mailingowej?
Matthew

Matthew, czy wyobrażasz sobie, że przechowuję tutaj idealnie zindeksowane archiwum całej listy mailingowej użytkowników debian? Kiedy z powyższego jasno wynika, że ​​nawet nie pamiętam roku?
CarlF

@Matthew: jakiś czas temu (Sarge lub wczesne Etch), wiele osób martwiło się przejściem z apt-getna aptitude. Wtedy bardzo różnie obsługiwali wiele podstawowych funkcji. Z biegiem czasu stały się znacznie bardziej podobne i aptitudeosią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.
Telemachus

2

Powiedziałbym również, śmiało i skorzystaj aptitude.
Aptitudema lepsze zarządzanie zależnościami niż apt-get. Pomoże to utrzymać niską liczbę osieroconych pakietów.
Czytałem jakiś czas temu, że aptitudema 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-cacheczy dpkgi 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.


1

Czy nie są one tylko innym interfejsem do tego samego zaplecza?


2
aptitudejest bardziej funkcjonalnym interfejsem ...
quack

To może być. Ale interfejs z większą liczbą funkcji niekoniecznie oznacza inny backend.
Svish

2
nie, masz rację, oba są front-endami dpkg. ale dpkgpo prostu instaluje pakiety; to interfejsy są odpowiedzialne za wyszukiwanie, rozwiązywanie zależności i pobieranie.
quack quixote

ale wyszukiwanie, pobieranie i rozwiązywanie zależności niczego nie zepsuje. lub jeśli tak się stanie, moim zdaniem byłoby to bardzo dziwne ...
Svish

2
właśnie zauważyłem twój ostatni komentarz. pamiętaj, że to frontendy decydują o tym, co zainstalować; dpkg właśnie wykonuje instalację. jeśli coś się psuje, dzieje się tak zwykle dlatego, że rozwiązywanie zależności nie powiodło się lub dlatego, że użytkownik wyłączył rozwiązywanie zależności (np. z opcją --force ).
szarlatan

1

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!


-1

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 foojest taki sam jak aptitude install foo.

pozdrowienia


Nie wierzę, że są takie same. O ile nic się nie zmieni, aptitude wykona więcej śledzenia zależności i usunie wszystkie pakiety, które automatycznie zainstalował, a apt-get tego nie zrobi. Oznacza to, że jeśli foo zależy od paska, a ty instalujesz i usuwasz foo za pomocą apt-get, bar pozostanie w twoim systemie. Jeśli zrobisz to samo z aptitude, nie zrobi tego.
William Pursell

Masz rację: patrz komentarze ~ kwakra poniżej.
dag729

@William, @ dag729: Obecne wersje apt-getoferują również automatyczne usuwanie pakietów zainstalowanych tylko jako zależności. Pozostała różnica w tym względzie polega na tym, że aptitudenatychmiast usuwa zależności (odpowiednio), ale apt-gettylko 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.
Telemachus
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.