Nie rozumiem, dlaczego w minimalnej instalacji są dwa różne programy do zainstalowania oprogramowania. Czy oni nie robią tego samego? Czy jest duża różnica? Wszędzie czytałem, żeby użyć aptitude zamiast apt-get, ale wciąż nie znam różnicy
Nie rozumiem, dlaczego w minimalnej instalacji są dwa różne programy do zainstalowania oprogramowania. Czy oni nie robią tego samego? Czy jest duża różnica? Wszędzie czytałem, żeby użyć aptitude zamiast apt-get, ale wciąż nie znam różnicy
Odpowiedzi:
aptitude jest opakowaniem dla dpkg, podobnie jak apt-get / apt-cache, ale jest narzędziem do wyszukiwania / instalacji / usuwania / wysyłania zapytań. Kilka przykładów, których apt może nie dostarczyć:
$ aptitude why libc6
i w64codecs Depends libc6 (>= 2.3.2)
$ aptitude why-not libc6
Unable to find a reason to remove libc6.
$ aptitude show libc6
Package: libc6
State: installed
Automatically installed: no
Version: 2.9-4ubuntu6
Priority: required
Section: libs
Maintainer: Ubuntu Core developers <ubuntu-devel-discuss@lists.ubuntu.com>
Uncompressed Size: 12.1M
Depends: libgcc1, findutils (>= 4.4.0-2ubuntu2)
Suggests: locales, glibc-doc
Conflicts: libterm-readline-gnu-perl (< 1.15-2),
tzdata (< 2007k-1), tzdata-etch, nscd (< 2.9)
Replaces: belocs-locales-bin
Provides: glibc-2.9-1
Description: GNU C Library: Shared libraries
Contains the standard libraries that are used by nearly all programs
on the system. This package includes shared versions of the standard
C library and the standard math library, as well as many others.
aptitude
wiedzą, że nawet najnowsze apt
nie są w stanie: aptitude search '~i linux'
wyszukiwać pakietów z linux
zainstalowaną nazwą lub opisem; aptitude search '~o'
wyświetla listę przestarzałych pakietów (zainstalowane pakiety, które nie są już udostępniane przez żadne repozytorium); aptitude search '!~M ~i'
pokazuje pakiety, które nie są oznaczone jako zainstalowane automatycznie; aptitude search '~i lib.*-dev'
pokazy zainstalowano bibliotek rozwoju i można zastąpić search
z markauto
lub unmarkauto
oznaczyć te pakiety jako zainstalowane automatycznie lub ręcznie.
mikeage@linode ~$ aptitude -h | tail -n 1
This aptitude does not have Super Cow Powers.
mikeage@linode ~$ apt-get -h | tail -n 1
This APT has Super Cow Powers.
mikeage@linode ~$ aptitude moo
There are no Easter Eggs in this program.
mikeage@linode ~$ apt-get moo
(__)
(oo)
/------\/
/ | ||
* /\---/\
~~ ~~
...."Have you mooed today?"...
mikeage@linode ~$ aptitude -v moo
There really are no Easter Eggs in this program.
mikeage@linode ~$ aptitude -vv moo
Didn't I already tell you that there are no Easter Eggs in this program?
mikeage@linode ~$ aptitude -vvv moo
Stop it!
mikeage@linode ~$ aptitude -vvvv moo
Okay, okay, if I give you an Easter Egg, will you go away?
mikeage@linode ~$ aptitude -vvvvv moo
All right, you win.
/----\
-------/ \
/ \
/ |
-----------------/ --------\
----------------------------------------------
mikeage@linode ~$ aptitude -vvvvvv moo
What is it? It's an elephant being eaten by a snake, of course.
Oficjalne narzędzie, które jest obecnie używane w instalatorze Debiana i zalecane w uwagach do wydania, to aptitude
.
Aptitude oferuje interfejs przekleństw (gdy jest uruchamiany bez żadnego parametru) oraz interfejs wiersza poleceń, który może zrobić prawie wszystko, co apt-cache
/ apt-get
robi. Ma także lepszy mechanizm rozpoznawania zależności, który umożliwia przeglądanie wielu rozwiązań. Nawet podczas korzystania z wersji wiersza poleceń możesz wchodzić w interakcje z proponowanym rozwiązaniem i udzielać dodatkowych zamówień lub wskazówek (takich jak instalowanie lub usuwanie pakietu zalecanego przez inny).
Ale aptitude opiera się na bibliotece libapt (nie jest to bezpośrednie opakowanie dpkg) i jako takie zależy od apt
pakietu, więc nie możesz zainstalować aptitude bez apt-get (który również znajduje się w pakiecie apt).
$ dpkg --status aptitude| grep Depends
Depends: libapt-pkg-libc6.9-6-4.7, [...]
$ dpkg --status apt|grep Provides
Provides: libapt-pkg-libc6.9-6-4.7
$ dpkg --search /usr/lib/libapt-pkg-libc6.9-6.so.4.7 /usr/bin/apt-get
apt: /usr/lib/libapt-pkg-libc6.9-6.so.4.7
apt: /usr/bin/apt-get
Aby dowiedzieć się więcej na temat interakcji apt / dpkg / aptitude, możesz sprawdzić schemat wykonany przez Daniela Burrowsa (głównego autora aptitude). Kolejny schemat przedstawia informacje przechowywane przez różne narzędzia do zarządzania pakietami: Mapa plików stanu apt i dpkg .
Możesz także przeczytać mój artykuł apt-get, aptitude,… wybrać odpowiedni menedżer pakietów dla siebie
aptitude
pamięta, które pakiety celowo zainstalowałeś i które zostały automatycznie zainstalowane w celu spełnienia zależności. Po usunięciu pakietu aptitude usunie te automatycznie zainstalowane pakiety, aby utrzymać porządek w systemie. apt-get
nie jest taki mądry.
aptitude
szybko stanie się niezbędnym narzędziem, gdy użyjesz różnych repozytoriów z różnymi wersjami pakietu. Wyobraź sobie, że pracujesz z backports.org lub nieoficjalnymi repozytoriami, takimi jak debian-multimedia.org . Następnie aptitude
pokaże (na dole strony szczegółów określonego pakietu) dostępny numer wersji i pozwoli ci go wybrać.
Jeśli wpadniesz w sytuację, w której programy powodują konflikty z powodu takiego użycia nieoficjalnych repozytoriów, zobaczysz na górze ekran „Broken: ...” . Możesz wpisać l ~ b (limit / flag / broken) i po prostu uzyskać listę pakietów, które są ze sobą w konflikcie. Znacznie ułatwia ręczne rozwiązanie konfliktu.
Ponadto możesz użyć „ l
”, aby ograniczyć listę pakietów. Wyobraź sobie, że szukasz pakietów zaczynających się od „ openoffice ”, a następnie naciśnij „ l
” i wpisz „ ^openoffice
” (jest to wyrażenie regularne), a zobaczysz tylko te pakiety. Wybierz z menu „płaską listę pakietów”, a szybko osiągniesz swój cel.
Kompletny podręcznik jest bardzo duży, oferując o wiele więcej filtrów i możliwości. Nawet jeśli ich nie znasz, aptitude
jest to przydatny zamiennik apt-get
i możesz go używać z typowymi parametrami, takimi jak:
aptitude install ... (install or upgrade a package)
aptitude remove ... (remove the binary portions of a package but preserve your /etc configuration)
aptitude purge ... (remove the package completely including your configuration)
apt-get autoremove
teraz usuwa pakiety, które zostały zainstalowane jako zależności pakietu, który został usunięty.
apt
i może to zrobić mieszankę rzeczy, które apt-get
i apt-cache
czynili. Na przykład apt search foo
wyświetli listę pakietów, które zawierają foo
nazwę lub opis. apt install foo
zainstaluje pakiet o nazwie foo
jeśli jest dostępny i apt policy foo
wyświetli aktualnie zainstalowaną wersję oraz wszystkie dostępne wersje pakietu foo
.
aptitude
Jeszcze może zrobić więcej niż apt
tylko zwykły apt
jest często dużo szybciej.
Oprócz zapewnienia ładnego interfejsu użytkownika konsoli, gdy uruchamiasz aptitude
bez argumentów, łączy różne apt-*
polecenia (i dselect
) w jednym narzędziu.
Aby wyszukać pakiet i zainstalować go za pomocą apt-get:
apt-cache search somepkg
apt-get install somepkg
.. ale z aptitude to to samo polecenie:
aptitude search somepkg
aptitude install somepkg
aptitude
ma kilka dodatkowych funkcji, takich jak aptitude changelog somepkg
i wstrzymywanie pakietów (aby zatrzymać ich aktualizację) - nic, czego nie można osiągnąć za pomocą innych poleceń / metod, jest po prostu bardziej jednolity i przyjemny w użyciu.
jak wiesz, kiedy instalujesz pakiet, jeśli potrzebuje on innych pakietów (zależności), zostaną one również pobrane i zainstalowane. aptitude śledzi, w momencie instalacji, pakiety, które są dołączone do zainstalowanego, więc kiedy usuniesz ten drugi, aptitude poprosi cię o usunięcie innych (teraz nieużywanych) zależności „osieroconych”. apt-get zachowa je w systemie cicho, jeśli usuniesz pakiet „główny”.
wygląda na to, że najnowsze wersje apt-get mają podobną funkcjonalność: http://www.psychocats.net/ubuntu/aptitude
aptitude
lub apt
w rzeczywistości nie przechowuje listy pakietów, które zostały zainstalowane jako zależności dla danego pakietu. Po prostu śledzi, czy pakiet został zainstalowany ręcznie czy automatycznie. A jeśli pakiet został oznaczony jako zainstalowany automatycznie i żaden inny pakiet go nie uzależnia ani nie zaleca, zostanie usunięty za pomocą apt autoremove
lub aptitude dist-upgrade
.
Największą różnicą jest to, że aptitude jest zaprojektowane tak, aby było interaktywne, a narzędzia apt lepiej nadają się do pracy skryptowej. Możesz użyć tego drugiego, tj. Narzędzi apt, interaktywnie w porządku, z dużo większym wysiłkiem, aby uzyskać te same wyniki, które zapewnia aptitude. Jeśli z jakiegoś powodu musiałeś zdecydować się na jedno lub drugie narzędzie, musisz zdecydować, ile wysiłku chcesz włożyć w zarządzanie pakietami.
Jedną z poważnych zalet umiejętności jest umiejętność obliczania zależności. Po pierwsze, może poradzić sobie ze skomplikowanymi zależnościami bez interwencji użytkownika, co często kończy się niepowodzeniem. Ale jeśli nie podoba ci się rozwiązanie, które ci przedstawił (i oceni własne rozwiązanie, aby wykazać, jak dobrze myśli, że jest), możesz poprosić go o odejście i zaproponowanie innego rozwiązania, aby rozwiązać konflikt.
To naprawdę robi niesamowite zarządzanie pakietami.
Największą różnicą jest: wpisz „aptitude” bez żadnych parametrów.
Daje ci interfejs tekstowy, możesz użyć klawiatury do wyszukiwania / nawigacji itp., Zobacz informacje o zależnościach, odwrotnych zależnościach, wszystkich dostępnych wersjach pakietu, i możesz wykonywać na nich dowolne operacje menedżera pakietów z tego ekranu.
Możesz nacisnąć „g”, aby przejrzeć zmiany, w razie potrzeby zmodyfikować uzupełnienia i usunięcia pakietów oraz zastosować wszystkie oczekujące operacje.
Świetny wizualny sposób zarządzania pakietami przez połączenie ssh lub zwykły stary terminal.