Master 1 ère année Sécurité des Systèmes Informatique 1 Compilation à partir du code source 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 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 Avantages
Master 1 ère année Sécurité des Systèmes Informatique 2 Compilation à partir du code source Effort supplémentaire pour produire le paquetage Gestion de configuration Effort d’intégration (tests et validations) Effort supplémentaire pour produire le paquetage Gestion de configuration Effort d’intégration (tests et validations) Inconvénients
Master 1 ère année Sécurité des Systèmes Informatique 3 Compilation à partir du code source 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 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 Mise en oeuvre
Master 1 ère année Sécurité des Systèmes Informatique 4 Compilation à partir du code source Compilation (de la cible principale) make Installation make install Compilation (de la cible principale) make Installation make install Mise en oeuvre
Master 1 ère année Sécurité des Systèmes Informatique 5 Compilation à partir du code source La compilation des sources jabberd-2.0s10.tar.gz, jcr tar.gz et mu-conference 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 La compilation des sources jabberd-2.0s10.tar.gz, jcr tar.gz et mu-conference 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 Exemple
Master 1 ère année Sécurité des Systèmes Informatique 6 Compilation à partir du code source Le paquetage jabberd 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 Le paquetage jabberd 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 Exemple /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 /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 7 Compilation à partir du code source Installation Ce paquetage s'installe à l'aide la commande rpm -i /usr/src/redhat/RPMS/i386/jabberd i386.rpm Installation Ce paquetage s'installe à l'aide la commande rpm -i /usr/src/redhat/RPMS/i386/jabberd i386.rpm Exemple
Master 1 ère année Sécurité des Systèmes Informatique 8 Compilation à partir du code source 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) 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) *.src.rpm
Master 1 ère année Sécurité des Systèmes Informatique 9 Compilation à partir du code source Exemple d’installation des sources / # rpm -qpl /usr/src/redhat/SRPMS/jabber src.rpm howto-1.4.html jabber 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 jui howto-1.4.html -rw-r--r-- 1 root users jui jabber tar.gz -r--r--r-- 1 root users 4778 jui jabberd.init -r--r--r-- 1 root users 379 jui jabberd.sysconfig -r--r--r-- 1 root users 4940 jui jabber-FHS.patch -r--r--r-- 1 root users 1973 jui jabber-ssl_dos_fix.patch /usr/src/redhat/SPECS/: total 8 -r--r--r-- 1 root users 5314 nov 12 23:48 jabber.spec Exemple d’installation des sources / # rpm -qpl /usr/src/redhat/SRPMS/jabber src.rpm howto-1.4.html jabber 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 jui howto-1.4.html -rw-r--r-- 1 root users jui jabber tar.gz -r--r--r-- 1 root users 4778 jui jabberd.init -r--r--r-- 1 root users 379 jui jabberd.sysconfig -r--r--r-- 1 root users 4940 jui jabber-FHS.patch -r--r--r-- 1 root users 1973 jui jabber-ssl_dos_fix.patch /usr/src/redhat/SPECS/: total 8 -r--r--r-- 1 root users 5314 nov 12 23:48 jabber.spec *.src.rpm
Master 1 ère année Sécurité des Systèmes Informatique 10 Compilation à partir du code source 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 root-root Ecrit: /usr/src/redhat/RPMS/i386/jabber i386.rpm Ecrit: /usr/src/redhat/RPMS/i386/jabber-devel i386.rpm Ecrit: /usr/src/redhat/RPMS/i386/jabber-debuginfo i386.rpm Exécution_de(%clean): /bin/sh -e /var/tmp/rpm-tmp umask cd /usr/src/redhat/BUILD + cd jabber rm -rf '/%{tmpdir}/jabber root-root' + exit 0 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 root-root Ecrit: /usr/src/redhat/RPMS/i386/jabber i386.rpm Ecrit: /usr/src/redhat/RPMS/i386/jabber-devel i386.rpm Ecrit: /usr/src/redhat/RPMS/i386/jabber-debuginfo i386.rpm Exécution_de(%clean): /bin/sh -e /var/tmp/rpm-tmp umask cd /usr/src/redhat/BUILD + cd jabber rm -rf '/%{tmpdir}/jabber root-root' + exit 0 *.src.rpm
Master 1 ère année Sécurité des Systèmes Informatique 11 Compilation à partir du code source Nettoyage # rpmbuild --clean /usr/src/redhat/SPECS/jabber.spec Exécution_de(--clean): /bin/sh -e /var/tmp/rpm-tmp umask cd /usr/src/redhat/BUILD + rm -rf jabber exit 0 root]# ls -l /usr/src/redhat/BUILD total 0 Nettoyage # rpmbuild --clean /usr/src/redhat/SPECS/jabber.spec Exécution_de(--clean): /bin/sh -e /var/tmp/rpm-tmp umask cd /usr/src/redhat/BUILD + rm -rf jabber exit 0 root]# ls -l /usr/src/redhat/BUILD total 0 *.src.rpm
Master 1 ère année Sécurité des Systèmes Informatique 12 Compilation à partir du code source PGCE (Procédé de Génération du Code Exécutable)