| LFSトップ | Japanese Only | 2009/12/20 |
パッケージ管理について考えた日
SVN-20091216 ビルド
- 本日時点最新の LFS ブック SVN-20091216 をビルド。ホストは以前作成していた LFS 自身。
- 常々の作業として、ビルドのためのシェルスクリプトを一式準備して、昨日21:00頃から夜通し流して完。
- さらに BLFS より、以下の定型的・最小限ツールもビルド。
dhcpcd-4.0.11, net-tools-1.60, openssl-0.9.8k, openssh-5.1p1, screen-4.0.3, wget-1.11.4, which-2.20
Paco ビルド
./configure --prefix=/usr --disable-gpaco
make
make install
make logme
Samba 3.4.2 ビルド
- BLFS には 長いこと Samba-3.0.30 が掲載されているが、ふと最新ビルドをチャレンジしてみたくなる。
- ビルドは BLFS ブックとほぼ一緒。ただしサブディレクトリ source が非存在。代わりに source3 と source4。たぶん 3.x系が source3 ディレクトリなんだろうな、なんて勝手に解釈してビルド。特に問題なくビルド完。
パッケージ管理に関すること
- LFS におけるパッケージ管理と言えば、安直には上述の Paco。
- このことをいろいろと考えてみたくなって、dpkg, apt に手を出す。
- 結論から言って、LFS には dpkg, apt(そして yumなど)は不要、と考えるべきであろう、と。そういう考えに至ったのが本日。
dpkg のビルド
./configure --prefix=/usr
make
make install
Apt のビルド
patch -Np1 -i ../apt-0.7.25-gcc4.patch.txt
rm -f buildlib/{config.guess,config.sub}
ln -sv /usr/share/automake-1.11/config.guess buildlib/.
ln -sv /usr/share/automake-1.11/config.sub buildlib/.
./configure --prefix=/usr
make
- Makefile に install はない? ロクにドキュメント、読むつもりがない・・・
- 自分でインストール。いろいろなものをたくさん作る。正しくはどうすべきなのか、ゆくゆく確認しようか・・・たぶんもう確認しようとは思わないだろう・・・
mkdir -pv /var/log/apt
mkdir -pv /var/lib/dpkg
touch /var/lib/dpkg/status
touch /var/lib/dpkg/available
mkdir -pv /var/lib/apt/lists/
mkdir -pv /var/lib/apt/lists/partial
mkdir -pv /var/cache/apt/archives/partial
mkdir -pv /etc/apt
cp docs/examples/apt.conf /etc/apt
cp docs/examples/sources.list /etc/apt
mkdir -pv /etc/apt/apt.conf.d
mkdir -pv /etc/apt/preferences.d
mv bin/apt-* /usr/bin
mv bin/lib* /usr/lib
mkdir -pv /usr/lib/apt/methods
cp bin/methods/{cdrom,copy,file,ftp,gpgv,gzip,http,https,rred,rsh} /usr/lib/apt/methods
ln -sv /usr/lib/apt/methods/gzip /usr/lib/apt/methods/bzip2
cp share/debian-archive.gpg /etc/apt/trusted.gpg
- apt-get してしまおう。sources.list をサンプルのままコピーしているので、Debian リポジトリにアクセスすることになる。
apt-get update
- GPG error。GnuPG を入れるべきか。。。 初めは GnuPG 2系を入れたが、これではなかったことが後に分かる。GnuPG 1系を入れる。BLFS ブックどおり。
- 次から次にエラー。今度は以下(適当に改行)。
...
Fetched 116kB in 3s (34.4kB/s)
Reading package lists... Done
W: GPG error: http://security.debian.org stable/updates Release:
The following signatures couldn't be verified because
the public key is not available: NO_PUBKEY 9AA38DCD55BE302B
W: GPG error: http://http.us.debian.org stable Release:
The following signatures couldn't be verified because
the public key is not available: NO_PUBKEY 9AA38DCD55BE302B NO_PUBKEY 4D270D06F42584E6
- どこかで調べて、上の NO_PUBKEY の値を用いて以下を実行。だれかに迷惑かけていないのだろうか?・・・
gpg --keyserver wwwkeys.eu.pgp.net --recv-keys 9AA38DCD55BE302B
gpg --keyserver wwwkeys.eu.pgp.net --recv-keys 4D270D06F42584E6
gpg --armor --export 9AA38DCD55BE302B | apt-key add -
gpg --armor --export 4D270D06F42584E6 | apt-key add -
- apt-get update 正常完了。さぁこの後にどうするか・・・・
- ここから先に進めるのは意味なし。LFS を Debian にしてどうするんだ!
- しかも apt-get install wget なんていう単純なパッケージインストールを試してみれば、なお分かる。
Reading package lists... Done
Building dependency tree... Done
The following extra packages will be installed:
apt apt-utils coreutils debconf debconf-i18n debian-archive-keyring dpkg gcc-4.3-base
gnupg gpgv libacl1 libattr1 libbz2-1.0 libc6 libdb4.6 libgcc1 libgcrypt11 libgnutls26
libgpg-error0 libgpm2 libldap-2.4-2 liblocale-gettext-perl libncurses5 libreadline5
libsasl2-2 libsasl2-modules libselinux1 libssl0.9.8 libstdc++6 libtasn1-3
libtext-charwidth-perl libtext-iconv-perl libtext-wrapi18n-perl libusb-0.1-4 lzma
perl-base readline-common zlib1g
Suggested packages:
aptitude synaptic gnome-apt wajig dpkg-dev apt-doc bzip2 python-apt debconf-doc
debconf-utils whiptail dialog gnome-utils libterm-readline-gnu-perl libgnome2-perl
libqt-perl libnet-ldap-perl gnupg-doc xloadimage imagemagick eog libpcsclite1 locales
glibc-doc libc6-i686 rng-tools gnutls-bin gpm libsasl2-modules-otp
libsasl2-modules-ldap libsasl2-modules-sql libsasl2-modules-gssapi-mit
libsasl2-modules-gssapi-heimdal
The following NEW packages will be installed:
apt apt-utils coreutils debconf debconf-i18n debian-archive-keyring dpkg gcc-4.3-base
gnupg gpgv libacl1 libattr1 libbz2-1.0 libc6 libdb4.6 libgcc1 libgcrypt11 libgnutls26
libgpg-error0 libgpm2 libldap-2.4-2 liblocale-gettext-perl libncurses5 libreadline5
libsasl2-2 libsasl2-modules libselinux1 libssl0.9.8 libstdc++6 libtasn1-3
libtext-charwidth-perl libtext-iconv-perl libtext-wrapi18n-perl libusb-0.1-4 lzma
perl-base readline-common wget zlib1g
0 upgraded, 39 newly installed, 0 to remove and 0 not upgraded.
Need to get 22.5MB of archives.
After this operation, 64.0MB of additional disk space will be used.
Do you want to continue [Y/n]?
- おいおい、そんなにパッケージをインストールするのか?! やめだやめだ。パッケージ管理の功罪がここに見えた!
- LFS において apt や yum は不要だ! 少なくとも汎用的にパッケージ提供できるものではない。だって皆、好き勝手にいろいろ依存関係を加えたりはずしたりしてパッケージビルドするんですから。汎用性を目指したなら、それは普通のディストリビューションと同じとなって、LFS たるゆえんが全く失われてしまう!
- /etc/rc.d/init.d なのか /etc/init.d なのか、なんて違いも吸収する必要もあるわけで。
- ちなみに LFS をぶっ潰すのを覚悟で apt-get install XXXX を実施しても、まだ以下のようなエラー。
...
パッケージアーキテクチャ (i386) がシステム () と一致しません
...
- dpkg --force-architecture すると解消するのであるが、本来何か設定すべきところなのだろう。全く分かっていないため本日はこれくらいにしておく。
- 本日は実はこれ以外に checkinstall-1.6.1, git-1.6.5.7 もトライした。checkinstall は glibc-2.10 でビルドできず、Debian にてパッチ公開されている。git はあっけなく完了。
- ちなみに私は Windows 上にて VMware Workstation 7.0 を使って仮想環境上に LFS を構築している。dpkg, apt 導入前のシステムをバックアップ取っているので、本日分はすべて捨てて、元を実現。次は別のことに使うつもり。もう apt はやらないだろう。
|
|
| 松 山 道 夫 Michio Matsuyama |
|