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

115

Czy podczas instalowania oprogramowania przez dpkg -i packageA.deb , zależności wymagane przez packageA będą pobierane i instalowane automatycznie? Czym różni się to od używania apt-get lub aptitude ?

    
zadawane Aniket Thakur 17.06.2013, 09:08
źródło

3 odpowiedzi

155

Nie, dpkg instaluje tylko pakiet, więc wykonanie dpkg -i packageName.deb spowoduje tylko zainstalowanie tego pakietu Deb i powiadomi Cię o zależnościach, które muszą być zainstalowane, ale to nie je zainstaluj, a nie skonfiguruje packageName.deb , ponieważ ... nie ma zależności.

apt-get to System zarządzania pakietami obsługuje instalację pakietów Deb na dystrybucji Linuksa opartej na Debianie . System zarządzania pakietami to zestaw narzędzi, które ułatwiają instalowanie, usuwanie i zmienianie pakietów w łatwy sposób. Więc apt-get jest jak sprytny dpkg .

Lubię myśleć o osi czasu w ten sposób (to tylko ja mówię z doświadczenia, ma tylko dać ci wyobrażenie o tym wszystkim):

  • Wymyślili sposób "przechowywania" plików aplikacji w "pakiecie", aby mógł być łatwo zainstalowany. Tak narodził się pakiet Deb (% pliku rozszerzenia co_de% ).

      

    Plik .deb zawiera pliki potrzebne do działania aplikacji, a także (lubię to nazywać) "meta-dane", które zawierają inne informacje, takie jak nazwy zależności wymagane przez aplikację. Jeśli chcesz zobaczyć zawartość pliku .deb , możesz użyć polecenia .deb , a jeśli chcesz zobaczyć te "meta-dane", użyj polecenia dpkg -c packageName.deb (i jeśli chcesz tylko zobacz zależności, wykonaj dpkg -I pacakgeName.deb ).

  • Potrzebowali narzędzia do zainstalowania tych plików dpkg -I packageName.deb | grep Depends , więc wymyślili narzędzie .deb . To narzędzie jednak zainstaluje plik dpkg , ale nie zainstaluje jego zależności, ponieważ nie ma tych plików i nie ma dostępu do "repozytoriów", z których można pobierać zależności.

  • Następnie wymyślili .deb , który automatyzuje problemy z poprzedniego punktu. Pod maską apt-get jest w zasadzie apt-get (lubię myśleć o tym jako dpkg będącym front-endem dla apt-get ), ale sprytnym, który będzie szukał zależności i instalował je. Nawet patrzy na aktualnie zainstalowane zależności i określa te, które nie są używane przez żadne inne pakiety, i poinformuje cię, że możesz je usunąć.

dpkg pojawił się. Używa bibliotek aptitude używa i faktycznie ma interaktywny interfejs użytkownika (interfejs użytkownika) . Jeśli chcesz zobaczyć ten interfejs, po prostu wpisz apt-get w terminalu. To jest aptitude . Wykorzystuje biblioteki, aby zapewnić więcej opcji i korzyści niż aptitude . Na przykład apt-get automatycznie usunie odpowiednie pakiety, a aptitude potrzebuje osobnego polecenia, aby to zrobić. Ale ostatecznie, wykonanie apt-get powinno co najmniej być takie samo jak sudo aptitude 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ć to wszystko. Możesz przeczytać odpowiedź tutaj , aby uzyskać więcej informacji na temat różnic między sudo apt-get install packageName.deb a aptitude .

Ponadto apt-get nie ma uprawnień Super Cow.

  

EDIT: Wygląda na to, że tak. aptitude .

aptitude -v[v[v[v[v]]]] moo może nie być instalowany domyślnie. Aby go zainstalować, wykonaj aptitude lub kliknij: aptitude .

Extra

  

Poniższe informacje tak naprawdę nie odpowiadają bezpośrednio na pytanie " Jaka jest różnica między programami dpkg i aptitude / apt-get? ", ale przyczynia się to do uzyskania dużego obrazu.

Z Carlos Campderrós " komentarz poniżej :

