Comment les packages sont-ils réellement installés via l'installation apt-get?

29

Lorsque vous utilisez la apt-get installméthode pour installer un package sur ubuntu, existe-t-il une différence fondamentale entre l'obtention du code source de ce package et sa création à partir de zéro? La apt-get installfonctionnalité télécharge- t-elle simplement la source et la construit-elle sur votre machine dans un répertoire spécifié ou y a-t-il plus de choses en coulisses?

Enfin (peut-être que cela n'a pas de réponse) est une méthode meilleure que l'autre? Ce que je cherche ici, c'est que le construire vous-même à partir du code source a des avantages ou est-il préférable de laisser apt-getfaire son travail?

mathématicien1975
la source

Réponses:

25

Les avantages d'un système de gestion de paquets tels que apt, yum, pacman, emerge, etc. incluent:

  • Il est facile de demander quelle version d'un package est installée ou disponible.
  • Il est facile de supprimer un package entièrement, en vous assurant que tous ses fichiers ont disparu.
  • Il est facile de vérifier l'intégrité des fichiers de packages, vous pouvez donc voir s'ils ont été corrompus ou falsifiés.
  • Il est facile de mettre à niveau un package en installant la nouvelle version et en supprimant tous les fichiers des anciennes versions. Cela veillera à ne pas laisser de fichiers persistants de l'ancien package pour confondre ou casser les choses.
  • Il est facile de voir quels packages nécessitent ou fournissent des éléments que d'autres packages fournissent ou nécessitent, vous pouvez donc être sûr d'avoir les éléments nécessaires pour que le package fonctionne correctement.
  • Il est facile d'installer ou de supprimer des groupes de packages.
  • Dans de nombreux cas, il est possible de revenir à une version précédente d'un package, par exemple lorsqu'une nouvelle version comporte un bogue.

Bien que ce soit pour Fedora, voir aussi:

https://fedoraproject.org/wiki/Package_management_system

L'installation à partir de la source peut présenter des avantages

  • Vous pouvez personnaliser les binaires (activer / désactiver les options)
  • Un package plus à jour est alors disponible dans les référentiels
  • Parfois nécessaire pour corriger les bogues

Mais les inconvénients sont que vous devrez ensuite mettre à jour manuellement le package lorsqu'une nouvelle version est disponible et vous perdrez souvent le support.

IMO si vous souhaitez compiler tout ou partie de vos packages, je conseillerais Gentoo.

Panthère
la source
1
Pour clarifier cette excellente réponse, si vous compilez vous-même, Update Manager sera ignoré et ne mettra donc pas à jour votre application pour vous lorsque les mises à jour seront publiées. Aussi, apt (le gestionnaire de paquets choisi par Ubuntu) ne compile pas; il télécharge les binaires compilés prêts à l'emploi. Enfin, apt maintient automatiquement votre système de menus lorsque vous installez ou supprimez des programmes. Lorsque vous compilez manuellement, vous devez le faire vous-même.
Paddy Landau
1
Un autre avantage généralement faible de la compilation de packages vous-même est qu'ils seront compilés avec plus de connaissances de votre matériel exact et peuvent s'exécuter plus rapidement. Si vous suivez cette voie, envisagez d'utiliser checkinstall. asic-linux.com.mx/~izto/checkinstall Il garde une trace de ce qui a été installé et aide à le supprimer proprement plus tard si nécessaire.
Joe
Je me tiens corrigé sur la partie la plus rapide.
Joe
18

Apt-get est l'utilitaire de gestion de package APT (CLI), back-end pour Synaptic et Aptitude .

La méthode apt-get lors du déclenchement à partir de votre système vérifie les sources ou référentiels officiels répertoriés dans le fichier

etc/apt/sources.list

Par exemple. lors de l'exécution (que j'utilise) , exécute quelque chose commesudo apt-get update && sudo apt-get upgrade

entrez la description de l'image ici

Ign (Ignore) devant le lien indique qu'aucune modification n'est apportée depuis la dernière visite dans ces référentiels, et le Get indique la récupération du fichier de sources indiquant les modifications du package nouvellement disponible dans ce référentiel.

Non, l' utilitaire apt-get ne télécharge pas le fichier source , il télécharge plutôt le package .deb emballé et publié par les Packeurs officiels d'Ubuntu qui a été testé pour la stabilité et l'intégration avec votre système.

Les packages téléchargés apt-get se trouvent dans

/var/cache/apt

où vous pouvez voir tous les packages enUpdates tant que .deb , et vous pouvez même comparer pour vérifier leur version en visitant ces packages de mises à jour précises .

En ce qui concerne la compilation à partir des packages source, elle n'est pas recommandée ni même recommandée pour Ubuntu 12.04 car c'est une version LTS, vous pouvez voir les raisons ici

Est-il préférable de compiler à partir des sources ou d'installer à partir d'un package .deb?

La compilation de programmes à partir de la source accélérerait-elle mon système d'exploitation?

Avantages / inconvénients de l'installation à partir du code source

Pour d'autres références: apt-get , sources.list .

atenz
la source
en fait, les 3 programmes apt-get, aptitude et synaptic sont des back-ends pourdpkg
Javier López
1
Aptitude est frontal pour dpkg . Alors que dpkg peut être utilisé comme front-end pour dpkg-deb et dpkg-query
atenz
2

Si vous construisez à partir des sources, vous avez plus d'options dans ce qui est inclus. L'installation à partir de apt-getinstalle simplement un package pré-construit.

Quant à ce qui est mieux, cela dépend de ce dont vous avez besoin. Je n'ai jamais eu besoin de compiler depuis la source mais je ne fais rien de très étendu sur mon ordinateur portable ubuntu.

Corey Whitaker
la source
Donc apt-get ne construit rien - télécharge simplement un binaire essentiellement?
mathematician1975
3
Exactement. Il télécharge un binaire pré-construit pour votre architecture (amd64, i386, armel, etc.).
tgm4883
2

Je pense que vous pouvez utiliser apt-get pour installer des sources de paquets.

  1. Vous devez activer les référentiels de code source

    Ouvrez le fichier /etc/apt/sources.list, vous verrez des lignes commentées (commence par #) qui ont "source" dessus.

    Décommentez-les

  2. Installez les dépendances du programme que vous souhaitez:

    sudo apt-get build-dep "program"

  3. Téléchargez et compilez votre programme:

    sudo apt-get -b source "program"

Après cela, vous obtenez un package .deb sur votre répertoire personnel.

LnxSlck
la source