LFS-SVN諸々

LFS SVN-20110923 を VMware 上に構築しようとして、いろいろうまくいかない話。

まずブートスクリプトが大幅に変わった関係で、起動スクリプトまわりでいろいろエラー。そもそも init_params がどこにもない。どこか手順を見誤ったのかなぁ? LFSブックの不備のような気もするのだが・・・。とりあえず以下により逃げる:

touch /lib/lsb/init_params

/etc/rc.d/init.d/functionsのモードがおかしいことに気付く。実害はないものと想像するのだが、念のため以下を実施。

chmod 754 /etc/rc.d/init.d/functions

以上までは支障ない話。とりあえず LFS 作りは完了した。ここからは未解決。

openssh サーバー立上げによる ssh 接続ができない。アクセス拒否しているのは誰なんだろう。どこのログを見るべきなのか、知識至らず調査中。

関係ないかもしれないが、先日 VMware Workstation がバージョンアップし Version 8 になったので、このバージョンでの LFS ビルドを初めて行なっている。このことが関係している?

・・・ どうも VMware 側の問題であるような気がして、試してみるに、結論はやっぱり VMware 側であることが判明! SSH 接続が出来ないのは、VMware側(LFS側)のネットワーク接続を “NAT” (VMware 独自のIPアドレス割振りの仕組み(?))にしている時。一方 “BRIDGED” (通常のIPアドレス割振り) にしている時は、正常に SSH 接続が出来た! このことから少なくとも、自ビルドした OpenSSH 側ではないことが判明!

・・・あっ!
分かった! 自分が悪い!
先日、業務上必要があって、いわゆる VPN ソフトを導入したのであるが、うまく繋がらないくて、その時に同僚から「VMware のネットワークサービスが時々悪さをすることもあるので、止めて試してみた方がいいよ。」と言われ、そのとおり VMware ネットワークを止めていたのであった。これが原因。

ssh 接続はこれにて解決。VPN 接続ができるか否かは、また操作する時に確認しよう。

カテゴリー: LFS | コメントする

Paco補完機能

私は LFS 作りにおいて Paco を多用している。

本日 CBLFS にて、Paco のページ を見ていたら、paco_bash_completion の存在を知った。
さっそく試してみる。便利。

例えば「paco -f b」と打って TAB キーを押したら以下のように補完してくれる。

prompt> paco -f b
bash-4.2 binutils-2.21.1 bison-2.5 bzip2-1.0.6

これをやるためには Bash-completion を入れておかなければならない。

カテゴリー: LFS | コメントする

Dhcpcd動作しない・・

LFS SVN最新、SVN-20110814 を作り上げ、ネットワークは Dhcpcd を導入。いざ IPアドレス自動割り当て・・・

IPアドレスが取れない!
IPv6 router なんとかってエラー。
あ! そうか。 IPv6 になんて対応していないんで、ウチのルーター。

教訓。
Linux カーネル作りはいつも思いつきで作り上げているんだが、
/boot/config-3.0.1 を見直すと、IPv6 を有効にしていた。
思いつきはこわいこわい。カーネルビルドし直す。
(本当はこの状態で IPv6 を無効化する段取りを取れば良いのかな?)

カテゴリー: LFS | コメントする

CyrusSASLのビルドに手間ひま

Berkeley DB を、それまでの 4.X.X から 5.2.28 にあげたところ、CyrusSASL も対応していなかった。
Gentoo にてパッチがあがっている。
https://bugs.gentoo.org/attachment.cgi?id=249599&action=diff

ただし CyrusSASL-2.1.23 は、そのパッチのようなソースになっていない。
Gentoo のパッチは CyrusSASL のいくつのマイナー/リビジョン番号に対するものなのか、読み取れない。

CyrusSASL をビルドしてみたら、該当箇所が分かったので、自分でパッチを作る。
WITH_DES のところは、かつてうまくいかなかった際に、どこぞのページから情報ゲットして自作成していたもの。
よくよく BLFS を読んだら、BLFS では sed コマンドで簡単に対処していた。patch とする方が適切であろう。

diff -Naur cyrus-sasl-2.1.23.orig/plugins/digestmd5.c cyrus-sasl-2.1.23/plugins/digestmd5.c
--- cyrus-sasl-2.1.23.orig/plugins/digestmd5.c  2009-04-29 00:09:17.000000000 +0900
+++ cyrus-sasl-2.1.23/plugins/digestmd5.c       2011-08-21 00:28:54.977661677 +0900
@@ -2715,7 +2715,7 @@
        "DIGEST-MD5",                   /* mech_name */
 #ifdef WITH_RC4
        128,                            /* max_ssf */
-#elif WITH_DES
+#elif defined(WITH_DES)
        112,
 #else
        1,
