サーバー管理 · 2 min read · Feb 07, 2026

セキュアサーバー:EnGarde Secure Linuxによるパッケージビルディング

セキュアサーバー:EnGarde Secure Linuxによるパッケージビルディング

寄稿者:Eckie SilapaswangおよびWilliam Keys(Guardian Digital)

はじめに

EnGarde Secure Linuxは「箱から出してすぐに」開発環境を含んでいませんが、開発環境を設定するためのすべてのツールはGuardian Digital Secure Networkを通じて入手可能です。この文書の目的は、ソフトウェア開発者であるあなたに、自分自身のパッケージビルディング環境を設定するための手順を提供することです。環境を構築した後、人気のオブジェクト指向プログラミング言語であるRubyのパッケージをビルドする方法を説明します。

環境の設定

必要なもの:

  • 開発を行うためのマシン。プロダクションマシンでの作業は推奨されません。このマシンはある程度パワフルである必要があり、または多くの忍耐が必要です。このマシンには最新のEnGarde Secure Linux Communityがインストールされている必要があります。
  • RPMのビルド方法に関するヒント。多くのHOWTOが存在します。

すべての準備が整ったら、rootとしてログインし、sysadm_rに切り替え、SELinuxを無効にします:

[root@engarde ~]# newrole -r sysadm_r  
rootを認証中。   
パスワード:
[root@engarde ~]# setenforce 0

次に、以下のパッケージをインストールする必要があります:

[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)   
パッケージリストを読み込み中... 完了   
依存関係ツリーを構築中... 完了
[root@engarde ~]# apt-get install rpm-build rpm-devel autoconf automake gcc gcc-c++ make patch binutils glibc-devel kernel-headers libstdc++-devel   
  
パッケージリストを読み込み中... 完了   
依存関係ツリーを構築中... 完了   
以下の新しいパッケージがインストールされます:   
autoconf automake binutils gcc gcc-c++ glibc-devel kernel-headers   
libstdc++-devel make patch rpm-build rpm-devel   
0アップグレード、12新規インストール、0削除、6未アップグレード。   
48.3MBのアーカイブを取得する必要があります。   
展開後、154MBの追加ディスクスペースが使用されます。   
...   
変更をコミット中...   
準備中... ########################################### [100%]   
1:binutils ########################################### [100%]   
12:rpm-build ########################################### [100%]   
完了。

必要なパッケージをインストールするもう一つの方法は、EnGarde WebToolを使用することです:

GDSNパッケージ管理

Guardian Digital Secure Network: パッケージ管理インターフェース

この時点で、ほとんどのコア開発パッケージがインストールされています。他のパッケージにリンクするパッケージをビルドする際には、他の-develパッケージをインストールする必要があるでしょう。WebToolまたはコマンドラインを使用してapt-getでパッケージをインストールできます。

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

次にapt-get updateを実行します:

[root@engarde ~]# apt-get update
[root@engarde ~]# apt-get source ruby   
パッケージリストを読み込み中... 完了   
依存関係ツリーを構築中... 完了   
4324kBのソースアーカイブを取得する必要があります。   
Get:1 gdsn://updates.guardiandigital.com rapier/core ruby 1.8.4-1 (srpm) [4324kB]   
5秒で4324kBを取得しました (861kB/s)   
1:ruby ########################################### [100%]

この時点で、パッケージソースは/usr/src/engarde/SOURCESにインストールされ、specファイルは/usr/src/engarde/SPECSにあります:

...   
グループ: Development/Languages   
必要: %{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   
...

上記に示された必要なパッケージを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

ここから、環境のアーキテクチャを確認する必要があります。/usr/includeディレクトリに移動し、’asm’シンボリックリンクを確認します:

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

パッケージをビルドするには、rpmbuildを使用します(このステップは時間がかかる場合があります):

[root@engarde SPECS]# rpmbuild -ba ruby.spec   
実行中(%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   
...   
書き込みました: /usr/src/engarde/SRPMS/ruby-1.8.4-1.src.rpm   
書き込みました: /usr/src/engarde/RPMS/i686/ruby-1.8.4-1.i686.rpm   
書き込みました: /usr/src/engarde/RPMS/i686/ruby-libs-1.8.4-1.i686.rpm   
書き込みました: /usr/src/engarde/RPMS/i686/ruby-devel-1.8.4-1.i686.rpm   
書き込みました: /usr/src/engarde/RPMS/i686/ruby-docs-1.8.4-1.i686.rpm   
...

もちろん、Rubyの最新のパッケージをビルドしたいと思っています。この記事の時点で、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' saved [4589394]

specファイルディレクトリに移動し、お気に入りのテキストエディタでruby.specファイルを編集します。

Release: 1   
から   
Release: 2

次に、Rubyのバージョンを1.8.4から1.8.6に変更します:

%doc %{name}-%{version}/ToDo   
%doc %{name}-%{version}/doc/NEWS   
%doc tmp-ruby-docs/ruby/*   
からこれに:   
%doc %{name}-%{version}/ToDo   
%doc %{name}-%{version}/doc/NEWS-1.8.0   
%doc tmp-ruby-docs/ruby/*

これでソースをビルドするのに十分です。最後に、あなたの努力を称えるために、このパッケージをまとめたことを自分にクレジットしてください - specファイルの最後に自分の名前を追加します:

[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  
...   
書き込みました: /usr/src/engarde/SRPMS/ruby-1.8.6-2.src.rpm   
書き込みました: /usr/src/engarde/RPMS/i686/ruby-1.8.6-2.i686.rpm   
書き込みました: /usr/src/engarde/RPMS/i686/ruby-libs-1.8.6-2.i686.rpm   
書き込みました: /usr/src/engarde/RPMS/i686/ruby-devel-1.8.6-2.i686.rpm   
書き込みました: /usr/src/engarde/RPMS/i686/ruby-docs-1.8.6-2.i686.rpm   
...

素晴らしい仕事です!最新のRubyバージョンの更新されたパッケージをビルドしました!

参考文献

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。