Vraag Wat is het verschil tussen dpkg en aptitude / apt-get?


Bij het installeren van een software via dpkg -i packageA.deb, zullen de afhankelijkheden vereist door packageA automatisch worden gedownload en geïnstalleerd? Hoe verschilt dit van gebruik apt-get of aptitude?


116
2018-06-17 07:08


oorsprong


Gerelateerd (vooral met betrekking tot afhankelijkheden): askubuntu.com/q/40779/250300 - Melebius


antwoorden:


Nee, dpkg installeert alleen een pakket, dus doen dpkg -i packageName.deb zal alleen dit Deb-pakket installeren en zal u op de hoogte stellen van afhankelijkheden die moeten worden geïnstalleerd, maar dat zal wel gebeuren niet installeer ze, en het zal niet configureer de packageName.deb omdat goed ... de afhankelijkheden zijn er niet.

apt-get is een Pakketbeheersysteem die de installatie van Deb-pakketten verwerkt Op Debian gebaseerde Linux-distributies. Een pakketbeheersysteem is een set hulpprogramma's waarmee u eenvoudig pakketten kunt installeren, verwijderen en wijzigen. Zo apt-get is als een slimmerik dpkg.

Ik vind het leuk om op deze manier aan de tijdlijn te denken (het volgende is alleen dat ik spreek uit ervaring, het is alleen bedoeld om je een idee van dit hele ding te geven):

  • Ze bedachten een manier om de bestanden van een applicatie in een "pakket" op te slaan, zodat het gemakkelijk kan worden geïnstalleerd. Dus het Deb-pakket (.deb extensie bestand) was geboren.

    EEN .deb bestand bevat de bestanden die nodig zijn voor een applicatie om te draaien, evenals (Ik noem het graag) "metagegevens" die andere informatie bevatten, zoals de namen van de afhankelijkheden die de toepassing nodig heeft. Als u de inhoud van a wilt zien .deb bestand, kunt u de opdracht gebruiken dpkg -c packageName.deben als u deze "metagegevens" -informatie wilt zien, gebruikt u de opdracht dpkg -I pacakgeName.deb (en als je alleen de afhankelijkheden wilt zien, doe dan dpkg -I packageName.deb | grep Depends).

  • Ze hadden een tool nodig om deze te installeren .deb bestanden, dus ze kwamen met de dpkg tool. Deze tool installeert echter alleen de .deb bestand, maar installeert de afhankelijkheden niet omdat het die bestanden niet heeft en het geen toegang heeft tot "repositories" om van de afhankelijkheden af ​​te komen.

  • Toen kwamen ze op de proppen apt-get, waarmee de problemen in het vorige punt worden geautomatiseerd. Onder de kap, apt-get is eigenlijk dpkg (Ik zie het graag als apt-get een front-end zijn voor dpkg), maar een slimme die de afhankelijkheden opzoekt en installeert. Het kijkt zelfs naar de momenteel geïnstalleerde afhankelijkheden en bepaalt degene die niet door andere pakketten worden gebruikt, en zal u informeren dat u ze kunt verwijderen.

aptitude toen kwam mee. Het gebruikt de bibliotheken apt-get toepassingen en heeft eigenlijk een interactieve UI (gebruikersinterface). Als u deze gebruikersinterface wilt zien, typt u gewoon aptitude in de terminal. dat is  aptitude. Het maakt gebruik van de bibliotheken om meer opties en extraatjes te bieden dan apt-get. Bijvoorbeeld, aptitude zal in aanmerking komende pakketten automatisch verwijderen apt-get heeft hiervoor een aparte opdracht nodig. Maar uiteindelijk toch sudo aptitude install packageName.deb moeten minstens hetzelfde zijn als sudo apt-get install packageName.deb. Er kunnen hier en daar subtiele verschillen zijn waarvan ik niet weet, maar ze zullen allebei naar de afhankelijkheden zoeken en al die dingen doen. Jij kunt lezen het antwoord hier voor meer informatie over de verschillen tussen aptitude en apt-get.

Ook, aptitude heeft geen Super Cow Powers.

EDIT: Blijkbaar wel. aptitude -v[v[v[v[v]]]] moo.

aptitude wordt mogelijk niet standaard geïnstalleerd. Om het te installeren, doe sudo apt-get install aptitude of klik hier: aanleg Install aptitude.


Extra

De volgende informatie geeft niet echt direct antwoord "Wat is het verschil tussen dpkg en aptitude / apt-get?"maar het draagt ​​bij aan het grote plaatje.


Van Carlos Campderrós' laat je opmerking beneden achter:

gdebi is een ander hulpmiddel dat nogal een mengeling is tussen apt-get en aptitude. Wanneer u het gebruikt om een ​​te installeren .deb pakket (gdebi packageName.deb), zal het de ontbrekende afhankelijkheden identificeren, installeren met behulp van apt-get, en dan eindelijk installeren en configureren van het pakket met behulp van dpkg. Het heeft zelfs een eenvoudige en nette GUI die u informatie geeft over de .deb pakket, de bestanden in het pakket en welke afhankelijkheden moeten worden geïnstalleerd. Om deze GUI te zien, zou je doen gdebi-gtk packageName.deb. Jij kan geven gdebi een poging door het te installeren met sudo apt-get install gdebi of klik hier: gdebi Install gdebi.