@@ -4034,7 +4034,7 @@
        "DIGEST-MD5",
 #ifdef WITH_RC4                                /* mech_name */
        128,                            /* max ssf */
-#elif WITH_DES
+#elif defined(WITH_DES)
        112,
 #else
        1,
diff -Naur cyrus-sasl-2.1.23.orig/sasldb/db_berkeley.c cyrus-sasl-2.1.23/sasldb/db_berkeley.c
--- cyrus-sasl-2.1.23.orig/sasldb/db_berkeley.c 2009-04-29 00:09:18.000000000 +0900
+++ cyrus-sasl-2.1.23/sasldb/db_berkeley.c      2011-08-21 00:29:30.521687291 +0900
@@ -100,7 +100,7 @@
     ret = db_create(mbdb, NULL, 0);
     if (ret == 0 && *mbdb != NULL)
     {
-#if DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1
+#if (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1) || DB_VERSION_MAJOR == 5
        ret = (*mbdb)->open(*mbdb, NULL, path, NULL, DB_HASH, flags, 0660);
 #else
        ret = (*mbdb)->open(*mbdb, path, NULL, DB_HASH, flags, 0660);
diff -Naur cyrus-sasl-2.1.23.orig/utils/dbconverter-2.c cyrus-sasl-2.1.23/utils/dbconverter-2.c
--- cyrus-sasl-2.1.23.orig/utils/dbconverter-2.c        2003-02-14 04:56:17.000000000 +0900
+++ cyrus-sasl-2.1.23/utils/dbconverter-2.c     2011-08-21 00:28:54.985663356 +0900
@@ -214,7 +214,7 @@
     ret = db_create(mbdb, NULL, 0);
     if (ret == 0 && *mbdb != NULL)
     {
-#if DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1
+#if (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1) || DB_VERSION_MAJOR == 5
        ret = (*mbdb)->open(*mbdb, NULL, path, NULL, DB_HASH, DB_CREATE, 0664);
 #else
        ret = (*mbdb)->open(*mbdb, path, NULL, DB_HASH, DB_CREATE, 0664);

これが果たして正しいのか、十分なのか、まったく不明。
CyrusSASLのアップストリームか、BLFSの担当各位が、早く確かな情報を出して欲しいな。

カテゴリー: LFS | コメントする

sendmailのビルドに手間ひま

そもそものきっかけは sudo
LFS に BLFS のいくつかのパッケージを入れていく中で、sudo も入れた。
何気なくビルド後に configure のログを見ていて、「あぁそうか MTAを入れるべきなんだな」と。

sendmail を入れることにした。でも・・・・ ビルド後の newaliases -v でエラー。
BLFS ブック、メンテできていない、というところか・・・
/etc/mail/aliases.db: Invalid type 5 specified
Cannot open hash database /etc/mail/aliases.db: Invalid argument
WARNING: cannot open alias database /etc/mail/aliases
Cannot create database for alias file /etc/mail/aliases

sendmail が Berkeley DB 5 に対応するコーディングになっていないから、だそうだ。
RedHat にてパッチが出ていた。sendmail の最新 8.14.5 のものではなかったので自分でパッチ作る。
diff -Naur sendmail-8.14.5.orig/include/sm/bdb.h sendmail-8.14.5/include/sm/bdb.h
--- sendmail-8.14.5.orig/include/sm/bdb.h 2003-03-07 01:30:05.000000000 +0900
+++ sendmail-8.14.5/include/sm/bdb.h 2011-08-20 19:02:59.102572293 +0900
@@ -19,7 +19,8 @@
# define DB_VERSION_MAJOR 1
# endif /* ! DB_VERSION_MAJOR */

-# if DB_VERSION_MAJOR >= 4 && DB_VERSION_MINOR >= 1
+# if (DB_VERSION_MAJOR >= 4 && DB_VERSION_MINOR >= 1) || \
+ (DB_VERSION_MAJOR >= 5)

# define DBTXN NULL ,

でビルドしても、 newaliases -v のエラーは変わらず。
Berkeley DB は BLFS では 4.8.26 がずっと掲載されており、それを用いてきていたが、
バージョン古すぎるのがまずいらしい。4.8.30 以上でないとダメとか。
BLFSメーリングリスト

いっそのこと、Oracle のサイトから本日最新の db-5.2.28 を取ってきて、
上記のパッチも当てた上で、newaliases 正常完了。

何よりも驚いたことだが、Berkeley DB のバージョン表記として、
Berkeley DB 11gR2 (11.2.5.2.28)
となっている。なんじゃそりゃ!

11g (イレブンジー)で 5.2.28 なの? へんなバージョン振りだこと。
ってことは、今までは 10gR2 で 4.2.28 なんかにしていたってこと?

カテゴリー: LFS | コメントする

wget-1.13

Wget が 1.13 にアップグレードしたので、LFS にてビルドしようとしたら、gnutls がない、として怒られた。かつては OpenSSL か GnuTLS のいずれかがあれば良かったように記憶。仕方ないので gnutls を入れることに。

最新を確認してみると、gnutls-3.0.0 が出ていた。これまでは gnutls-2.16.x あたりをビルドしてきていた。この際だから gnutls もアップグレードしようと思った・・・そしたら今度は nettle で怒られる。

nettle は gnutls-2.16.? のいずれかの版から必須パッケージとなっていたため、既に nettle-2.1 をビルドしてきた経緯があったのであるが、gnutls-3.0.0 は nettle-2.2 以上でないといけないらしい。さらに p11-kit なるものも新たに必要だとか。

それらをすべてビルドした上で、ようやく wget-1.13 ビルド完了。

カテゴリー: LFS | コメントする

Trac, Apache, Segmentation fault

Trac をやってみたくなった。LFS-SVN20110605 で。
(glibc-2.14はとりあえず回避するために、少々古いSVN版で)

Apache と MySQL を入れて、mod_wsgi があるが、
とりあえずは mod_python で。

ページ表示まではいけるが、更新操作でことごとく Segmentation fault

Apacheエラー:
[notice] child pid 5367 exit signal Segmentation fault (11)

いろいろ調べていくと、1つの可能性として Expat のバージョン狂い
という情報が出てきた。Expat は最新の 2.0.1 を単独ビルドしている
のであるが、Python がビルドインソースでビルドされてしまっている?

そもそも Python は BLFSブックどおりの 2.6.4 を用いていて、
かなり古い。BLFSを進めていく際に、どこだったか Python-2.7 が
使えなかった記憶があったため、バージョンアップに二の足を踏んでいる。
これがいけないのであろうか?

Apache と Python とで、Expatバージョンが違っていると Segment が fault するらしい:
http://www.dscpl.com.au/wiki/ModPython/Articles/ExpatCausingApacheCrash

調べてビルドし直して、というのが相当時間がかかる。
また今度、しっかり調べることにしよう。

カテゴリー: LFS | コメントする

rvm gem install rails

さっそく Rails インストール
rvm gem install rails

私にとっては、よくある話なのだが、Rails を操作している最中に
Rails のバージョンが上がっていた。 またかって感じ。

Rails 3.0.8 から Rails 3.0.9

Successfully installed activesupport-3.0.9
Successfully installed builder-2.1.2
Successfully installed i18n-0.5.0
Successfully installed activemodel-3.0.9
Successfully installed rack-1.2.3
Successfully installed rack-test-0.5.7
Successfully installed rack-mount-0.6.14
Successfully installed tzinfo-0.3.28
Successfully installed abstract-1.0.0
Successfully installed erubis-2.6.6
Successfully installed actionpack-3.0.9
Successfully installed arel-2.0.10
Successfully installed activerecord-3.0.9
Successfully installed activeresource-3.0.9
Successfully installed mime-types-1.16
Successfully installed polyglot-0.3.1
Successfully installed treetop-1.4.9
Successfully installed mail-2.2.19
Successfully installed actionmailer-3.0.9
Successfully installed thor-0.14.6
Successfully installed rdoc-3.6.1
Successfully installed railties-3.0.9
Successfully installed bundler-1.0.15
Successfully installed rails-3.0.9
24 gems installed

カテゴリー: LFS | コメントする

RVM

RVM なるものを初めて知った。Ruby Version Manager

ホームディレクトリ配下に Ruby も Rails も何もかもビルドインストールして、
しかも ruby 1.8.7 とか ruby 1.9.2 とかを切り替えて使えるものらしい。

Ruby on Rails にからんだ種々のパッケージ類は、個別にバージョンアップ
するなどしてなかなか使える形を築けない。このため RVM に期待。

でも始めたばかりで何が何やら。
ruby ビルドに configure オプションは指定できるのだろうか?・・・
当然のごとく LFS 上にて作業中。

書くのが面倒で書いていないが SVN-20110605 での作業。

カテゴリー: LFS | コメントする

LFS svn-20110427 ビルド

LFS svn-20110427 ビルド。
(2011/01/06より本ブログ記録開始後、LFSビルド4回目)

WinXP、VMware Workstation 7 上。

VMwareホストPC: Intel Core2 T5500 1.66GHz, Memory 2GB
VMware仮想PC: Memory 512MB

ホストOS: (前回までにVMwareで構築した) LFS svn-20110330

前回に比べて以下の変更項目:

  • 各種パッケージバージョン更新: Linux-2.6.38.4、gcc-4.6.0、coreutils-8.12 など。
  • パッケージ追加: libpipeline-1.2.0
  • /run ディレクトリ追加。
カテゴリー: LFS | コメントする