Sicurezza Server · 4 min read · Feb 07, 2026
Server Sicuri: Creazione di Pacchetti con EnGarde Secure Linux
Server Sicuri: Creazione di Pacchetti con EnGarde Secure Linux
Contributori: Eckie Silapaswang e William Keys di Guardian Digital
Introduzione
Sebbene EnGarde Secure Linux non includa un ambiente di sviluppo “pronto all’uso”, tutti gli strumenti per impostarne uno sono disponibili tramite la Rete Sicura di Guardian Digital. Lo scopo di questo documento è fornire a te, lo sviluppatore software, le istruzioni per impostare un ambiente di creazione di pacchetti tutto tuo. Dopo aver costruito l’ambiente, ti guideremo nella creazione di un pacchetto per il popolare linguaggio di programmazione orientato agli oggetti, Ruby.
Impostare il Tuo Ambiente
Cosa ti servirà:
- Una macchina su cui fare sviluppo. Non è consigliato farlo su una macchina di produzione. Questa macchina dovrebbe essere abbastanza potente, oppure dovresti avere molta pazienza. Questa macchina dovrebbe avere installata l’ultima versione di EnGarde Secure Linux Community.
- Suggerimenti su come costruire RPM. Ci sono molti HOWTO disponibili.
Una volta che hai tutto quanto sopra, puoi accedere come root, passare a sysadm_r e disabilitare SELinux:
[root@engarde ~]# newrole -r sysadm_r
Autenticazione di root.
Password:[root@engarde ~]# setenforce 0Successivamente, devi installare i seguenti pacchetti:
[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
I seguenti NUOVI pacchetti verranno installati:
autoconf automake binutils gcc gcc-c++ glibc-devel kernel-headers
libstdc++-devel make patch rpm-build rpm-devel
0 aggiornati, 12 nuovi installati, 0 rimossi e 6 non aggiornati.
Necessità di scaricare 48.3MB di archivi.
Dopo aver estratto, verranno utilizzati 154MB di spazio su disco aggiuntivo.
...
Impegno delle modifiche...
Preparazione... ########################################### [100%]
1:binutils ########################################### [100%]
12:rpm-build ########################################### [100%]
Fatto.L’altro modo per installare i pacchetti necessari è tramite l’EnGarde WebTool:

Rete Sicura di Guardian Digital: Interfaccia di Gestione Pacchetti
A questo punto hai installato la maggior parte dei pacchetti di sviluppo core. Man mano che costruisci pacchetti che si collegano ad altri pacchetti, dovrai sicuramente installare altri pacchetti -devel. Puoi installare i pacchetti tramite WebTool o dalla riga di comando usando apt-get.
[root@engarde ~]# echo "rpm-src gdsn://updates.guardiandigital.com/GDSNROOT rapier core" >> /etc/apt/sources.listPoi esegui apt-get update:
[root@engarde ~]# apt-get update[root@engarde ~]# apt-get source ruby
Reading Package Lists... Done
Building Dependency Tree... Done
Necessità di scaricare 4324kB di archivi sorgente.
Get:1 gdsn://updates.guardiandigital.com rapier/core ruby 1.8.4-1 (srpm) [4324kB]
Fetched 4324kB in 5s (861kB/s)
1:ruby ########################################### [100%]A questo punto i sorgenti del pacchetto sono installati in /usr/src/engarde/SOURCES, e il file spec si trova in /usr/src/engarde/SPECS:
...
Gruppo: Sviluppo/Linguaggi
Richiede: %{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
...Installa i pacchetti richiesti mostrati sopra usando 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-develDa qui dovresti controllare l’architettura del tuo ambiente. Vai nella directory /usr/include e annota i collegamenti simbolici ‘asm’:
[root@xen8 include]# cd /usr/include [root@xen8 include]# rm asm
[root@xen8 include]# ln -s ../src/linux/include/asm-i386/ asm Per costruire il pacchetto, usa rpmbuild (questo passaggio potrebbe richiedere un po’ di tempo):
[root@engarde SPECS]# rpmbuild -ba ruby.spec
Esecuzione(%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
...
Scritto: /usr/src/engarde/SRPMS/ruby-1.8.4-1.src.rpm
Scritto: /usr/src/engarde/RPMS/i686/ruby-1.8.4-1.i686.rpm
Scritto: /usr/src/engarde/RPMS/i686/ruby-libs-1.8.4-1.i686.rpm
Scritto: /usr/src/engarde/RPMS/i686/ruby-devel-1.8.4-1.i686.rpm
Scritto: /usr/src/engarde/RPMS/i686/ruby-docs-1.8.4-1.i686.rpm
... Certo, ci piacerebbe costruire il pacchetto più aggiornato possibile per Ruby. Al momento di questo articolo, l’ultima versione di Ruby è 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' salvato [4589394]Cambia nella directory del file spec ed edita il file ruby.spec con il tuo editor di testo preferito.
Release: 1
to
Release: 2Poi cambiamo la versione di Ruby da 1.8.4 a 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/*Questo dovrebbe essere sufficiente per costruire la sorgente. Un’ultima cosa che dovresti fare per tutto il tuo duro lavoro è dare credito a te stesso per aver messo insieme questo pacchetto - vai alla fine del file spec e aggiungi te stesso:
[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
...
Scritto: /usr/src/engarde/SRPMS/ruby-1.8.6-2.src.rpm
Scritto: /usr/src/engarde/RPMS/i686/ruby-1.8.6-2.i686.rpm
Scritto: /usr/src/engarde/RPMS/i686/ruby-libs-1.8.6-2.i686.rpm
Scritto: /usr/src/engarde/RPMS/i686/ruby-devel-1.8.6-2.i686.rpm
Scritto: /usr/src/engarde/RPMS/i686/ruby-docs-1.8.6-2.i686.rpm
...Ottimo lavoro! Hai appena costruito un pacchetto aggiornato per l’ultima versione di Ruby!
Riferimenti
- Imballaggio software con RPM, Parti 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/
- Linguaggio di programmazione Ruby - http://www.ruby-lang.org/
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.