Ik wil niemand verwarren, maar alleen om je een ander deel van de foto te geven, is er een ander populair Linux-pakketformaat genaamd RPM, en de bestanden hebben de .rpm uitbreiding. Dit pakketformaat wordt gebruikt op RPM-gebaseerde Linux-distributies (zoals Red Hat, CentOS en Fedora). Ze gebruiken het commando rpm om een ​​pakket te installeren, en yum is het front-end ervoor, het is de slimste. Dus hun .rpm bestanden zijn onze .deb bestanden, hun rpm gereedschap is ons dpkg hulpmiddel en hun yum is onze apt-get.

Van Paddy Landau's laat je opmerking beneden achter:

alien is een tool die converteert tussen .rpm en .deb pakketjes. Dus als je ooit in de situatie terechtkomt waarin je een hebt .rpm pakket en u wilt installeren op uw Ubuntu (of een andere op Debian gebaseerde distro), dan kunt u de opdracht gebruiken alien rpm_packageName.rpm omzetten naar .deben installeer het met dpkg. U kunt het omgekeerde doen (converteren .deb naar .rpm) gebruik makend van alien -r packageName.deb.


156
2018-06-17 07:30



Dat was erg handig en precies wat ik zocht. Tx! - Aniket Thakur
Ook kunt u gebruiken gdebi (apt-get install gdebi-core) die zich vermengt apt-get/aptitude met dpkg. Je noemt het met gdebi some_package.deb en het zal zijn afhankelijkheden analyseren, bel apt-get om de ontbrekende te installeren en wanneer alle afhankelijkheden zijn vervuld, bel dan dpkg om je pakket eindelijk te installeren. - Carlos Campderrós
@ CarlosCampderrós, ik heb toegevoegd gdebi in mijn antwoord. - Alaa Ali
@Alaa Under Extra, je kunt dat ook vermelden alien converteert pakketten tussen .rpm en .deb. Dit is handig voor pakketten die beschikbaar zijn voor RPM, maar niet voor DEB (of omgekeerd). Bijvoorbeeld, alien packagename.rpm om het bruikbaar te maken voor Ubuntu. - Paddy Landau
@AlaaAli aptitude is geen frontend voor apt-get. Beide programma's zijn frontends voor de libapt-pkg bibliotheek. - Eliah Kagan


apt-get

Pakketbeheer via apt-get werkt hand in hand met het bestand /etc/apt/sources.list.

apt-get install <package_name> installeert een nieuw pakket op uw computer.

apt-get build-dep <package_name> Dit commando doorzoekt de repositories en installeert de build afhankelijkheden voor. Als het pakket zich niet in de repository bevindt, retourneert het een foutmelding.

apt-get install <package1_name> <package2_name> <package3_name> apt-get maakt de installatie van meerdere pakketten mogelijk. scheid de pakketten met een spatie.

auto-apt run <command_string> Wanneer aangeroepen, installeert de opdracht auto-apt automatisch pakketten bij ontbrekende bestandstoegang. Als een programma toegang probeert te krijgen tot een bestand waarvan bekend is dat het in een niet-geïnstalleerd pakket thuishoort, zal auto-apt dat pakket installeren met apt-get. Voor deze functie moeten apt en sudo werken.

Ga naar de instructiepagina apt-get-instructie

aanleg

aptitude biedt de functionaliteit van dselect en apt-get evenals vele extra functies die niet in beide programma's worden gevonden.

aptitude heeft een eigen shell die door een toetsenbord of muis is geactiveerd en in een terminalvenster wordt uitgevoerd

aptitude build-dep <package>   - Installeer de build-afhankelijkheden van pakketten - wat betekent dat de pakketten die nodig zijn om te compileren (of bouwen) het bronpakket. Veel pakketten hebben bijvoorbeeld nodig debhelper of autotools worden gebouwd, maar hebben ze niet nodig om te rennen.

Ga naar de pagina met aptitude-instructies

dpkg

is een hulpmiddel voor het installeren, bouwen, verwijderen en beheren van Debian-pakketten. link

dpkg -i <package.deb> installeert een Debian-pakket op uw computer. Het installeert geen afhankelijkheden voor zover ik uit de help-bestanden kan achterhalen.

Voor details type dpkg --help in een terminalvenster.

Gidsen

een gids voor bestandsbeheer is te vinden hier


5
2018-06-17 07:29





Ik denk dat het belangrijkste en ook een verschil is om op te merken dat je moet gebruiken apt-get hulpmiddel om pakketten te installeren. (apt of aptitude is ook goed).

Dit is zo omdat dpkg is bedoeld om pakketten te installeren zonder afhankelijke pakketten te installeren. Daarom gewoon een pakket installeren met dpkg, kan leiden tot een later probleem waarbij afhankelijkheidsresolutie kan eindigen met een gebroken systeem.

Gebruik de opdrachtregel apt-get of apt (sinds 14.04) tool om pakketten te installeren. Deze tools gebruiken dpkg voor jou en tegelijkertijd heb je het verslavingsmechanisme binnen.


0
2017-08-16 19:24