Jaka jest różnica między dpkg a aptitude / apt-get?


Odpowiedzi:


168

Nie, dpkgtylko instaluje pakiet, więc dpkg -i packageName.debspowoduje to zainstalowanie tylko tego pakietu Deb i powiadomi o wszelkich zależnościach, które należy zainstalować, ale nie zainstaluje ich i nie skonfiguruje, packageName.debponieważ cóż ... zależności są nie tam.

apt-getto system zarządzania pakietami, który obsługuje instalację pakietów Deb w dystrybucjach Linuksa opartych na Debianie . System zarządzania pakietami to zestaw narzędzi, które pomogą Ci łatwo instalować, usuwać i zmieniać pakiety. To apt-getjest jak sprytne dpkg.

Lubię myśleć o osi czasu w ten sposób (poniżej mówię tylko z doświadczenia. Ma on na celu dać ci tylko wyobrażenie o tym wszystkim):

  • Wymyślili sposób na „przechowywanie” plików aplikacji w „pakiecie”, aby można je było łatwo zainstalować. Tak narodził się pakiet Deb ( .debplik rozszerzenia ).

    .debPlik zawiera pliki potrzebne do uruchomienia aplikacji, a także (I jak to nazwać) „metadane”, która posiada inne informacje, takie jak nazwy w zależności od potrzeb aplikacji. Jeśli chcesz zobaczyć zawartość .debpliku, możesz użyć polecenia dpkg -c packageName.deb, a jeśli chcesz zobaczyć te informacje o „metadanych”, użyj polecenia dpkg -I pacakgeName.deb(a jeśli chcesz zobaczyć tylko zależności, zrób to dpkg -I packageName.deb | grep Depends).

  • Potrzebowali narzędzia do zainstalowania tych .debplików, więc wymyślili to dpkgnarzędzie. To narzędzie jednak po prostu zainstaluje .debplik, ale nie zainstaluje swoich zależności, ponieważ nie ma tych plików i nie ma dostępu do „repozytoriów”, z których można pobrać zależności.

  • Następnie wymyślili apt-get, co automatyzuje problemy w poprzednim punkcie. Pod maską apt-getjest w zasadzie dpkg(lubię myśleć o nim jako apt-geto front-endie dpkg), ale sprytny, który będzie szukał zależności i je instalował. Sprawdza nawet aktualnie zainstalowane zależności i określa te, które nie są używane przez żadne inne pakiety, i informuje, że możesz je usunąć.

aptitudepotem przyszedł. Korzysta z biblioteki apt-getzastosowań i faktycznie ma interaktywny UI (interfejs użytkownika). Jeśli chcesz zobaczyć ten interfejs, po prostu wpisz aptitudeterminal. To aptitude . Wykorzystuje biblioteki, aby zapewnić więcej opcji i dodatków niż apt-get. Na przykład aptitudeautomatycznie usunie odpowiednie pakiety, podczas gdy apt-getpotrzebuje do tego osobnego polecenia. Ale w końcu robienie sudo aptitude install packageName.debpowinno być co najmniej takie samo jak sudo apt-get install packageName.deb. Mogą istnieć subtelne różnice tu i tam, o których nie wiem, ale oboje będą szukać zależności i robią wszystkie te rzeczy. Możesz przeczytać odpowiedź tutaj, aby uzyskać więcej informacji na temat różnic między aptitudei apt-get.

Ponadto aptitudenie ma super krowich mocy.

EDYCJA: Najwyraźniej tak. aptitude -v[v[v[v[v]]]] moo.

aptitudemoże nie być domyślnie zainstalowany. Aby go zainstalować, zrób sudo apt-get install aptitudelub kliknij: aptitudeZainstaluj aptitude .


Dodatkowy

Poniższe informacje nie odpowiadają bezpośrednio „ Jaka jest różnica między dpkg a aptitude / apt-get? ”, Ale przyczynia się do uzyskania większego obrazu.


Od Carlos Campderrós ' komentarzu poniżej :

gdebito kolejne narzędzie będące mieszanką między apt-geti aptitude. Kiedy użyjesz go do zainstalowania .debpakietu ( gdebi packageName.deb), zidentyfikuje brakujące zależności, zainstaluje je za pomocą apt-get, a następnie ostatecznie zainstaluje i skonfiguruje pakiet za pomocą dpkg. Ma nawet prosty i czysty interfejs GUI, który zawiera informacje o .debpakiecie, plikach zawartych w pakiecie oraz o zależnościach, które należy zainstalować. Aby zobaczyć ten GUI, zrobiłbyś gdebi-gtk packageName.deb. Możesz gdebispróbować, instalując go za pomocą sudo apt-get install gdebilub klikając: gdebiZainstaluj gdebi .


Nie chcę nikogo mylić, ale po prostu, aby dać ci inną część obrazu, istnieje inny popularny format pakietu Linux o nazwie RPM, a jego pliki mają .rpmrozszerzenie. Ten format pakietu jest używany w dystrybucjach Linuksa opartych na RPM (takich jak Red Hat, CentOS i Fedora). Używają polecenia, rpmaby zainstalować pakiet i yumjest to front-end, jest to sprytny. Więc ich .rpmpliki są naszymi .debplikami, ich rpmnarzędzie jest naszym dpkgnarzędziem, a ich yumjest naszym apt-get.

