Quelle est la différence entre dpkg et aptitude / apt-get?

125

Lors de l'installation d'un logiciel via dpkg -i packageA.deb, les dépendances requises par packageAseront-elles téléchargées et installées automatiquement? En quoi est-ce différent d'utiliser apt-getou aptitude?

Aniket Thakur
la source
Connexes (en particulier en ce qui concerne les dépendances): askubuntu.com/q/40779/250300
Melebius

Réponses:

168

Non, dpkgseulement installe un paquet, donc cela dpkg -i packageName.debn'installe que ce paquet Deb et vous informera de toutes les dépendances à installer, mais ne les installera pas et ne le configurera paspackageName.deb parce que ... les dépendances sont pas ici.

apt-getest un système de gestion de paquets qui gère l'installation de paquets Deb sur des distributions Linux basées sur Debian . Un système de gestion de paquets est un ensemble d’outils qui vous aideront à installer, supprimer et modifier facilement les paquets. Alors, apt-getc'est comme un malin dpkg.

J'aime penser à la chronologie de cette façon (ce qui suit est juste moi qui parle d'expérience. Cela a pour but de vous donner une idée de tout cela):

  • Ils ont mis au point un moyen de "stocker" les fichiers d'une application dans un "package" afin de faciliter son installation. Ainsi, le paquet Deb ( .debfichier d'extension ) était né.

    Un .debfichier contient les fichiers requis par une application à exécuter, ainsi que (je préfère l'appeler) « méta-données » qui détient d' autres informations, telles que les noms des dépendances les besoins de l' application. Si vous voulez voir le contenu d'un .debfichier, vous pouvez utiliser la commande dpkg -c packageName.deb, et si vous voulez voir ces informations "méta-données", utilisez la commande dpkg -I pacakgeName.deb(et si vous voulez voir uniquement les dépendances, faites-le dpkg -I packageName.deb | grep Depends).

  • Ils avaient besoin d'un outil pour installer ces .debfichiers, ils sont donc venus avec l' dpkgoutil. Cependant, cet outil n’installe que le .debfichier, mais pas ses dépendances, car il ne possède pas ces fichiers et n’a pas accès aux "référentiels" pour obtenir les dépendances.

  • Ensuite, ils sont venus avec apt-get, ce qui automatise les problèmes dans le point précédent. Sous le capot, apt-getc’est fondamentalement dpkg(j’aime penser que c’est apt-getun frontal pour dpkg), mais c’est un habile qui cherche les dépendances et les installe. Il examine même les dépendances actuellement installées et détermine celles qui ne sont pas utilisées par d'autres packages, et vous informera que vous pouvez les supprimer.

aptitudepuis est venu. Il utilise les bibliothèques apt-getutilise et a en fait une interface utilisateur interactive (interface utilisateur). Si vous voulez voir cette interface, tapez simplement aptitudele terminal. Ça c'est aptitude . Il exploite les bibliothèques pour offrir plus d'options et d'avantages que apt-get. Par exemple, aptitudesupprimera automatiquement les packages éligibles, tout en ayant apt-getbesoin d'une commande séparée pour le faire. Mais à la fin, faire sudo aptitude install packageName.debdevrait au moins être comme sudo apt-get install packageName.deb. Il y a peut-être des différences subtiles ici et là que je ne connais pas, mais ils vont tous les deux rechercher les dépendances et faire tout ça. Vous pouvez lire la réponse ici pour plus d'informations sur les différences entre aptitudeet apt-get.

En outre, aptituden'a pas de super pouvoirs de vache.

EDIT: Apparemment, c'est le cas. aptitude -v[v[v[v[v]]]] moo.

aptitudepeut ne pas être installé par défaut. Pour l'installer, faites sudo apt-get install aptitudeou cliquez ceci: aptitudeInstaller aptitude .


Supplémentaire

Les informations suivantes ne répondent pas directement " Quelle est la différence entre dpkg et aptitude / apt-get? " Mais contribuent à la grande image.


De Carlos Campderrós de commentaire ci - dessous :

gdebiest un autre outil qui est une sorte de mélange entre apt-getet aptitude. Lorsque vous l'utilisez pour installer un .debpackage ( gdebi packageName.deb), il identifiera les dépendances manquantes, les installera avec apt-get, puis finalement installera et configurera le paquet avec dpkg. Il possède même une interface graphique simple et soignée qui vous donne des informations sur le .debpaquet, les fichiers inclus dans le paquet et les dépendances à installer. Pour voir cette interface graphique, vous feriez gdebi-gtk packageName.deb. Vous pouvez gdebiessayer en l'installant avec sudo apt-get install gdebiou en cliquant dessus: gdebiInstaller gdebi .


Je ne veux confondre personne, mais pour vous donner une autre partie de l'image, il existe un autre format de paquet Linux populaire appelé RPM, et ses fichiers ont l' .rpmextension. Ce format de paquet est utilisé sur les distributions Linux basées sur RPM (telles que Red Hat, CentOS et Fedora). Ils utilisent la commande rpmpour installer un paquet, et yumest le front-end pour cela, c'est le plus malin. Donc, leurs .rpmfichiers sont nos .debfichiers, leur rpmoutil est notre dpkgoutil et leur yumest notre apt-get.

De Paddy Landau de commentaire ci - dessous :

alienest un outil qui convertit entre .rpmet des .debpackages. Donc, si vous tombez dans la situation où vous avez un .rpmpaquet et que vous voulez l'installer sur votre Ubuntu (ou sur toute autre distribution basée sur Debian), vous pouvez utiliser la commande alien rpm_packageName.rpmpour le convertir .deb, puis l'installer à l'aide de dpkg. Vous pouvez faire l'inverse (convertir .deben .rpm) en utilisant alien -r packageName.deb.

Alaa Ali
la source
5
C'était très utile et exactement ce que je cherchais. Tx!
Aniket Thakur
4
En outre, vous pouvez utiliser gdebi( apt-get install gdebi-core) qui mélange apt-get/ aptitudeavec dpkg. Vous l'appelez avec gdebi some_package.debet il analysera ses dépendances, appelera apt-getpour installer celles qui manquent et lorsque toutes les dépendances seront remplies, puis appellera dpkgpour installer enfin votre paquet.
Carlos Campderrós
2
@Alaa Sous Extra , vous pouvez également mentionner que alienconvertit les packages entre .rpmet .deb. Ceci est utile pour les paquetages disponibles pour RPM mais pas pour DEB (ou inversement). Par exemple, alien packagename.rpmpour le rendre utilisable pour Ubuntu.
Paddy Landau
1
@AlaaAli aptituden'est pas une interface pour apt-get. Les deux programmes sont des interfaces pour la libapt-pkgbibliothèque.
Eliah Kagan
1
@edwardtorvalds AskUbuntu est un site de questions et réponses. Cherchez votre réponse ici sur le site parmi les milliers de vieilles questions, et si vous ne la trouvez pas, posez votre propre question, des personnes plus expérimentées que moi y répondront, espérons-le.
Alaa Ali
5

apt-get

La gestion des paquets via apt-gets'exécute en même temps que le /etc/apt/sources.listfichier.

apt-get install <package_name> installe un nouveau package sur votre ordinateur.

apt-get build-dep <package_name> Cette commande recherche dans les référentiels et installe les dépendances de construction. Si le paquet ne se trouve pas dans les référentiels, une erreur sera renvoyée.

apt-get install <package1_name> <package2_name> <package3_name> apt-get permet l'installation de plusieurs paquets. séparez les paquets par un espace.

auto-apt run <command_string> Lorsqu'elle est appelée, la commande auto-apt installe automatiquement les packages lorsque l'accès aux fichiers est manquant. Si un programme tente d'accéder à un fichier appartenant à un paquet désinstallé, auto-apt l'installera à l'aide de apt-get. Cette fonctionnalité nécessite apt et sudo pour fonctionner.

Visitez la page d'instruction apt-get

aptitude

aptitudefournit les fonctionnalités de dselect, apt-getainsi que de nombreuses fonctionnalités supplémentaires non trouvées dans les deux programmes.

aptitude a sa propre coque qui est activée au clavier ou à la souris et s'exécute dans une fenêtre de terminal

aptitude build-dep <package> - Installez les dépendances de construction des packages - ce qui signifie les packages nécessaires à la compilation (ou à la génération ) de son package source. Par exemple, beaucoup de paquets doivent debhelperou autotoolsdoivent être construits, mais n’ont pas besoin d’être exécutés.

Visitez la page d'instruction d'aptitude

dpkg

est un outil pour installer, construire, supprimer et gérer les paquets Debian. lien

dpkg -i <package.deb>installe un paquet Debian sur votre ordinateur. Il n’installe aucune dépendance dans la mesure où je peux me renseigner à partir des fichiers d’aide.

Pour plus de détails, tapez dpkg --helpdans une fenêtre de terminal.

Des guides

un guide sur la gestion des fichiers peut être trouvé ici

SimplySimon
la source
0

Je pense que la chose la plus importante et une différence est de noter que vous devez utiliser un apt-getoutil pour installer des paquets. ( aptou aptitudeva bien aussi).

En effet, il dpkgest conçu pour installer des packages sans installer de packages dépendants. À cause de cela, installer un paquet avec dpkg, peut conduire à un problème ultérieur dans lequel la résolution de dépendance peut aboutir à un système en panne.

Vous devez utiliser la ligne de commande apt-getou apt(depuis 14.04) l’outil pour installer des packages. Ces outils utilisent dpkgpour vous et contiennent en même temps le mécanisme de résolution des dépendances.

prosti
la source