Serveurs Sécurisés · 4 min read · Feb 07, 2026
Serveurs Sécurisés : Construction de Paquets Avec EnGarde Secure Linux
Serveurs Sécurisés : Construction de Paquets Avec EnGarde Secure Linux
Contributeurs : Eckie Silapaswang et William Keys de Guardian Digital
Introduction
Bien que EnGarde Secure Linux n’inclue pas un environnement de développement “prêt à l’emploi”, tous les outils pour en configurer un sont disponibles via le Réseau Securisé de Guardian Digital. Le but de ce document est de vous fournir, en tant que développeur logiciel, les instructions pour configurer votre propre environnement de construction de paquets. Après avoir construit l’environnement, nous vous guiderons à travers la construction d’un paquet pour le langage de programmation orienté objet populaire, Ruby.
Configuration de Votre Environnement
Ce dont vous aurez besoin :
- Une machine pour faire votre développement. Il n’est pas recommandé de faire cela sur une machine de production. Cette machine devrait être assez puissante, ou vous devriez avoir beaucoup de patience. Cette machine devrait avoir la dernière version d’EnGarde Secure Linux Community installée.
- Des conseils sur la façon de construire des RPM. Il existe de nombreux HOWTO disponibles.
Une fois que vous avez tout ce qui précède, vous pouvez vous connecter en tant que root, passer à sysadm_r, et désactiver SELinux :
[root@engarde ~]# newrole -r sysadm_r
Authenticating root.
Password:[root@engarde ~]# setenforce 0Ensuite, vous devez installer les paquets suivants :
[root@engarde ~]# apt-get update
Get:1 gdsn://updates.guardiandigital.com rapier release
Fetched 478B in 0s (1794B/s)
Get:1 gdsn://updates.guardiandigital.com rapier/core pkglist
Get:2 gdsn://updates.guardiandigital.com rapier/core release
Fetched 149kB in 0s (176kB/s)
Reading Package Lists... Done
Building Dependency Tree... Done[root@engarde ~]# apt-get install rpm-build rpm-devel autoconf automake gcc gcc-c++ make patch binutils glibc-devel kernel-headers libstdc++-devel
Reading Package Lists... Done
Building Dependency Tree... Done
The following NEW packages will be installed:
autoconf automake binutils gcc gcc-c++ glibc-devel kernel-headers
libstdc++-devel make patch rpm-build rpm-devel
0 upgraded, 12 newly installed, 0 removed and 6 not upgraded.
Need to get 48.3MB of archives.
After unpacking 154MB of additional disk space will be used.
...
Committing changes...
Preparing... ########################################### [100%]
1:binutils ########################################### [100%]
12:rpm-build ########################################### [100%]
Done.L’autre moyen d’installer les paquets nécessaires est via l’EnGarde WebTool :

