120 likes | 216 Views
Compilation à partir du code source. Avantages. Pouvoir installer un logiciel avant qu’il ne soit packager Nouvelles fonctionnalités Failles de sécurité Meilleures performances Pouvoir ajouter des fonctionnalités soi-même. Plus de liberté et d’indépendance.
E N D
Master 1 ère année Sécurité des Systèmes Informatique Compilation à partir du code source Avantages • Pouvoir installer un logiciel avant qu’il ne soit packager • Nouvelles fonctionnalités • Failles de sécurité • Meilleures performances • Pouvoir ajouter des fonctionnalités soi-même. • Plus de liberté et d’indépendance
Master 1 ère année Sécurité des Systèmes Informatique Compilation à partir du code source Inconvénients • Effort supplémentaire pour produire le paquetage • Gestion de configuration • Effort d’intégration (tests et validations)
Master 1 ère année Sécurité des Systèmes Informatique Compilation à partir du code source Mise en oeuvre • Téléchargement du tar ball • les sources sont pliés dans un fichier .tar.gz ou .tgz • Télécharger le fichier et le déplier l’arborescence afin de compiler • Configurer • Par convention, un fichier README ou bien INSTALL documente la procédure de compilation et d’installation • Généralement on exécute le script configure fourni dans le tar ball
Master 1 ère année Sécurité des Systèmes Informatique Compilation à partir du code source Mise en oeuvre • Compilation (de la cible principale) make • Installation make install
Master 1 ère année Sécurité des Systèmes Informatique Compilation à partir du code source Exemple • La compilation des sources jabberd-2.0s10.tar.gz, jcr-0.2.4.tar.gz et mu-conference-0.6.0.tar.gz a permit de créer les binaires suivants: jabberd script perl de lancement des 6 processus qui composent le serveur jabber c2s client to server process resolver resolver de nom router routeur des messages entre processus s2s server to server process sm storage manager process muc multi-user conference process
Master 1 ère année Sécurité des Systèmes Informatique Compilation à partir du code source Exemple • Le paquetage jabberd-2.0.10-3.i386.rpm produit comprend la distribution de fichiers suivante: /etc/jabberd/c2s.xml /etc/jabberd/jabberd.cfg /etc/jabberd/muc.xml /etc/jabberd/resolver.xml /etc/jabberd/router-users.xml /etc/jabberd/router.xml /etc/jabberd/s2s.xml /etc/jabberd/sm.xml /etc/jabberd/templates/roster.xml /etc/rc.d/init.d/jabberd /usr/share/jabberd/bin/c2s /usr/share/jabberd/bin/jabberd /usr/share/jabberd/bin/muc /usr/share/jabberd/bin/resolver /usr/share/jabberd/bin/router /usr/share/jabberd/bin/s2s /usr/share/jabberd/bin/sm /usr/share/jabberd/doc/jabberd_guide.pdf /usr/share/jabberd/man/man8/c2s.8 /usr/share/jabberd/man/man8/jabberd.8 /usr/share/jabberd/man/man8/resolver.8 /usr/share/jabberd/man/man8/router.8 /usr/share/jabberd/man/man8/s2s.8 /usr/share/jabberd/man/man8/sm.8 /usr/share/jabberd/sql/db-setup.pgsql
Master 1 ère année Sécurité des Systèmes Informatique Compilation à partir du code source Exemple • Installation Ce paquetage s'installe à l'aide la commande rpm -i /usr/src/redhat/RPMS/i386/jabberd-2.0-10.i386.rpm
Master 1 ère année Sécurité des Systèmes Informatique Compilation à partir du code source *.src.rpm • L’arborescence utilisée (par défaut) est /usr/src/redhat/BUILD/ répertoire de construction /usr/src/redhat/RPMS/ paquetages /usr/src/redhat/SOURCES/ tarball installé par *.src.rpm /usr/src/redhat/SPECS/ *.spec installé par *.src.rpm /usr/src/redhat/SRPMS/ copie des *.src.rpm (convention)
Master 1 ère année Sécurité des Systèmes Informatique Compilation à partir du code source *.src.rpm • Exemple d’installation des sources /# rpm -qpl /usr/src/redhat/SRPMS/jabber-1.4.2-3.src.rpm howto-1.4.html jabber-1.4.2.tar.gz jabber-FHS.patch jabber-ssl_dos_fix.patch jabber.spec jabberd.init jabberd.sysconfig # ls -l /usr/src/redhat/SPECS/ /usr/src/redhat/SOURCES/ /usr/src/redhat/SOURCES/: total 744 -r--r--r-- 1 root users 39121 jui 25 2002 howto-1.4.html -rw-r--r-- 1 root users 691919 jui 25 2002 jabber-1.4.2.tar.gz -r--r--r-- 1 root users 4778 jui 25 2002 jabberd.init -r--r--r-- 1 root users 379 jui 25 2002 jabberd.sysconfig -r--r--r-- 1 root users 4940 jui 25 2002 jabber-FHS.patch -r--r--r-- 1 root users 1973 jui 25 2002 jabber-ssl_dos_fix.patch /usr/src/redhat/SPECS/: total 8 -r--r--r-- 1 root users 5314 nov 12 23:48 jabber.spec
Master 1 ère année Sécurité des Systèmes Informatique Compilation à partir du code source *.src.rpm • Exemple de compilation # rpmbuild -bb /usr/src/redhat/SPECS/jabber.spec … Vérification des fichiers non empaquetés: /usr/lib/rpm/check-files /%{tmpdir}/jabber-1.4.2-root-root Ecrit: /usr/src/redhat/RPMS/i386/jabber-1.4.2-3.i386.rpm Ecrit: /usr/src/redhat/RPMS/i386/jabber-devel-1.4.2-3.i386.rpm Ecrit: /usr/src/redhat/RPMS/i386/jabber-debuginfo-1.4.2-3.i386.rpm Exécution_de(%clean): /bin/sh -e /var/tmp/rpm-tmp.5033 + umask 022 + cd /usr/src/redhat/BUILD + cd jabber-1.4.2 + rm -rf '/%{tmpdir}/jabber-1.4.2-root-root' + exit 0
Master 1 ère année Sécurité des Systèmes Informatique Compilation à partir du code source *.src.rpm • Nettoyage # rpmbuild --clean /usr/src/redhat/SPECS/jabber.spec Exécution_de(--clean): /bin/sh -e /var/tmp/rpm-tmp.43406 + umask 022 + cd /usr/src/redhat/BUILD + rm -rf jabber-1.4.2 + exit 0 [root@siemens root]# ls -l /usr/src/redhat/BUILD total 0
Master 1 ère année Sécurité des Systèmes Informatique Compilation à partir du code source • PGCE (Procédé de Génération du Code Exécutable)