LFS 7.7を構築する [Part 3 一時的環境の構築編]
2015-10-01
こんにちは。今回のテーマは『LFS 7.7を構築する [Part 3 一時的環境の構築編]』です。本記事はLFS 7.7を構築する [Part 2 一時環境の構築準備編]からの続きとなります。今回はいよいよ一時的環境の構築を行います。LFSbookでは第五章に相当します。ただ全ての構築作業を記すと膨大な量となりますので細かい作業はLFSbookを参照いただくとして第5章のTIPSを扱えればと思います。今度の休みはLFSをやってみよう・・・そんなきっかけとなれば幸いです。 2015年10月現在、LFSの最新バージョンは7.8となります。最新のLFSに興味野ある方は公式ページからどうぞ [adsense02] 【目次】 パッケージのビルド作業はGUI環境からSSH接続が快適 ソフトウェアビルドの基本 ビルド後の後片付け(ストリップ作業) 一時的環境構築の仕上げと保存
パッケージのビルド作業はGUI環境からSSH接続が快適
今回から一時的環境を構築するためにパッケージをビルドしてインストールしていきます。次章でパッケージのビルド方法については少し触れますが、環境としてはLFSbookを参照でき、コピー&ペースト出来るGUI環境があった方が楽だと思います。筆者の場合はVirtualBox上のSlackware14.1にXubuntuからSSH接続してビルド作業を行いました。 VirtualBoxへのSSH接続についてはコチラの記事を参照下さい。 もっと楽をしたい場合はLFScriptというスクリプトベースで進める手もありますが、今回はLFSに限定します。
ソフトウェアビルドの基本
基本的な作業はどのパッケージであっても同じです。以下の作業を繰り返していきます。
- パッケージのTarballを展開する
- 展開したディレクトリに入る
- LFSbookの指示に従いビルド作業をする
第五章の一番最初にビルドするBinutilsを例にするとこのような流れとなります。
#---ここの部分は全パッケージ共通の作業--- lfs# cd /sources lfs# tar xjvf binutils-2.25.tar.bz2 lfs# cd binutils-2.25
#---LFSbookの説明はココから始まる--- lfs# mkdir -v ../binutils-build lfs# cd ../binutils-build lfs# ../binutils-2.25/configure \ —prefix=/tools \ —with-sysroot=$LFS \ —with-lib-path=/tools/lib \ —target=$LFS_TGT \ —disable-nls \ —disable-werror lfs# make lfs# case $(uname -m) in x86_64) mkdir -v /tools/lib && ln -sv lib /tools/lib64 ;; esac lfs# make install
LFSbookにはソースを展開して、ディレクトリに移動する部分は省かれているので混乱する方も居るかも知れません。どのパッケージも基本的には上記の要領でビルドします。 このような感じで順番に計30パッケージをインストールしていきます。普段からソースからビルドすることに慣れている方にはとくに難しいこともなく進むと思います。一時的環境を構築するための準備(configure)はパッケージごとに異なるので注意が必要です。
ビルド後の後片付け(ストリップ作業)
ストリップとはここまでのビルド作業で発生した不要なものを削除する作業です。必ずしも必須ではありません。ストリップ作業をする場合は以下のコマンドを実行します。
lfs# strip —strip-debug /tools/lib/* lfs# /usr/bin/strip —strip-unneeded /tools/{,s}bin/* lfs# rm -rf /tools/{,share}/{info,man,doc}
一時的環境構築の仕上げと保存
ここまでの作業でほとんど一時的環境の構築は終わっています。最後に/toolsの所有者を変更しておきましょう。
chown -R root:root $LFS/tools
さて、これで一時的環境の構築が完了しました。この後は/toolsに構築した一時的環境を使用して徐々にホストシステムから切り離しながらソフトウェアのビルドとインストールを行っていきます。 せっかく手間をかけて作成した一時的環境ですから保管しておきたい場合もあると思います。保存しておけば再度LFSを構築する際に一時的環境の構築を省略できます。(アーキテクチャが異なる場合には使えませんが)今回はホストシステム側でtarballにしてUSBメディア等に保管します。
host# tar cjvf lfs-tools_7.7.tar.bz2 /mnt/lfs/tools
最後に
一時的環境の構築の山場はGCC〜Glibc辺りで後は流れ作業的に進んでいくと思います。コピー&ペーストをしない場合はタイプミスに気をつけてください。筆者な何度かタイプミスのせいでconfigureが正しくできておらずビルドに失敗し頭を抱えたことがありました。一時的環境の構築が終わったらLFSの構築も半分まできた感じです。気長に楽しみながらやるのが一番ではないかと思います。 【関連記事】 LFS 7.7を構築する [Part 1 LFS概略とホストシステム選択編] LFS 7.7を構築する [Part 2 一時環境の構築準備編] [adsense]