sudo apt-get install aptitude to kolejne narzędzie, które jest rodzajem mieszaniny między gdebi a apt-get . Gdy użyjesz go do zainstalowania pakietu aptitude ( .deb ), zidentyfikuje on brakujące zależności, zainstaluje je za pomocą gdebi packageName.deb , a następnie zainstaluje i skonfiguruje pakiet za pomocą apt-get . Posiada nawet prosty i zgrabny GUI, który dostarcza informacji o pakiecie dpkg , plikach zawartych w pakiecie, i jakie zależności muszą być zainstalowane. Aby zobaczyć ten GUI, zrobiłbyś .deb . Możesz spróbować gdebi-gtk packageName.deb spróbować, instalując go z gdebi lub kliknij to: gdebi .

Nie chcę nikogo mylić, ale po to, by dać ci kolejną część obrazu, jest inny popularny format pakietu Linux o nazwie RPM, a jego pliki mają rozszerzenie sudo apt-get install gdebi . Ten format pakietu jest używany na opartych na RPM dystrybucjach systemu Linux (takich jak Red Hat, CentOS i Fedora). Używają polecenia .rpm do zainstalowania pakietu, a rpm jest dla niego frontendem, to sprytne. Więc ich pliki yum są naszymi plikami .rpm , ich narzędzie .deb jest naszym narzędziem rpm , a ich dpkg jest naszym yum .

Z Paddy Landau komentarz poniżej :

apt-get to narzędzie, które konwertuje pakiety alien i .rpm . Jeśli kiedykolwiek wpadniesz w sytuację, w której masz pakiet .deb , i chcesz zainstalować na swoim Ubuntu (lub dowolnej innej dystrybucji opartej na Debianie), możesz użyć polecenia .rpm , aby przekonwertować je na alien rpm_packageName.rpm , a następnie zainstaluj za pomocą .deb . Możesz wykonać odwrotność (przekonwertuj dpkg na .deb ), używając .rpm .

    
odpowiedział Alaa Ali 17.06.2013, 09:30
źródło
5

apt-get

Zarządzanie pakietami przez apt-get odbywa się równolegle z plikiem /etc/apt/sources.list.

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 zależności dla. 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. oddzielić paczki spacją.

auto-apt run <command_string> Po wywołaniu komenda auto-apt automatycznie instaluje pakiety w przypadku braku dostępu do plików. Jeśli program próbuje uzyskać dostęp do pliku, który jest przypisany do usuniętego pakietu, auto-apt zainstaluje ten pakiet za pomocą apt-get. Ta funkcja wymaga działania apt i sudo.

Przejdź na stronę instrukcji apt-get

aptitude

aptitude zapewnia funkcjonalność dselect i apt-get , a także wiele dodatkowych funkcji, których nie można znaleźć w żadnym z programów.

aptitude ma własną powłokę, aktywowaną klawiaturą lub myszą i działa w oknie terminala

aptitude build-dep <package> - Zainstaluj zależności pakietów od pakietu - czyli pakiety potrzebne do skompilowania (lub kompilacji ) pakietu źródłowego. Na przykład wiele pakietów wymaga zbudowania debhelper lub autotools , ale nie ma potrzeby ich uruchamiania.

Odwiedź stronę instrukcji aptitude

dpkg

to narzędzie do instalowania, budowania, usuwania i zarządzania pakietami Debiana. link

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

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

Przewodniki

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

    
odpowiedział SimplySimon 17.06.2013, 09:29
źródło
0

Myślę, że najważniejszą rzeczą, a także różnicą jest to, że należy użyć narzędzia apt-get do instalacji pakietów. ( apt lub aptitude również jest w porządku).

To dlatego, że dpkg służy do instalowania pakietów bez instalowania zależnych pakietów. Z tego powodu samo instalowanie pakietu z dpkg może prowadzić do późniejszego problemu, w którym rozwiązywanie zależności może zakończyć się zepsutym systemem.

Powinieneś użyć narzędzia apt-get lub apt (od 14.04) aby zainstalować pakiety. Te narzędzia używają dpkg dla ciebie i jednocześnie mają mechanizm rozwiązywania zależności wewnątrz.

    
odpowiedział prosti 16.08.2018, 21:24
źródło

Przeczytaj inne pytania na temat tagów