Réseau Securisé de Guardian Digital : Interface de Gestion des Paquets
À ce stade, vous avez installé la plupart des paquets de développement de base. Au fur et à mesure que vous construisez des paquets qui se lient à d’autres paquets, vous devrez très probablement installer d’autres paquets -devel. Vous pouvez installer les paquets via WebTool ou en ligne de commande en utilisant apt-get.
[root@engarde ~]# echo "rpm-src gdsn://updates.guardiandigital.com/GDSNROOT rapier core" >> /etc/apt/sources.listEnsuite, exécutez apt-get update :
[root@engarde ~]# apt-get update[root@engarde ~]# apt-get source ruby
Reading Package Lists... Done
Building Dependency Tree... Done
Need to get 4324kB of source archives.
Get:1 gdsn://updates.guardiandigital.com rapier/core ruby 1.8.4-1 (srpm) [4324kB]
Fetched 4324kB in 5s (861kB/s)
1:ruby ########################################### [100%]À ce stade, les sources du paquet sont installées dans /usr/src/engarde/SOURCES, et le fichier spec est dans /usr/src/engarde/SPECS :
...
Group: Development/Languages
Requires: %{name}-libs = %{version}-%{release}
BuildRequires: readline readline-devel ncurses ncurses-devel gdbm
gdbm-devel
BuildRequires: glibc-devel autoconf gcc unzip
BuildRequires: groff bison openssl-devel zlib-devel
BuildRequires: db4-devel libtermcap-devel
BuildRoot: %{_tmppath}/%{name}-%{version}-root
...Installez les paquets requis indiqués ci-dessus en utilisant apt-get :
[root@engarde ~]# apt-get install readline readline-devel ncurses ncurses-devel gdbm gdbm-devel glibc-devel autoconf gcc unzip groff bison openssl-devel zlib-devel db4-devel libtermcap-develÀ partir de là, vous devriez vérifier l’architecture de votre environnement. Allez dans le répertoire /usr/include et notez les liens symboliques ‘asm’ :
[root@xen8 include]# cd /usr/include [root@xen8 include]# rm asm
[root@xen8 include]# ln -s ../src/linux/include/asm-i386/ asm Pour construire le paquet, utilisez rpmbuild (cette étape peut prendre un certain temps) :
[root@engarde SPECS]# rpmbuild -ba ruby.spec
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.69447
+ umask 022
+ cd /usr/src/engarde/BUILD
+ cd /usr/src/engarde/BUILD
+ rm -rf ruby-1.8.4
+ /bin/mkdir -p ruby-1.8.4
+ cd ruby-1.8.4
+ /usr/bin/gzip -dc /usr/src/engarde/SOURCES/ruby-1.8.4.tar.gz
...
Wrote: /usr/src/engarde/SRPMS/ruby-1.8.4-1.src.rpm
Wrote: /usr/src/engarde/RPMS/i686/ruby-1.8.4-1.i686.rpm
Wrote: /usr/src/engarde/RPMS/i686/ruby-libs-1.8.4-1.i686.rpm
Wrote: /usr/src/engarde/RPMS/i686/ruby-devel-1.8.4-1.i686.rpm
Wrote: /usr/src/engarde/RPMS/i686/ruby-docs-1.8.4-1.i686.rpm
... Bien sûr, nous aimerions construire le paquet le plus récent possible pour Ruby. Au moment de cet article, la dernière version de Ruby est 1.8.6.
[root@xen8 SOURCES]# wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.6.tar.gz
--10:28:00-- ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.6.tar.gz
...
100%[==========================================================>]
4,589,394 346.30K/s ETA 00:00
10:28:17 (308.40 KB/s) - `ruby-1.8.6.tar.gz' saved [4589394]Changez de répertoire vers le répertoire du fichier spec et éditez le fichier ruby.spec avec votre éditeur de texte préféré.
Release: 1
to
Release: 2Nous changeons ensuite la version de Ruby de 1.8.4 à 1.8.6 :
%doc %{name}-%{version}/ToDo
%doc %{name}-%{version}/doc/NEWS
%doc tmp-ruby-docs/ruby/*
to this:
%doc %{name}-%{version}/ToDo
%doc %{name}-%{version}/doc/NEWS-1.8.0
%doc tmp-ruby-docs/ruby/*Cela devrait suffire pour construire la source. Une dernière chose que vous devriez faire pour tout votre travail acharné est de vous créditer pour avoir assemblé ce paquet - allez à la fin du fichier spec et ajoutez-vous :
[root@engarde SPECS]# rpmbuild -ba ruby.spec
...
+ umask 022
+ cd /usr/src/engarde/BUILD
+ cd /usr/src/engarde/BUILD
+ rm -rf ruby-1.8.6
+ /bin/mkdir -p ruby-1.8.6
+ cd ruby-1.8.6
+ /usr/bin/gzip -dc /usr/src/engarde/SOURCES/ruby-1.8.6.tar.gz
...
Wrote: /usr/src/engarde/SRPMS/ruby-1.8.6-2.src.rpm
Wrote: /usr/src/engarde/RPMS/i686/ruby-1.8.6-2.i686.rpm
Wrote: /usr/src/engarde/RPMS/i686/ruby-libs-1.8.6-2.i686.rpm
Wrote: /usr/src/engarde/RPMS/i686/ruby-devel-1.8.6-2.i686.rpm
Wrote: /usr/src/engarde/RPMS/i686/ruby-docs-1.8.6-2.i686.rpm
...Excellent travail ! Vous venez de construire un paquet mis à jour pour la dernière version de Ruby !
Références
- Packaging software with RPM, Parts 1-3 - http://www-128.ibm.com/developerworks/library/l-rpm1/
- http://www-128.ibm.com/developerworks/library/l-rpm2
- http://www-128.ibm.com/developerworks/linux/library/l-rpm3.html
- Maximum RPM - http://www.rpm.org/max-rpm/
- Ruby Programming Language - http://www.ruby-lang.org/
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.