Quelles recommandations feriez vous pour compiler .... ?

Bien le bonjour chez vous … :006

Vaste sujet que celui-ci …

Pour ce faire par thème numéroté. Ceci afin d’une lecture aisé pour tout à chacun … merci … de bien vouloir les utilisées dans vos posts :wink:


1* Paquets utilisés recommandés.

Ceux ci vous semblent ils opportuns ? Voir minimales … ?

 # apt-get install build-essential checkinstall  binutils flex bison  cpp  curl cvs autoconf  bzip2 

Bien sur vous me diraient … tout dépend de ce que l’on souhaite compiler.

2* Avez vous des addictions dans ce domaine.

3* Ajout systématique de la source dans /etc/apt/sources.list.

4* Sous quelle partition … répertoire. (/usr/local … /opt … selon le partitionnement de tout à chacun).

5* Stimuler une installation complète … utilisation avant “install” définitive (si possible).

6* Dé-installer proprement.

7* Que ne feriez vous absolument pas.

8* Y-a t-il des sources, des paquets non recommandées ou à éviter selon l’architecture.

[u]9* Vos compilations … aboutit … échec.

[/u]
10* Impératifs

11* Documentations … livres … liens.

 [color=#000080]11-1*  fournit sur ce fil :[/color]

CheckInstall : wiki.debian.org/CheckInstall
Faire un paquet version complète : faire-un-paquet-version-complete-t4691.html

12* Risques

13* Autre thème.

14* Divers … [size=85]pour les superstitieux[/size] :005

Toutes ces questions qui font la différence entre vous et le “novice” que je suis.

[size=85]ps : le sujet ici présent n’étant pas “pourquoi compiler”.[/size]

Vous remerciant de votre contribution, je vous en serre cinq. :wink:

Ps : j’essayerai dans la mesure du possible de joindre toutes les recommandations que vous aurez faites sur ce fil, ici même.

Beaucoup de questions là, je vais répondre à la 6 car je ne suis pas un pro(loin de là même)

6* Dé-installer proprement.
Personnellement je compile avec checkinstall pour créer un paquet deb facilement désinstallable, ce qui donne à la compilation:

[code]$ ./configure
$ make
$ su

checkinstall make install[/code]

Le paquet ainsi créé n’ est utilisable que sur l’ ordinateur ou il a été compilé(car les dépendances ne sont pas dans le paquet) mais il a l’ avantage de pouvoir être facilement désinstallé.

11* Documentations … livres … liens.
Lien en Anglais

12* Mauvaise gestion des dépendances à plus ou moins long terme.

4* Sous quelle partition … répertoire.
[ul]
[li]/usr/local pour les logiciels qui veulent un peu tout faire (ils ont une arborescence classique usr, bin etc)[/li]
[li]/opt pour le reste (logiciel en Java qu’il suffit de dézipper généralement)[/li][/ul]

42* j’ai pas saisi toutes tes questions mais je la ramène quand même
En général que ça soit pour mes projets perso ou non je génère des paquets debian que je colle sur mon dépôt. Que ça soit pour l’installation, la suppression ou les mises à jour c’est plus pratique. Le fichier de contrôle permet la gestion des dépendances et le fichier de règles les opérations un peu exotiques.
J’ai mis longtemps à m’en sortir avec l’empaquetage debian et maintenant j’ai du mal à m’en passer.

[quote=“antalgeek”]42* j’ai pas saisi toutes tes questions mais je la ramène quand même
En général que ça soit pour mes projets perso ou non je génère des paquets debian que je colle sur mon dépôt. Que ça soit pour l’installation, la suppression ou les mises à jour c’est plus pratique. Le fichier de contrôle permet la gestion des dépendances et le fichier de règles les opérations un peu exotiques.
J’ai mis longtemps à m’en sortir avec l’empaquetage debian et maintenant j’ai du mal à m’en passer.[/quote]
Il parle pas de projet perso, justement.

J’étais pas sûr.

Un lien vers le fil de fran.b concernant l’empaquetage debian : faire-un-paquet-version-complete-t4691.html

Bonjour,

Justement, concernant les dépendances … je prends ici en exemple sur lequel j’effectue une recherche de celles-ci.

Les commandes suivantes m’informes des dépendances de la dernière version de … oui … ?

root@Debian:/home/loreleil# apt-cache showsrc aptitude | grep Build-Depends Build-Depends: libapt-pkg-dev (>= 0.7.0), debhelper (>= 4.0.0), libsigc++-2.0-dev, libcppunit-dev, libcwidget-dev (>= 0.5.6.1-2), libncursesw5-dev, gettext, g++ (>= 4:3.2.2-0), docbook-xsl, docbook-xml, xsltproc, html2text, po4a, libept-dev (>= 0.5) root@Debian:/home/loreleil#

root@Debian:/home/loreleil# apt-get -s build-dep aptitude Lecture des listes de paquets... Fait Construction de l'arbre des dépendances Lecture des informations d'état... Fait Les NOUVEAUX paquets suivants seront installés : debhelper docbook-xsl html2text intltool-debian libapt-pkg-dev libcppunit-1.12-1 libcppunit-dev libcwidget-dev libept-dev libncursesw5-dev libsgmls-perl libsigc++-2.0-dev libsp1c2 libtagcoll2-dev libwibble-dev libxapian-dev pkg-config po-debconf po4a sp xsltproc 0 mis à jour, 21 nouvellement installés, 0 à enlever et 0 non mis à jour. Inst html2text (1.3.2a-5 Debian:5.0.8/stable) Inst intltool-debian (0.35.0+20060710.1 Debian:5.0.8/stable) Inst po-debconf (1.0.15 Debian:5.0.8/stable) Inst debhelper (7.0.15 Debian:5.0.8/stable) Inst docbook-xsl (1.73.2.dfsg.1-5 Debian:5.0.8/stable) Inst libapt-pkg-dev (0.7.20.2+lenny2 Debian:5.0.8/stable) Inst libcppunit-1.12-1 (1.12.1-1 Debian:5.0.8/stable) Inst libcppunit-dev (1.12.1-1 Debian:5.0.8/stable) Inst libwibble-dev (0.1.19 Debian:5.0.8/stable) Inst libtagcoll2-dev (2.0.11-1 Debian:5.0.8/stable) Inst libxapian-dev (1.0.7-4 Debian:5.0.8/stable) Inst libept-dev (0.5.22 Debian:5.0.8/stable) Inst libncursesw5-dev (5.7+20081213-1 Debian:5.0.8/stable) Inst libsgmls-perl (1.03ii-32 Debian:5.0.8/stable) Inst pkg-config (0.22-1 Debian:5.0.8/stable) Inst libsigc++-2.0-dev (2.0.18-2 Debian:5.0.8/stable) Inst libsp1c2 (1.3.4-1.2.1-47 Debian:5.0.8/stable) Inst sp (1.3.4-1.2.1-47 Debian:5.0.8/stable) Inst po4a (0.34-2 Debian:5.0.8/stable) Inst xsltproc (1.1.24-2 Debian:5.0.8/stable) Inst libcwidget-dev (0.5.12-4 Debian:5.0.8/stable) Conf html2text (1.3.2a-5 Debian:5.0.8/stable) Conf intltool-debian (0.35.0+20060710.1 Debian:5.0.8/stable) Conf po-debconf (1.0.15 Debian:5.0.8/stable) Conf debhelper (7.0.15 Debian:5.0.8/stable) Conf docbook-xsl (1.73.2.dfsg.1-5 Debian:5.0.8/stable) Conf libapt-pkg-dev (0.7.20.2+lenny2 Debian:5.0.8/stable) Conf libcppunit-1.12-1 (1.12.1-1 Debian:5.0.8/stable) Conf libcppunit-dev (1.12.1-1 Debian:5.0.8/stable) Conf libwibble-dev (0.1.19 Debian:5.0.8/stable) Conf libtagcoll2-dev (2.0.11-1 Debian:5.0.8/stable) Conf libxapian-dev (1.0.7-4 Debian:5.0.8/stable) Conf libept-dev (0.5.22 Debian:5.0.8/stable) Conf libncursesw5-dev (5.7+20081213-1 Debian:5.0.8/stable) Conf libsgmls-perl (1.03ii-32 Debian:5.0.8/stable) Conf pkg-config (0.22-1 Debian:5.0.8/stable) Conf libsigc++-2.0-dev (2.0.18-2 Debian:5.0.8/stable) Conf libsp1c2 (1.3.4-1.2.1-47 Debian:5.0.8/stable) Conf sp (1.3.4-1.2.1-47 Debian:5.0.8/stable) Conf po4a (0.34-2 Debian:5.0.8/stable) Conf xsltproc (1.1.24-2 Debian:5.0.8/stable) Conf libcwidget-dev (0.5.12-4 Debian:5.0.8/stable) root@Debian:/home/loreleil#
Mais dans un premier temps ne me dises pas si celui-ci est installé.
Il me faut utiliser ceci :

root@Debian:/home/loreleil# apt-get -s install aptitude Lecture des listes de paquets... Fait Construction de l'arbre des dépendances Lecture des informations d'état... Fait aptitude est déjà la plus récente version disponible. 0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour. root@Debian:/home/loreleil#
Où :

root@Debian:/home/loreleil# aptitude search aptitude i aptitude - Gestionnaire de paquets en mode terminal p aptitude-dbg - Symboles de débogage pour le gestionnaire de paquets aptitude v aptitude-doc - p aptitude-doc-cs - Manuel tchèque de aptitude, un gestionnaire de paquets en mode terminal p aptitude-doc-en - Manuel anglais pour aptitude, un gestionnaire de paquets en mode terminal p aptitude-doc-fi - Manuel finnois pour aptitude, un gestionnaire de paquets en mode terminal i aptitude-doc-fr - Manuel français pour aptitude, un gestionnaire de paquets en mode terminal p aptitude-doc-ja - Manuel japonais pour aptitude, un gestionnaire de paquets en mode terminal root@Debian:/home/loreleil#
Où :

[code]root@Debian:/home/loreleil# aptitude show aptitude
Paquet : aptitude
État: installé
Automatiquement installé: non
Version : 0.4.11.11-1~lenny1
Priorité : important
Section : admin
Responsable : Daniel Burrows dburrows@debian.org
Taille décompressée : 10,0M
Dépend: libapt-pkg-libc6.7-6-4.6, libc6 (>= 2.7-1), libcwidget3, libept0 (>= 0.5.22), libgcc1 (>= 1:4.1.1), libncursesw5 (>= 5.6+20071006-3), libsigc+±2.0-0c2a (>= 2.0.2),
libstdc++6 (>= 4.2.1), libxapian15, zlib1g (>= 1:1.1.4)
Recommande: aptitude-doc-en | aptitude-doc, libparse-debianchangelog-perl
Suggère: tasksel, debtags
Description : Gestionnaire de paquets en mode terminal
Aptitude est un gestionnaire de paquets en mode terminal avec bon nombre de fonctionnalités utiles, incluant : une syntaxe à la mutt pour trouver les paquets de façon flexible,
la sauvegarde des actions utilisateur comme avec dselect, la capacité d’extraire et d’afficher le journal des changements (« changelog ») de la plupart des paquets Debian, ainsi
qu’un mode ligne de commande similaire à celui de apt-get.

Aptitude est compatible an 2000, sans matières grasses, naturellement propre et bien élevé.

root@Debian:/home/loreleil# [/code]

Il y a t-il pas plus simple et moins contraignant ?
A savoir, je souhaite connaître les dépendances de nécessaire à son installation et être informé de celles déjà installé par d’autres paquets.

[code] Pour connaître la liste des packages contenant un mot clé particulier :

        apt-cache search mot_cle

       Pour obtenir plus d'information sur un paquetage donné  :

        apt-cache show nom_du_package

       Pour afficher les dépendances d'un paquetage :

        apt-cache depends  nom_du_package

       Pour connaître le paquetage auquel un fichier appartient :

        apt-file search nom_du_fichier

       Pour connaître la lite des fichiers d'un paquetage  :

        apt-file list nom_du_package[/code]

Enfin bref, tout savoir en une seule commande !

[edit] : Peut-on obtenir également ces mêmes informations (dépendances) sur un paquet qui ne figure pas dans les sources Debian … et quelle est la meilleur solution ?

Re,

[quote=“MisterFreez”]4* Sous quelle partition … répertoire.
[ul]
[li]/usr/local pour les logiciels qui veulent un peu tout faire (ils ont une arborescence classique usr, bin etc)[/li]
[li]/opt pour le reste (logiciel en Java qu’il suffit de dézipper généralement)[/li][/ul][/quote]

Peut tu t’en expliquer ?

quote pour les logiciels qui veulent un peu tout faire (…) … ?
(…) pour le reste (…) … ?
[/quote]

6* Dé-installer proprement.

Ne serait ce pas plutôt ceci …

# make uninstall :wink:

[quote=“antalgeek”]
En général que ça soit pour mes projets perso ou non je génère des paquets debian que je colle sur mon dépôt. Que ça soit pour l’installation, la suppression ou les mises à jour c’est plus pratique. Le fichier de contrôle permet la gestion des dépendances et le fichier de règles les opérations un peu exotiques.
J’ai mis longtemps à m’en sortir avec l’empaquetage debian et maintenant j’ai du mal à m’en passer.[/quote]

Si je comprends bien, tu joints à ton fichier /etc/apt/sources.list le code source de ta compilation.

[quote=“loreleil.747”]Re,

[quote=“MisterFreez”]4* Sous quelle partition … répertoire.
[ul]
[li]/usr/local pour les logiciels qui veulent un peu tout faire (ils ont une arborescence classique usr, bin etc)[/li]
[li]/opt pour le reste (logiciel en Java qu’il suffit de dézipper généralement)[/li][/ul][/quote]

Peut tu t’en expliquer ?

quote pour les logiciels qui veulent un peu tout faire (…) … ?
(…) pour le reste (…) … ?
[/quote][/quote]
Ben les logiciels gérés par les autotools utilisent une arborescence standardisée (un dossier bin/, un dossier var/, etc). Ces logiciels utilisant une hiérarchisation standard peuvent s’installer les un à coté des autres. Ainsi dans /usr/local on retrouveras une hiérarchie de dossier à peu près comme dans / (c’est définis pas HFS tout ça).
A coté de ça tu as des applications qui ne fonctionnent pas comme ça (Firefox, Tomcat, Derby, Glassfish,…) eux se contentent d’un seul dossier et il suffit de les désarchiver pour les utiliser. Eux je les met dans /opt. Ainsi, dans /opt, j’ai un dossier par application et pour les désinstaller je supprimer le dossier en question.

@ MisterFreez,

[quote]les autotools[/quote] étant les paquets s’installant comme ceci … c’est bien ça ?

./configure make make install où checkinstall

checkinstall privilégier pour des compiles autre que les sources Debian, afin d’avoir la possibilité de les dé-installés proprement … c’est bien ça ?

… Si je ne mélange pas tout !

Comment reconnaître ces applications pour les installées dans /opt … et ainsi les dissociées … ?

Rectification concernant les “autotools” … je savais que j’avais cette info mais le temps de la retrouvée … le clic était lancé. :wink:

[quote]Les « autotools »

En fait, des autotools créent le fichier « configure » des sources. Le fichier « configure » est un script exécutable, qui est dans votre dossier source il nécessite d’être exécuté avec « ./ ».

make est une commande, installée dans « /usr/bin ». Il suffit donc de taper son nom pour l’exécuter. make utilise le Makefile (qui lui est dans votre dossier source). « configure » crée le Makefile à partir d’un Makefile.in (que vous avez dans les sources). Tout ça est créé à partir d’un fichier assez simple qu’écrit le développeur. Les autotools sont un ensemble de scripts qui permettent de pouvoir gérer une procédure de configuration, compilation et installation très complexe à partir de quelques fichiers (relativement) simples.
[/quote]
@ MisterFreez,

[quote=“loreleil”]

checkinstall privilégier pour des compiles autre que les sources Debian, afin d’avoir la possibilité de les dé-installés proprement … c’est bien ça ?

… Si je ne mélange pas tout !

Comment reconnaître ces applications pour les installées dans /opt … et ainsi les dissociées … ?