compilation à partir du code source

12
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 Avantages

Upload: kieran-bowman

Post on 30-Dec-2015

23 views

Category:

Documents


4 download

DESCRIPTION

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. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Compilation à partir du code source

Master 1 ère année Sécurité des Systèmes

Informatique

Master 1 ère année Sécurité des Systèmes

Informatique

11

Compilation à partir du code source

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

Page 2: Compilation à partir du code source

Master 1 ère année Sécurité des Systèmes

Informatique

Master 1 ère année Sécurité des Systèmes

Informatique

22

Compilation à partir du code source

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

Page 3: Compilation à partir du code source

Master 1 ère année Sécurité des Systèmes

Informatique

Master 1 ère année Sécurité des Systèmes

Informatique

33

Compilation à partir du code source

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

Page 4: Compilation à partir du code source

Master 1 ère année Sécurité des Systèmes

Informatique

Master 1 ère année Sécurité des Systèmes

Informatique

44

Compilation à partir du code source

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

Page 5: Compilation à partir du code source

Master 1 ère année Sécurité des Systèmes

Informatique

Master 1 ère année Sécurité des Systèmes

Informatique

55

Compilation à partir du code source

Compilation à partir du code source

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 quicomposent 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-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 quicomposent 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

Page 6: Compilation à partir du code source

Master 1 ère année Sécurité des Systèmes

Informatique

Master 1 ère année Sécurité des Systèmes

Informatique

66

Compilation à partir du code source

Compilation à partir du code source

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

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

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

Page 7: Compilation à partir du code source

Master 1 ère année Sécurité des Systèmes

Informatique

Master 1 ère année Sécurité des Systèmes

Informatique

77

Compilation à partir du code source

Compilation à partir du code source

InstallationCe paquetage s'installe à l'aide la commande

rpm -i /usr/src/redhat/RPMS/i386/jabberd-2.0-10.i386.rpm

InstallationCe paquetage s'installe à l'aide la commande

rpm -i /usr/src/redhat/RPMS/i386/jabberd-2.0-10.i386.rpm

Exemple

Page 8: Compilation à partir du code source

Master 1 ère année Sécurité des Systèmes

Informatique

Master 1 ère année Sécurité des Systèmes

Informatique

88

Compilation à partir du code source

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

Page 9: Compilation à partir du code source

Master 1 ère année Sécurité des Systèmes

Informatique

Master 1 ère année Sécurité des Systèmes

Informatique

99

Compilation à partir du code source

Compilation à partir du code source

Exemple d’installation des sources

/# rpm -qpl /usr/src/redhat/SRPMS/jabber-1.4.2-3.src.rpmhowto-1.4.htmljabber-1.4.2.tar.gzjabber-FHS.patchjabber-ssl_dos_fix.patchjabber.specjabberd.initjabberd.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

Exemple d’installation des sources

/# rpm -qpl /usr/src/redhat/SRPMS/jabber-1.4.2-3.src.rpmhowto-1.4.htmljabber-1.4.2.tar.gzjabber-FHS.patchjabber-ssl_dos_fix.patchjabber.specjabberd.initjabberd.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

*.src.rpm

Page 10: Compilation à partir du code source

Master 1 ère année Sécurité des Systèmes

Informatique

Master 1 ère année Sécurité des Systèmes

Informatique

1010

Compilation à partir du code source

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-1.4.2-

root-rootEcrit: /usr/src/redhat/RPMS/i386/jabber-1.4.2-3.i386.rpmEcrit: /usr/src/redhat/RPMS/i386/jabber-devel-1.4.2-3.i386.rpmEcrit: /usr/src/redhat/RPMS/i386/jabber-debuginfo-1.4.2-3.i386.rpmExé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

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-rootEcrit: /usr/src/redhat/RPMS/i386/jabber-1.4.2-3.i386.rpmEcrit: /usr/src/redhat/RPMS/i386/jabber-devel-1.4.2-3.i386.rpmEcrit: /usr/src/redhat/RPMS/i386/jabber-debuginfo-1.4.2-3.i386.rpmExé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

*.src.rpm

Page 11: Compilation à partir du code source

Master 1 ère année Sécurité des Systèmes

Informatique

Master 1 ère année Sécurité des Systèmes

Informatique

1111

Compilation à partir du code source

Compilation à partir du code source

Nettoyage

# rpmbuild --clean /usr/src/redhat/SPECS/jabber.specExé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/BUILDtotal 0

Nettoyage

# rpmbuild --clean /usr/src/redhat/SPECS/jabber.specExé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/BUILDtotal 0

*.src.rpm

Page 12: Compilation à partir du code source

Master 1 ère année Sécurité des Systèmes

Informatique

Master 1 ère année Sécurité des Systèmes

Informatique

1212

Compilation à partir du code source

Compilation à partir du code source

PGCE (Procédé de Génération du Code Exécutable)

PGCE (Procédé de Génération du Code Exécutable)