サーバー管理 · 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を使用することです:

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バージョンの更新されたパッケージをビルドしました!
参考文献
- RPMでのソフトウェアパッケージング、パート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プログラミング言語 - http://www.ruby-lang.org/
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。