Od Paddy Landau „s komentarzu poniżej :

aliento narzędzie, które konwertuje pakiety .rpmi .deb. Więc jeśli kiedykolwiek wpadniesz w sytuację, w której masz .rpmpakiet i chcesz zainstalować na Ubuntu (lub innej dystrybucji opartej na Debianie), możesz użyć polecenia, alien rpm_packageName.rpmaby go przekonwertować .deb, a następnie zainstalować przy użyciu dpkg. Możesz zrobić odwrotnie (przekonwertować .debna .rpm) za pomocą alien -r packageName.deb.


5
To było bardzo przydatne i dokładnie tego szukałem. Tx!
Aniket Thakur,

4
Możesz także użyć gdebi( apt-get install gdebi-core), która łączy apt-get/ aptitudez dpkg. Wywołujesz go za pomocą, gdebi some_package.deba on przeanalizuje jego zależności, wezwie apt-getdo zainstalowania brakujących, a kiedy wszystkie zależności zostaną spełnione, a następnie zadzwoni, dpkgaby w końcu zainstalować pakiet.
Carlos Campderrós

2
@Alaa W Extra można również wspomnieć, że alienkonwertuje pakiety między .rpmi .deb. Jest to przydatne w przypadku pakietów dostępnych dla RPM, ale nie dla DEB (lub odwrotnie). Na przykład, alien packagename.rpmaby uczynić go użytecznym dla Ubuntu.
Paddy Landau

1
@AlaaAli aptitudenie jest nakładką na apt-get. Oba programy stanowią nakładki na libapt-pkgbibliotekę.
Eliah Kagan

1
@edwardtorvalds AskUbuntu to witryna z pytaniami i odpowiedziami. Wyszukaj swoją odpowiedź tutaj na stronie spośród tysięcy starych pytań, a jeśli jej nie znajdziesz, zadaj własne pytanie, na które bardziej doświadczeni ludzie ode mnie odpowiedzą.
Alaa Ali,

5

apt-get

Zarządzanie pakietami apt-getodbywa się równolegle z /etc/apt/sources.listplikiem.

apt-get install <package_name> instaluje nowy pakiet na twoim komputerze.

apt-get build-dep <package_name> To polecenie przeszukuje repozytoria i instaluje zależności kompilacji. Jeśli pakiet nie znajduje się w repozytoriach, zwróci błąd.

apt-get install <package1_name> <package2_name> <package3_name> apt-get umożliwia instalację wielu pakietów. oddziel paczki spacją.

auto-apt run <command_string> Po wywołaniu komenda auto-apt automatycznie instaluje pakiety w przypadku braku dostępu do pliku. Jeśli program spróbuje uzyskać dostęp do pliku, o którym wiadomo, że należy do odinstalowanego pakietu, auto-apt zainstaluje ten pakiet przy użyciu apt-get. Ta funkcja wymaga apt i sudo do działania.

Odwiedź stronę instrukcji apt-get

uzdolnienie

aptitudezapewnia funkcjonalność dselecti apt-getwiele dodatkowych funkcji, których nie ma w żadnym programie.

aptitude ma własną powłokę, która jest aktywowana za pomocą klawiatury lub myszy i działa w oknie terminala

aptitude build-dep <package> - Zainstaluj zależności kompilacji pakietów - co oznacza pakiety potrzebne do skompilowania (lub kompilacji ) pakietu źródłowego. Na przykład, wiele pakietów trzeba debhelperalbo autotoolsbyć zbudowany, ale nie trzeba je uruchomić.

Odwiedź stronę z instrukcjami dotyczącymi umiejętności

dpkg

jest narzędziem do instalowania, budowania, usuwania i zarządzania pakietami Debiana. połączyć

dpkg -i <package.deb>instaluje pakiet Debian na twoim komputerze. Nie instaluje żadnych zależności, o ile mogę dowiedzieć się z plików pomocy.

Aby uzyskać szczegółowe informacje, wpisz dpkg --helpw oknie terminala.

Przewodniki

przewodnik po zarządzaniu plikami można znaleźć tutaj


0

Myślę, że najważniejszą rzeczą, a także różnicą jest to, że powinieneś używać apt-getnarzędzia do instalowania pakietów. ( aptlub też aptitudejest w porządku).

Jest tak, ponieważ dpkgma na celu instalowanie pakietów bez instalowania pakietów zależnych. Z tego powodu samo zainstalowanie pakietu dpkgmoże spowodować późniejszy problem, w wyniku którego rozwiązywanie zależności może doprowadzić do uszkodzenia systemu.

Do zainstalowania pakietów należy użyć wiersza polecenia apt-getlub apt(od 14.04) narzędzia. Te narzędzia są dpkgdla Ciebie używane, a jednocześnie mają w sobie mechanizm rozwiązywania zależności.

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.