web-dev-qa-db-fra.com

Comment compiler et installer des programmes à partir des sources

C'est un problème qui limite vraiment mon plaisir de Linux. Si l'application n'est pas sur un référentiel ou si elle n'a pas de script d'installation, alors j'ai vraiment du mal à savoir où et comment installer une application à partir des sources.

Comparativement à Windows, c'est facile. Vous êtes (à peu près) obligé d'utiliser une application d'installation qui fait tout le travail dans un assistant. Avec Linux ... pas tant que ça.

Alors, avez-vous des conseils ou des instructions à ce sujet ou existe-t-il des sites Web qui expliquent explicitement comment, pourquoi et où installer des programmes Linux à partir des sources?

42
Nitrodist

Normalement, le projet aura un site Web avec des instructions sur la façon de le construire et de l'installer. Google pour cela en premier.

Pour la plupart, vous ferez soit:

  1. Téléchargez une archive tar (fichier tar.gz ou tar.bz2), qui est une version d'une version spécifique du code source
  2. Extraire l'archive tar avec une commande comme tar zxvf myapp.tar.gz pour une archive tar compressée ou tar jxvf myapp.tar.bz2 pour un tarball bzippé
  3. cd dans le répertoire créé ci-dessus
  4. courir ./configure && make && Sudo make install

Ou:

  1. Utilisez git ou svn ou autre pour extraire le dernier code source de leur dépôt source officiel
  2. cd dans le répertoire créé ci-dessus
  3. courir ./autogen.sh && make && Sudo make install

Configure et autogen.sh acceptent tous les deux un argument --prefix pour spécifier où le logiciel est installé. Je recommande de vérifier Où dois-je mettre les logiciels que je compile moi-même? pour des conseils sur le meilleur endroit pour installer des logiciels personnalisés.

24
Sandy

Je veux juste ajouter qu'il existe des gestionnaires de packages qui compilent les packages à partir des sources et gèrent toutes les dépendances de packages, drapeaux, etc.

Dans les systèmes BSD, c'est ports: tilisation de la collection de ports

Dans Debian, le apt-get le gestionnaire de paquets peut également être installé à partir des sources: APT HOWTO: Travailler avec les paquets sources (Il en va de même pour Ubuntu, Linux-mint et tout le reste basé sur Debian)

La distribution Gentoo utilise le gestionnaire de paquets portage, qui compile tout le système à partir des sources uniquement: Introduction à Portage .

Slackware peut compiler des packages mais je ne sais pas s'il y a un gestionnaire de packages pour cela là-bas .. =)

Quoi qu'il en soit, vous pouvez toujours compiler les packages manuellement comme Sandy mentionné ci-dessus =) Il doit également être possible d'utiliser apt-get ou portage gestionnaires de packages dans toute autre distribution ...

4
holms

Je pense qu'il est préférable de lire la documentation fournie avec le programme ou l'application spécifique que vous souhaitez installer. Habituellement, il y a des fichiers Lisezmoi/LISEZMOI à l'intérieur des archives tar (l'archive source de l'application que vous pouvez généralement télécharger) ou peut-être même des fichiers INSTALL pour lire et en savoir plus sur la façon préférée d'installer ladite application. En bref: RTFM;)

2
reiche

Un résumé pour utiliser la collection de ports dans FreeBSD:

Rechercher un port

Les ports sont organisés par catégorie, donc si vous ne savez pas dans quelle catégorie se trouve le port, vous devez d'abord le trouver:

cd /usr/ports
make search name=myport

Parfois, il y a trop d'entrées de cette façon. Personnellement, je préfère:

find /usr/ports -name myport* -print -depth 2

Utilisez le * lors de la recherche car il existe souvent plusieurs versions d'un port disponibles. L'argument profondeur garantit que vos résultats de retour ne sont pas inutilement encombrés de correspondances que vous ne voudrez probablement pas.

Configuration

Souvent, vous voudrez faire une configuration; des logiciels comme Apache et Postgres en ont pratiquement besoin. Il y a trois choix principaux: ligne de commande, environnement et créer des fichiers de configuration. Pour commencer avec la ligne de commande:

make showconfig

cela répertoriera les options de configuration par défaut. Si vous aimez les valeurs par défaut, vous êtes prêt à compiler et à installer. Si non,

make config

affichera une boîte de dialogue dans laquelle vous pourrez sélectionner les options souhaitées. (Ne vous confondez pas avec cela et make configure qui configure votre port avec les options que vous avez choisies!) C'est souvent suffisant mais pour certains logiciels, comme Apache, il y a souvent une configuration complexe qu'une simple boîte de dialogue ne gère pas. Pour cela, vous devriez également regarder les Makefile (s) qui vous donneront parfois des cibles supplémentaires pour make qui vous donneront plus d'informations. Pour continuer l'exemple Apache

make show-modules
make show-options
make show-categories

vous donnera des informations sur la configuration de vos modules choisis, les options de thread et autres. Si les valeurs par défaut de votre port sont généralement correctes et que vous souhaitez simplement modifier certaines choses, vous pouvez également passer des paires clé = valeur comme des variables d'environnement:

make MYVBL1=MYVAL1 ... install clean

Vous pouvez également définir des options de commutation via -D option:

make -D MYVAR -D MYOTHERVAR ... install clean

Pour une configuration complexe, cependant, la ligne de commande ne fonctionnera pas bien et vous êtes meilleur, aucune des deux premières méthodes ne sera efficace. Dans ce cas, vous pouvez créer un fichier de configuration et le transmettre à make avec la variable __MAKE_CONF. FreeBSD a un fichier de configuration par défaut: /etc/make.conf qui contient généralement des informations sur les ports précédemment installés et d'autres paramètres système. Pour commencer, créez un fichier avec vos options de ports, appelez-le ~/myport.mk puis combinez ce fichier avec /etc/make.conf:

cat /etc/make.conf ~/myport.mk >> ~/make.myport.conf

vous pouvez ensuite revérifier votre configuration:

make showconfig __MAKE_CONF=~/make.port.conf

et si tout semble bien:

make install clean __MAKE_CONF=~/make.myport.conf

IL FAUT SE MÉFIER! Si vous devez ajuster vos paramètres de configuration après make configure ou une installation en tout ou partie vous vous devez absolument effacer votre configuration en premier:

make rmconfig

Le non-respect de cette consigne entraînera des interactions inattendues entre le sous-système de ports, les valeurs par défaut make de votre port et la configuration souhaitée.

C'est un peu beaucoup pour un résumé, mais la complexité de la configuration concerne principalement l'application, pas le port. Bash par exemple, n'a pas vraiment d'options.

Installation

C'est la partie facile:

make install clean

ou tu peux

make build
make install
make clean

ce qui est juste plus de frappe.

C'est à peu près ça. De toute évidence, vous pouvez faire plus, comme lister récursivement les dépendances et les options de configuration, mettre à jour avec les correctifs, etc. Ici, je vais vous référer à la section Ports du Handbook , la page de manuel du sous-système de port (bonnes informations sur les cibles de make supplémentaires) et la page de manuel make .

1
gvkv

Récemment, j'ai commencé à utiliser "Checkinstall" lors de l'installation à partir d'une source extérieure à mon gestionnaire de paquets. Il construit un "package" à partir d'une archive tar tierce qui peut ensuite être installée et gérée (et désinstallée) via vos outils de gestion de packages.

Consultez cet article - http://www.linuxjournal.com/content/using-checkinstall-build-packages-source

0
aryeh