Que sont «build-essential» et «build-dep»?

66

Je cherche comment installer Ruby 1.9.1 dans Xubuntu 10.04 et je suis tombé sur la commande build-essential et build-dep plusieurs fois. Parfois, il est suivi par des packages et parfois, il est à la fois précédé et post-cédé par des packages.

Les 2 exemples que je regarde sont:

sudo apt-get install build-essential zlib1g zlib1g-dev zlibc libruby1.9 libxml2 libxml2-dev libxslt-dev

sudo apt-get build-dep ruby1.9

et

sudo apt-get install ruby ​​irb ri rdoc ruby1.8-dev libzlib-ruby libyaml-ruby libreadline-ruby libncurses-ruby libcurses-ruby libruby-extras libfcgi-ruby1.8 build-essential libopenssl-ruby libdbm-ruby libdbd-sqlite3-ruby sqlite3 libsqlite3-dev libsqlite3-ruby libxml-ruby libxml2-dev

classeur
la source
3
Notez que ce n'est pas une commande, mais un paquet dans le système de paquets Debian (APT). Vous pouvez également acquérir le package à l'aide d'outils d'interface graphique.
Merci. Quel est le lien avec Ruby? Je suppose que Ruby en a besoin pour courir mais je me trompe peut-être.
classeur

Réponses:

48

Le build-essentialpaquet est une référence pour tous les paquets nécessaires à la compilation d’un paquet Debian. Il inclut généralement les compilateurs et les bibliothèques GCC / g ++ et quelques autres utilitaires.

Consultez la documentation ici .

Ismael
la source
2
Ok mais ça ne répond toujours pas à ma question. Je comprends que «build-essential» contient une liste informative de paquets essentiels à la création de paquets Debian. Mais qu'est-ce qui est considéré comme un paquet Debian? Rubis? Compilateurs gcc / g ++? Et comment les paquets Debian et 'build-essential "se rapportent-ils à Ruby? Ruby est-il construit sur le paquet Debian? En d'autres termes, Ruby a-t-il besoin du paquet build-essential pour fonctionner? Je souhaite vraiment voir une représentation visuelle du fichier. relations entre toutes ces parties
classer
3
Pour le dire simplement, si vous (ou un autre paquet que vous voulez installer) avez besoin d’un compilateur C / C ++, vous devez installer build-essential. Habituellement , il est la première chose que j'installe dans une nouvelle installation de Ubuntu :-)
4
@Adam Ruby étant un langage interprété, l'interpréteur a besoin du compilateur C ou C ++ pour se construire et s'exécuter sur votre machine. build-essentialest un méta-paquet (un paquet qui installe beaucoup d'autres paquets, comme g ++ et gcc: les compilateurs GNU C & C ++). Cela est nécessaire si vous voulez compiler quelque chose à partir de la source et si vous voulez travailler avec presque n'importe quel langage de programmation. HTH!
Squircle
7
Cette réponse est fausse. La réponse ci-dessous est la bonne. build-depest une commande apt-get et build-essentialest un paquet.
David
2
Ce n'est pas la bonne réponse. Le lien fourni ne donne aucune idée ou explication de ce que contient le paquet build-essential.
andDevW
55

La commande sudo apt-get build-dep packagenamesignifie "En tant que root, installez toutes les dépendances pour 'nom_package' afin que je puisse le construire". Donc, build-dep est une commande apt-get comme installer, supprimer, mettre à jour, etc.

build-essential est un package qui contient des références à de nombreux packages nécessaires à la construction de logiciels en général.

Kleist
la source
1
Merci d'avoir expliqué la commande 'build-dep'. Donc, si je comprends bien, dans ce cas, Ruby1.9 a une liste de dépendances qui lui est attachée et que Linux considère comme une "liste de tâches / de constructions" et construit un par un chacun de ces éléments. L’infrastructure finale construite permet à Ruby1.9 de fonctionner correctement. Ce que je ne comprends pas, c'est pourquoi "build-essential", ou tous les autres packages de la première ligne (zlib1g zlib1g-dev zlibc libruby1.9, etc.) ne seraient pas inclus dans la liste "À faire / Créer. 'attaché à Ruby1.9. Ne serait-il pas plus simple s'il n'y avait qu'une seule commande?
classeur
5

build-essentialpossède une propriété magique: il n'est pas nécessaire qu'elle soit répertoriée en tant que dépendance de construction sous le Build-Dependschamp de contrôle ( debian-packages) des packages source, comme indiqué à l' adresse https://www.debian.org/doc/debian-policy/ch-source.html#. s-pkg-relations

Vous pouvez obtenir une liste des paquetages essentiels à la construction à l’adresse suivante:

cat /usr/share/doc/build-essential/list

Vous pouvez également déterminer si un paquet fait partie de build-essentialavec:

apt-get show gcc

qui dit:

Build-Essential: yes
Ciro Santilli 改造 中心 六四 事件
la source
4

"build-essential" contient les outils (comme le compilateur gcc, l'outil make, etc.) pour compiler / construire un logiciel à partir des sources. Vous commencez donc avec des fichiers source (généralement C) et créez des exécutables à partir de ceux-ci.

Si vous essayez simplement d'installer Ruby, je vous recommande fortement d'utiliser RVM (Ruby Version Manager) :

Suivez les instructions sous "Référentiel Github (recommandé)"

Notez que vous aurez d’abord besoin du logiciel de contrôle de version Git. Utilisez apt-get install git-coresi vous ne l'avez pas encore.

Doug
la source