Desenvolvimento · 4 min read · Feb 07, 2026

Servidores Seguros: Construção de Pacotes com EnGarde Secure Linux

Servidores Seguros: Construção de Pacotes com EnGarde Secure Linux

Contribuidores: Eckie Silapaswang e William Keys da Guardian Digital

Introdução

Embora EnGarde Secure Linux não inclua um ambiente de desenvolvimento “pronto para uso”, todas as ferramentas para configurar um estão disponíveis através da Rede Segura da Guardian Digital. O objetivo deste documento é fornecer a você, o desenvolvedor de software, as instruções para configurar um ambiente de construção de pacotes próprio. Após construir o ambiente, iremos guiá-lo na construção de um pacote para a popular linguagem de programação orientada a objetos, Ruby.

Configurando Seu Ambiente

O que você precisará:

  • Uma máquina para realizar seu desenvolvimento. Não é recomendado fazer isso em uma máquina de produção. Esta máquina deve ser um pouco poderosa, ou você deve ter muita paciência. Esta máquina deve ter a versão mais recente do EnGarde Secure Linux Community instalada.
  • Dicas sobre como construir RPM’s. Existem muitos HOWTO’s disponíveis.

Uma vez que você tenha tudo isso, você pode fazer login como root, mudar para sysadm_r e desabilitar o SELinux:

[root@engarde ~]# newrole -r sysadm_r  
Autenticando root.   
Senha:
[root@engarde ~]# setenforce 0

Em seguida, você deve instalar os seguintes pacotes:

[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... Feito   
Building Dependency Tree... Feito
[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... Feito   
Building Dependency Tree... Feito   
Os seguintes NOVOS pacotes serão instalados:   
autoconf automake binutils gcc gcc-c++ glibc-devel kernel-headers   
libstdc++-devel make patch rpm-build rpm-devel   
0 atualizado, 12 recém-instalados, 0 removidos e 6 não atualizados.   
Necessário baixar 48.3MB de arquivos.   
Após descompactar, 154MB de espaço em disco adicional serão usados.   
...   
Comitando mudanças...   
Preparando... ########################################### [100%]   
1:binutils ########################################### [100%]   
12:rpm-build ########################################### [100%]   
Feito.

A outra maneira de instalar os pacotes necessários é através da EnGarde WebTool:

Gerenciamento de Pacotes GDSN

Rede Segura da Guardian Digital: Interface de Gerenciamento de Pacotes

Neste ponto, você tem a maioria dos pacotes de desenvolvimento essenciais instalados. À medida que você constrói pacotes que se vinculam a outros pacotes, você definitivamente terá que instalar outros pacotes -devel. Você pode instalar os pacotes via WebTool ou pela linha de comando usando apt-get.

[root@engarde ~]# echo "rpm-src gdsn://updates.guardiandigital.com/GDSNROOT rapier core" >> /etc/apt/sources.list

Em seguida, execute apt-get update:

[root@engarde ~]# apt-get update
[root@engarde ~]# apt-get source ruby   
Reading Package Lists... Feito   
Building Dependency Tree... Feito   
Necessário baixar 4324kB de arquivos fonte.   
Get:1 gdsn://updates.guardiandigital.com rapier/core ruby 1.8.4-1 (srpm) [4324kB]   
Fetched 4324kB in 5s (861kB/s)   
1:ruby ########################################### [100%]

Neste ponto, os fontes do pacote estão instalados em /usr/src/engarde/SOURCES, e o arquivo spec está em /usr/src/engarde/SPECS:

...   
Grupo: Desenvolvimento/Linguagens   
Requer: %{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   
...

Instale os pacotes necessários mostrados acima 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-devel

A partir daqui, você deve verificar a arquitetura do seu ambiente. Vá para o diretório /usr/include e observe os links simbólicos ‘asm’:

[root@xen8 include]# cd /usr/include [root@xen8 include]# rm asm   
[root@xen8 include]# ln -s ../src/linux/include/asm-i386/ asm  

Para construir o pacote, use rpmbuild (esta etapa pode demorar um pouco):

[root@engarde SPECS]# rpmbuild -ba ruby.spec   
Executando(%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   
...   
Escreveu: /usr/src/engarde/SRPMS/ruby-1.8.4-1.src.rpm   
Escreveu: /usr/src/engarde/RPMS/i686/ruby-1.8.4-1.i686.rpm   
Escreveu: /usr/src/engarde/RPMS/i686/ruby-libs-1.8.4-1.i686.rpm   
Escreveu: /usr/src/engarde/RPMS/i686/ruby-devel-1.8.4-1.i686.rpm   
Escreveu: /usr/src/engarde/RPMS/i686/ruby-docs-1.8.4-1.i686.rpm   
...  

Claro, gostaríamos de construir o pacote mais recente possível para Ruby. No momento deste artigo, a versão mais recente do 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' salvo [4589394]

Mude para o diretório do arquivo spec e edite o arquivo ruby.spec com seu editor de texto favorito.

Release: 1   
para   
Release: 2

Em seguida, mudamos a versão do Ruby de 1.8.4 para 1.8.6:

%doc %{name}-%{version}/ToDo   
%doc %{name}-%{version}/doc/NEWS   
%doc tmp-ruby-docs/ruby/*   
para isso:   
%doc %{name}-%{version}/ToDo   
%doc %{name}-%{version}/doc/NEWS-1.8.0   
%doc tmp-ruby-docs/ruby/*

Isso deve ser suficiente para construir a fonte. Uma última coisa que você deve fazer por todo o seu trabalho duro é se creditar por montar este pacote - vá até o final do arquivo spec e adicione seu nome:

[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  
...   
Escreveu: /usr/src/engarde/SRPMS/ruby-1.8.6-2.src.rpm   
Escreveu: /usr/src/engarde/RPMS/i686/ruby-1.8.6-2.i686.rpm   
Escreveu: /usr/src/engarde/RPMS/i686/ruby-libs-1.8.6-2.i686.rpm   
Escreveu: /usr/src/engarde/RPMS/i686/ruby-devel-1.8.6-2.i686.rpm   
Escreveu: /usr/src/engarde/RPMS/i686/ruby-docs-1.8.6-2.i686.rpm   
...

Ótimo trabalho! Você acabou de construir um pacote atualizado para a versão mais recente do Ruby!

Referências

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.