Jaka jest różnica między dpkg a aptitude / apt-get?
125
Czy podczas instalowania oprogramowania za dpkg -i packageA.debpomocą zależności packageAbędą pobierane i instalowane automatycznie? Czym różni się to od używania apt-getlub aptitude?
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. Toaptitude . 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.
aptitudemoże nie być domyślnie zainstalowany. Aby go zainstalować, zrób sudo apt-get install aptitudelub kliknij: 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.
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: 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.
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.
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.
@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.
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ć.
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.
Odpowiedzi:
Nie,
dpkg
tylko instaluje pakiet, więcdpkg -i packageName.deb
spowoduje 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.deb
ponieważ cóż ... zależności są nie tam.apt-get
to 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. Toapt-get
jest jak sprytnedpkg
.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 (
.deb
plik rozszerzenia ).Potrzebowali narzędzia do zainstalowania tych
.deb
plików, więc wymyślili todpkg
narzędzie. To narzędzie jednak po prostu zainstaluje.deb
plik, 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.apt-get
, co automatyzuje problemy w poprzednim punkcie. Pod maskąapt-get
jest w zasadziedpkg
(lubię myśleć o nim jakoapt-get
o front-endiedpkg
), 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ąć.aptitude
potem przyszedł. Korzysta z bibliotekiapt-get
zastosowań i faktycznie ma interaktywny UI (interfejs użytkownika). Jeśli chcesz zobaczyć ten interfejs, po prostu wpiszaptitude
terminal. Toaptitude
. Wykorzystuje biblioteki, aby zapewnić więcej opcji i dodatków niżapt-get
. Na przykładaptitude
automatycznie usunie odpowiednie pakiety, podczas gdyapt-get
potrzebuje do tego osobnego polecenia. Ale w końcu robieniesudo aptitude install packageName.deb
powinno być co najmniej takie samo jaksudo 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ędzyaptitude
iapt-get
.Ponadto
aptitude
nie ma super krowich mocy.aptitude
może nie być domyślnie zainstalowany. Aby go zainstalować, zróbsudo apt-get install aptitude
lub kliknij: aptitude .Dodatkowy
Od Carlos Campderrós ' komentarzu poniżej :
gdebi
to kolejne narzędzie będące mieszanką międzyapt-get
iaptitude
. Kiedy użyjesz go do zainstalowania.deb
pakietu (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.deb
pakiecie, 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żeszgdebi
spróbować, instalując go za pomocąsudo apt-get install gdebi
lub klikając: 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ą
.rpm
rozszerzenie. Ten format pakietu jest używany w dystrybucjach Linuksa opartych na RPM (takich jak Red Hat, CentOS i Fedora). Używają polecenia,rpm
aby zainstalować pakiet iyum
jest to front-end, jest to sprytny. Więc ich.rpm
pliki są naszymi.deb
plikami, ichrpm
narzędzie jest naszymdpkg
narzędziem, a ichyum
jest naszymapt-get
.Od Paddy Landau „s komentarzu poniżej :
alien
to narzędzie, które konwertuje pakiety.rpm
i.deb
. Więc jeśli kiedykolwiek wpadniesz w sytuację, w której masz.rpm
pakiet i chcesz zainstalować na Ubuntu (lub innej dystrybucji opartej na Debianie), możesz użyć polecenia,alien rpm_packageName.rpm
aby go przekonwertować.deb
, a następnie zainstalować przy użyciudpkg
. Możesz zrobić odwrotnie (przekonwertować.deb
na.rpm
) za pomocąalien -r packageName.deb
.źródło
gdebi
(apt-get install gdebi-core
), która łączyapt-get
/aptitude
zdpkg
. Wywołujesz go za pomocą,gdebi some_package.deb
a on przeanalizuje jego zależności, wezwieapt-get
do zainstalowania brakujących, a kiedy wszystkie zależności zostaną spełnione, a następnie zadzwoni,dpkg
aby w końcu zainstalować pakiet.alien
konwertuje pakiety między.rpm
i.deb
. Jest to przydatne w przypadku pakietów dostępnych dla RPM, ale nie dla DEB (lub odwrotnie). Na przykład,alien packagename.rpm
aby uczynić go użytecznym dla Ubuntu.aptitude
nie jest nakładką naapt-get
. Oba programy stanowią nakładki nalibapt-pkg
bibliotekę.apt-get
Zarządzanie pakietami
apt-get
odbywa się równolegle z/etc/apt/sources.list
plikiem.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życiuapt-get
. Ta funkcja wymaga apt i sudo do działania.Odwiedź stronę instrukcji apt-get
uzdolnienie
aptitude
zapewnia funkcjonalnośćdselect
iapt-get
wiele 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 terminalaaptitude 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 trzebadebhelper
alboautotools
być 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 --help
w oknie terminala.Przewodniki
przewodnik po zarządzaniu plikami można znaleźć tutaj
źródło
Myślę, że najważniejszą rzeczą, a także różnicą jest to, że powinieneś używać
apt-get
narzędzia do instalowania pakietów. (apt
lub teżaptitude
jest w porządku).Jest tak, ponieważ
dpkg
ma na celu instalowanie pakietów bez instalowania pakietów zależnych. Z tego powodu samo zainstalowanie pakietudpkg
moż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-get
lubapt
(od 14.04) narzędzia. Te narzędzia sądpkg
dla Ciebie używane, a jednocześnie mają w sobie mechanizm rozwiązywania zależności.źródło