« 2008年10月 | トップページ | 2010年6月 »

2010年5月30日 (日)

NieR RepliCantとFF13とPS3と

全く期待していなかったけど、いざ発売されるとすこぶる評判が良いNieR RepliCant。
ふとヨドバシで見かけたので確保し、8時間ぶっ通しのプレイした感想。

FF13はコレでよかったんじゃ。

徹ゲー、ダメゼッタイエントリがなければ、もっとやってたことマチガイなし。
PS3ゲームとしては久しぶりのヒットです。

FF13を見据えて買った廉価版PS3。
しかし最初に買ったソフトがMGS4で、これがまさかのムービーゲーでげんなり。
そしてFF13もさらに酷いムービーもの。”ゲーム”とも名乗らせたくない駄作。
なしてPS3のパワーを、無駄に自己満足なムービーに費やすのか。
大作と言われるタイトルほど、そういう傾向ありますよね。

FF13は髭の中でファイナルファンタジーが終わった事になった作品。
おかげでFF14のβにも応募しませんでした。

一方コナミさんのMGSはピースウォーカーで名誉挽回。

どん底だったスクエニの評価、NieR RepliCantで持ち直すかも?
ただしFF13、テメーはダメだ。

| | コメント (0) | トラックバック (1)

2010年5月27日 (木)

徹ゲーするのは、ダメゼッタイ!


最近だとゴールデンウィークのMGSPWでしょうか。
徹ゲーするのは、ダメゼッタイ!

さてLinux From Scratchで出てるエラーの件、平日に追うのは諦めました。
週末勝負ということで。

残りはsmart.fmさんではじめたTOEIC対策。
Iknow_2
開始四日で進捗35%、学習時間は2時間と13分。
一日30分ちょいってところですね。
短いようだけど、仕事終わった後の疲れた頭だとこのぐらいが限界。
若き頃の柔軟な頭が欲しい。。。

| | コメント (0) | トラックバック (0)

2010年5月26日 (水)

[Linux] Linux From Scratch 6.6 その8

昨日から始めたsmart.fmさんでのTOEIC対策。
しかしsmart.fmさん、今日は重たいです。
途中なんどもエラーが出る状態で。
なんとか進捗状態は保存できたけど、ちょいと不安かも。

そしてLFSその7から続いた。

6.15. File-5.04

root:/sources# tar xzf file-5.04.tar.gz 
root:/sources# cd file-5.04
root:/sources/file-5.04# ./configure --prefix=/usr
root:/sources/file-5.04# make
root:/sources/file-5.04# make check
root:/sources/file-5.04# make install

6.16. GCC-4.4.3

また大物登場。

root:/sources# tar xjf gcc-4.4.3.tar.bz2 
root:/sources# cd gcc-4.4.3
root:/sources/gcc-4.4.3# sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in
root:/sources/gcc-4.4.3# case `uname -m` in
>   i?86) sed -i 's/^T_CFLAGS =$/& -fomit-frame-pointer/' \
>         gcc/Makefile.in ;;
> esac
root:/sources/gcc-4.4.3# sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in
root:/sources/gcc-4.4.3# sed -i 's/getline/get_line/' libiberty/testsuite/test-demangle.c
root:/sources/gcc-4.4.3# mkdir -v ../gcc-build
mkdir: created directory `../gcc-build'
root:/sources/gcc-4.4.3# cd ../gcc-build
root:/sources/gcc-build# ../gcc-4.4.3/configure --prefix=/usr \
>     --libexecdir=/usr/lib --enable-shared \
>     --enable-threads=posix --enable-__cxa_atexit \
>     --enable-clocale=gnu --enable-languages=c,c++ \
>     --disable-multilib --disable-bootstrap
root:/sources/gcc-build# make
root:/sources/gcc-build# make -k check
root:/sources/gcc-build# ../gcc-4.4.3/contrib/test_summary | grep -A7 Summ
		=== g++ Summary ===
# of expected passes		20139
# of expected failures		156
# of unsupported tests		99
/sources/gcc-build/gcc/testsuite/g++/../../g++  version 4.4.3 (GCC) 
		=== gcc tests ===
--
		=== gcc Summary ===
# of expected passes		57701
# of expected failures		191
# of unsupported tests		443
/sources/gcc-build/gcc/xgcc  version 4.4.3 (GCC) 
		=== libgomp tests ===
--
		=== libgomp Summary ===
# of expected passes		1009
		=== libmudflap tests ===
Running target unix
FAIL: libmudflap.c++/pass41-frag.cxx execution test
--
		=== libmudflap Summary ===
# of expected passes		1890
# of unexpected failures	4
		=== libstdc++ tests ===
Running target unix
--
		=== libstdc++ Summary ===
# of expected passes		5874
# of unexpected successes	1
# of expected failures		79
# of unsupported tests		336
Compiler version: 4.4.3 (GCC) 

テスト時間は1時間ほど。
libmudflapでエラーが出てるけど、これはOKっぽい。

root:/sources/gcc-build# make install
root:/sources/gcc-build# ln -sv ../usr/bin/cpp /lib
`/lib/cpp' -> `../usr/bin/cpp'
root:/sources/gcc-build# ln -sv gcc /usr/bin/cc
`/usr/bin/cc' -> `gcc'
root:/sources/gcc-build# echo 'main(){}' > dummy.c
root:/sources/gcc-build# cc dummy.c -v -Wl,--verbose &> dummy.log
root:/sources/gcc-build# readelf -l a.out | grep ': /lib'
      [Requesting program interpreter: /lib/ld-linux.so.2]
root:/sources/gcc-build# grep -o '/usr/lib.*/crt[1in].*succeeded' dummy.log
/usr/lib/gcc/i686-pc-linux-gnu/4.4.3/../../../crt1.o succeeded
/usr/lib/gcc/i686-pc-linux-gnu/4.4.3/../../../crti.o succeeded
/usr/lib/gcc/i686-pc-linux-gnu/4.4.3/../../../crtn.o succeeded
root:/sources/gcc-build# grep -B4 '^ /usr/include' dummy.log
#include <...> search starts here:
 /usr/local/include
 /usr/lib/gcc/i686-pc-linux-gnu/4.4.3/include
 /usr/lib/gcc/i686-pc-linux-gnu/4.4.3/include-fixed
 /usr/include
root:/sources/gcc-build# grep 'SEARCH.*/usr/lib' dummy.log |sed 's|; |\n|g'
SEARCH_DIR("/tools/i686-pc-linux-gnu/lib")
SEARCH_DIR("/usr/lib")
SEARCH_DIR("/lib");

どーん!
なして/tools/が残ってるの?!
どこかでミスした模様。
ログ見返すお仕事が始まるお。。。

たぶん続く。

| | コメント (0) | トラックバック (0)

2010年5月25日 (火)

ニコニコ生放送の運営NGワードによるフィルターについて

「ニコニコ生放送のコメントは、運営側によりフィルターされています。」

ある程度ニコ動使っている人にとっては常識だと思うけど、アカウント無しで見れる事業仕分けで初めてニコ動に入ってきた人にとっては驚きのようです。

詳しくはニコニコ大百科の運営NGワード一覧参照。

例えばこの仕分け。
最後の会見直前のシーンは、こんな感じでフィルターされてます。
Nicofilter_2
上の図はNwhoisというコメント取得ツールによる絵。
これだけコメントありますが、実際に画面表示されるのは黒フォントのコメントだけです。
上は極端な場所を選びましたが、総コメントの3割ほど表示されてない感じですね。

この放送でのNGワード一覧はニコ動のAPIで取得できます。コレ←xmlです。

ニコニコ生放送はこのような仕組み・仕様になっているのだと理解した上で、楽しむべし。

| | コメント (0) | トラックバック (0)

2010年5月24日 (月)

[Linux] Linux From Scratch 6.6 その7

何となくTOEIC対策開始。

ネタ元
けんじろう と コラボろう!から、社員の英語力向上がコスト不要で簡単にできる効果的な方法~部長のお仕事(2)
暫しsmart.fmさんのお世話になってみます。

そしてLFSその6から続いた。

6.11. Zlib-1.2.3

ここまできてわかった事実、最初のパッケージダウンロードでzlib失敗していた!

--2010-05-24 21:08:21--  http://www.zlib.net/zlib-1.2.3.tar.bz2
www.zlib.net をDNSに問いあわせています... 69.73.181.135
www.zlib.net|69.73.181.135|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 404 Not Found
2010-05-24 21:08:22 エラー 404: Not Found。

ってな感じ。
zlibのホムペ見るに、古いバージョンは削除されてますね。
仕方ないのでlatestなzlib 1.2.5を使います。
まずはダイナミックライブラリ。

root:/sources# tar xjf zlib-1.2.5.tar.bz2 
root:/sources# cd zlib-1.2.5
root:/sources/zlib-1.2.5# ./configure --prefix=/usr --shared --libdir=/lib
root:/sources/zlib-1.2.5# make
root:/sources/zlib-1.2.5# make check
root:/sources/zlib-1.2.5# make install
root:/sources/zlib-1.2.5# rm -v /lib/libz.so
root:/sources/zlib-1.2.5# ln -sfv ../../lib/libz.so.1.2.5 /usr/lib/libz.so

そしてスタティックライブラリ。

root:/sources/zlib-1.2.5# make clean
root:/sources/zlib-1.2.5# ./configure --prefix=/usr
root:/sources/zlib-1.2.5# make
root:/sources/zlib-1.2.5# make check
root:/sources/zlib-1.2.5# make install
root:/sources/zlib-1.2.5# chmod -v 644 /usr/lib/libz.a

バージョン違いだけど、テストはパス。

6.12. Binutils-2.20

root:/sources# tar xjf binutils-2.20.tar.bz2 
root:/sources/binutils-2.20# expect -c "spawn ls"
spawn ls
root:/sources/binutils-2.20# rm -fv etc/standards.info
removed `etc/standards.info'
root:/sources/binutils-2.20# sed -i.bak '/^INFO/s/standards.info //' etc/Makefile.in
root:/sources/binutils-2.20# mkdir -v ../binutils-build
mkdir: created directory `../binutils-build'
root:/sources/binutils-2.20# cd ../binutils-build
root:/sources/binutils-build# ../binutils-2.20/configure --prefix=/usr \
>     --enable-shared
root:/sources/binutils-build# make tooldir=/usr
root:/sources/binutils-build# make check
		=== binutils Summary ===
# of expected passes		66
# of unsupported tests		1
		=== gas Summary ===
# of expected passes		270
		=== ld Summary ===
# of expected passes		558
# of expected failures		8
root:/sources/binutils-build# make tooldir=/usr install
root:/sources/binutils-build# cp -v ../binutils-2.20/include/libiberty.h /usr/include

たぶん、OK。

6.13. GMP-5.0.0

root:/sources# tar xjf gmp-5.0.0.tar.bz2 
root:/sources# cd gmp-5.0.0
root:/sources/gmp-5.0.0# ./configure --prefix=/usr --enable-cxx --enable-mpbsd
root:/sources/gmp-5.0.0# make
root:/sources/gmp-5.0.0# make check 2>&1 | tee gmp-check-log
root:/sources/gmp-5.0.0# awk '/tests passed/{total+=$2} ; END{print total}' gmp-check-log
162
root:/sources/gmp-5.0.0# mkdir -v /usr/share/doc/gmp-5.0.0
mkdir: created directory `/usr/share/doc/gmp-5.0.0'
root:/sources/gmp-5.0.0# cp    -v doc/{isa_abi_headache,configuration} doc/*.html \
>          /usr/share/doc/gmp-5.0.0
`doc/isa_abi_headache' -> `/usr/share/doc/gmp-5.0.0/isa_abi_headache'
`doc/configuration' -> `/usr/share/doc/gmp-5.0.0/configuration'
`doc/projects.html' -> `/usr/share/doc/gmp-5.0.0/projects.html'
`doc/tasks.html' -> `/usr/share/doc/gmp-5.0.0/tasks.html'

6.14. MPFR-2.4.2

root:/sources# tar xjf mpfr-2.4.2.tar.bz2 
root:/sources# cd mpfr-2.4.2
root:/sources/mpfr-2.4.2# ./configure --prefix=/usr --enable-thread-safe
root:/sources/mpfr-2.4.2# make
root:/sources/mpfr-2.4.2# make check
====================
All 148 tests passed
====================
root:/sources/mpfr-2.4.2# make install
root:/sources/mpfr-2.4.2# make html
root:/sources/mpfr-2.4.2# mkdir -pv /usr/share/doc/mpfr-2.4.2
mkdir: created directory `/usr/share/doc/mpfr-2.4.2'
root:/sources/mpfr-2.4.2# find . -name \*.html -type f -exec cp -v \{} /usr/share/doc/mpfr-2.4.2 \;

うーん、平日だと数個パッケージ入れただけで終わっちゃうな。
続く。

| | コメント (0) | トラックバック (0)

2010年5月23日 (日)

[Linux] Linux From Scratch 6.6 その6

なんとなくLFS始めたものの、土日実働6時間ぐらいでまだ道半ば行っていない感じ。
途中いろんな誘惑に負けているのもあるけれど。
平日はもっと進行遅くなるので、今日行けるところまで行ってみる。

ふっふふーん⊂( ^ω^)⊃

いや、こういうので遅れるのはわかっているのだけど、ウザさが癖になる。

その5から続いた。

基本的なユーザーランドの皮の構成まで終わっているんで、これから中身を入れて良く作業になります。
LFSには書いてないけど、各パッケージは/sourcesディレクトリにあるので適宜解凍。

6.7. Linux-2.6.32.8 API ヘッダ

root:/sources# tar xjf linux-2.6.32.8.tar.bz2 
root:/sources# cd linux-2.6.32.8
root:/sources/linux-2.6.32.8# make mrproper
root:/sources/linux-2.6.32.8# make headers_check
root:/sources/linux-2.6.32.8# make INSTALL_HDR_PATH=dest headers_install
root:/sources/linux-2.6.32.8# find dest/include \( -name .install -o -name ..install.cmd \) -delete
root:/sources/linux-2.6.32.8# cp -rv dest/include/* /usr/include

6.8. Man-pages-3.23

root:/sources# tar xjf man-pages-3.23.tar.bz2 
root:/sources# cd man-pages-3.23
root:/sources/man-pages-3.23# make install

6.9. Glibc-2.11.1

大物登場。

root:/sources# tar xjf glibc-2.11.1.tar.bz2 
root:/sources# cd glibc-2.11.1
root:/sources/glibc-2.11.1# DL=$(readelf -l /bin/sh | sed -n 's@.*interpret.*/tools\(.*\)]$@\1@p')
root:/sources/glibc-2.11.1# sed -i "s|libs -o|libs -L/usr/lib -Wl,-dynamic-linker=$DL -o|" \
>         scripts/test-installation.pl
root:/sources/glibc-2.11.1# unset DL
root:/sources/glibc-2.11.1# sed -i 's|@BASH@|/bin/bash|' elf/ldd.bash.in
root:/sources/glibc-2.11.1# mkdir -v ../glibc-build 
mkdir: created directory `../glibc-build'
root:/sources/glibc-2.11.1# cd ../glibc-build/
root:/sources/glibc-build# case `uname -m` in
>   i?86) echo "CFLAGS += -march=i486 -mtune=native -O3 -pipe" > configparms ;;
> esac
root:/sources/glibc-build# ../glibc-2.11.1/configure --prefix=/usr \
>     --disable-profile --enable-add-ons \
>     --enable-kernel=2.6.18 --libexecdir=/usr/lib/glibc
root:/sources/glibc-build# make
root:/sources/glibc-build# cp -v ../glibc-2.11.1/iconvdata/gconv-modules iconvdata
`../glibc-2.11.1/iconvdata/gconv-modules' -> `iconvdata/gconv-modules'
root:/sources/glibc-build# make -k check 2>&1 | tee glibc-check-log
root:/sources/glibc-build# grep Error glibc-check-log
make[2]: [/sources/glibc-build/posix/annexc.out] Error 1 (ignored)
root:/sources/glibc-build# touch /etc/ld.so.conf
root:/sources/glibc-build# make install
Your new glibc installation seems to be ok.
エラー1件出てるけど、これはOKらしい。 次、ロケール設定。
root:/sources/glibc-build# mkdir -pv /usr/lib/locale
mkdir: created directory `/usr/lib/locale'
root:/sources/glibc-build# localedef -i cs_CZ -f UTF-8 cs_CZ.UTF-8
root:/sources/glibc-build# localedef -i de_DE -f ISO-8859-1 de_DE
root:/sources/glibc-build# localedef -i de_DE@euro -f ISO-8859-15 de_DE@euro
root:/sources/glibc-build# localedef -i de_DE -f UTF-8 de_DE.UTF-8
root:/sources/glibc-build# localedef -i en_HK -f ISO-8859-1 en_HK
root:/sources/glibc-build# localedef -i en_PH -f ISO-8859-1 en_PH
root:/sources/glibc-build# localedef -i en_US -f ISO-8859-1 en_US
root:/sources/glibc-build# localedef -i en_US -f UTF-8 en_US.UTF-8
root:/sources/glibc-build# localedef -i es_MX -f ISO-8859-1 es_MX
root:/sources/glibc-build# localedef -i fa_IR -f UTF-8 fa_IR
root:/sources/glibc-build# localedef -i fr_FR -f ISO-8859-1 fr_FR
root:/sources/glibc-build# localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro
root:/sources/glibc-build# localedef -i fr_FR -f UTF-8 fr_FR.UTF-8
root:/sources/glibc-build# localedef -i it_IT -f ISO-8859-1 it_IT
root:/sources/glibc-build# localedef -i ja_JP -f EUC-JP ja_JP
root:/sources/glibc-build# localedef -i tr_TR -f UTF-8 tr_TR.UTF-8
root:/sources/glibc-build# localedef -i zh_CN -f GB18030 zh_CN.GB18030

次、Glibcの設定。

root:/sources/glibc-build# cat > /etc/nsswitch.conf << "EOF"
> # Begin /etc/nsswitch.conf
> 
> passwd: files
> group: files
> shadow: files
> 
> hosts: files dns
> networks: files
> 
> protocols: files
> services: files
> ethers: files
> rpc: files
> 
> # End /etc/nsswitch.conf
> EOF
root:/sources/glibc-build# tzselect
root:/sources/glibc-build# cp -v --remove-destination /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
removed `/etc/localtime'
`/usr/share/zoneinfo/Asia/Tokyo' -> `/etc/localtime'

最後、ld.so.confの設定。

root:/sources/glibc-build# cat > /etc/ld.so.conf << "EOF"
> # Begin /etc/ld.so.conf
> 
> /usr/local/lib
> /opt/lib
> 
> # End /etc/ld.so.conf
> EOF

6.10. ツールチェーンの再調整

リンカの置き換え。操作間違うと怖いところ。

root:~# mv -v /tools/bin/{ld,ld-old}
`/tools/bin/ld' -> `/tools/bin/ld-old'
root:~# mv -v /tools/$(gcc -dumpmachine)/bin/{ld,ld-old}
`/tools/i686-pc-linux-gnu/bin/ld' -> `/tools/i686-pc-linux-gnu/bin/ld-old'
root:~# mv -v /tools/bin/{ld-new,ld}
`/tools/bin/ld-new' -> `/tools/bin/ld'
root:~# ln -sv /tools/bin/ld /tools/$(gcc -dumpmachine)/bin/ld
`/tools/i686-pc-linux-gnu/bin/ld' -> `/tools/bin/ld'
root:~# gcc -dumpspecs | sed -e 's@/tools@@g' \
>     -e '/\*startfile_prefix_spec:/{n;s@.*@/usr/lib/ @}' \
>     -e '/\*cpp:/{n;s@$@ -isystem /usr/include@}' > \
>     `dirname $(gcc --print-libgcc-file-name)`/specs
root:~# echo 'main(){}' > dummy.c
root:~# cc dummy.c -v -Wl,--verbose &> dummy.log
root:~# readelf -l a.out | grep ': /lib'
      [Requesting program interpreter: /lib/ld-linux.so.2]
root:~# grep -o '/usr/lib.*/crt[1in].*succeeded' dummy.log
/usr/lib/crt1.o succeeded
/usr/lib/crti.o succeeded
/usr/lib/crtn.o succeeded
root:~# grep -B1 '^ /usr/include' dummy.log
#include <...> search starts here:
 /usr/include
root:~# grep 'SEARCH.*/usr/lib' dummy.log |sed 's|; |\n|g'
SEARCH_DIR("/tools/i686-pc-linux-gnu/lib")
SEARCH_DIR("/usr/lib")
SEARCH_DIR("/lib");
root:~# grep "/lib.*/libc.so.6 " dummy.log
attempt to open /lib/libc.so.6 succeeded
root:~# grep found dummy.log
found ld-linux.so.2 at /lib/ld-linux.so.2
root:~# rm -v dummy.c a.out dummy.log

怒涛のテスト、すべてクリア!
一山超えました。あとはセルフコンパイル、インストールの繰り返しかな。


| | コメント (0) | トラックバック (0)

[Linux] Linux From Scratch 6.6 その5

洗濯物干すと雨が降る法則3連チャン。勘弁してくれぇ。

安心のウザさ。

その4から続いた。

6章からは5章でガリガリ作った環境にchrootにします。
んで問題、というかメンドクサイのが基本rootで操作する形になるのだけど、Ubuntuだとsudoが流儀なんだよね。
ここはズルをしてrootになっちゃいます。

$ sudo su
# export LFS=/mnt/lfs

んではGo!

6.2. 仮想カーネルファイルシステムの準備

root@ubuntu-vm:~# mkdir -v /mnt/lfs/{dev,proc,sys}
root@ubuntu-vm:~# mknod -m 600 /mnt/lfs/dev/console c 5 1
root@ubuntu-vm:~# mknod -m 666 /mnt/lfs/dev/null c 1 3
root@ubuntu-vm:~# mount -v --bind /dev /mnt/lfs/dev
/dev on /mnt/lfs/dev type none (rw,bind)
root@ubuntu-vm:~# mount -vt devpts devpts /mnt/lfs/dev/pts
devpts on /mnt/lfs/dev/pts type devpts (rw)
root@ubuntu-vm:~# mount -vt tmpfs shm /mnt/lfs/dev/shm
shm on /mnt/lfs/dev/shm type tmpfs (rw)
root@ubuntu-vm:~# mount -vt proc proc /mnt/lfs/proc
proc on /mnt/lfs/proc type proc (rw)
root@ubuntu-vm:~# mount -vt sysfs sysfs /mnt/lfs/sys
sysfs on /mnt/lfs/sys type sysfs (rw)
root@ubuntu-vm:~# mount
/dev/sdb1 on /mnt/lfs type ext3 (rw)
/dev on /mnt/lfs/dev type none (rw,bind)
devpts on /mnt/lfs/dev/pts type devpts (rw)
shm on /mnt/lfs/dev/shm type tmpfs (rw)
proc on /mnt/lfs/proc type proc (rw)
sysfs on /mnt/lfs/sys type sysfs (rw)

バインドマウントってなんぞや?

6.4. Chroot 環境への移行

緊張の一瞬。

root@ubuntu-vm:~# chroot "/mnt/lfs" /tools/bin/env -i \
> HOME=/root TERM="$TERM" PS1='\u:\w\$ ' \
> PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin /tools/bin/bash --login +h
I have no name!:/# 

名無しさんになるのね。

6.5. ディレクトリの生成

すこしずつ形が見えてきた。

I have no name!:/# ls
dev  lost+found  proc  sources	sys  tools
I have no name!:/# mkdir -pv /{bin,boot,etc/opt,home,lib,mnt,opt}
I have no name!:/# mkdir -pv /{media/{floppy,cdrom},sbin,srv,var}
I have no name!:/# install -dv -m 0750 /root
I have no name!:/# install -dv -m 1777 /tmp /var/tmp
I have no name!:/# mkdir -pv /usr/{,local/}{bin,include,lib,sbin,src}
I have no name!:/# mkdir -pv /usr/{,local/}share/{doc,info,locale,man}
I have no name!:/# mkdir -v  /usr/{,local/}share/{misc,terminfo,zoneinfo}
I have no name!:/# mkdir -pv /usr/{,local/}share/man/man{1..8}
I have no name!:/# for dir in /usr /usr/local; do
>   ln -sv share/{man,doc,info} $dir
> done
I have no name!:/# case $(uname -m) in
>  x86_64) ln -sv lib /lib64 && ln -sv lib /usr/lib64 ;;
> esac
I have no name!:/# mkdir -v /var/{lock,log,mail,run,spool}
I have no name!:/# mkdir -pv /var/{opt,cache,lib/{misc,locate},local}
I have no name!:/# ls
bin   dev  home  lost+found  mnt  proc	sbin	 srv  tmp    usr
boot  etc  lib	 media	     opt  root	sources  sys  tools  var

見慣れた構成出来上がり。

6.6. 基本的なファイルとリンクの生成

I have no name!:/# ln -sv /tools/bin/{bash,cat,echo,pwd,stty} /bin
I have no name!:/# ln -sv /tools/bin/perl /usr/bin
I have no name!:/# ln -sv /tools/lib/libgcc_s.so{,.1} /usr/libln -sv /tools/lib/libgcc_s.so{,.1} /usr/lib
I have no name!:/# ln -sv /tools/lib/libstdc++.so{,.6} /usr/lib
I have no name!:/# ln -sv bash /bin/sh
I have no name!:/# touch /etc/mtab

しつこい名無しさん対策開始。

I have no name!:/# cat > /etc/passwd << "EOF"
> root:x:0:0:root:/root:/bin/bash
> bin:x:1:1:bin:/dev/null:/bin/false
> nobody:x:99:99:Unprivileged User:/dev/null:/bin/false
> EOF
I have no name!:/# cat > /etc/group << "EOF"
> root:x:0:
> bin:x:1:
> sys:x:2:
> kmem:x:3:
> tty:x:4:
> tape:x:5:
> daemon:x:6:
> floppy:x:7:
> disk:x:8:
> lp:x:9:
> dialout:x:10:
> audio:x:11:
> video:x:12:
> utmp:x:13:
> usb:x:14:
> cdrom:x:15:
> mail:x:34:
> nogroup:x:99:
> EOF
I have no name!:/# exec /tools/bin/bash --login +h
root:/# 

名無しさんからrootさんへ変わった瞬間。

root:/# touch /var/run/utmp /var/log/{btmp,lastlog,wtmp}
root:/# chgrp -v utmp /var/run/utmp /var/log/lastlog
changed group of `/var/run/utmp' to utmp
changed group of `/var/log/lastlog' to utmp
root:/# chmod -v 664 /var/run/utmp /var/log/lastlog
mode of `/var/run/utmp' changed to 0664 (rw-rw-r--)
mode of `/var/log/lastlog' changed to 0664 (rw-rw-r--)

ログファイル作成。

まだまだ続く。

| | コメント (0) | トラックバック (0)

[Linux] Linux From Scratch 6.6 その4

その3から続いた。
単調作業だよねぇ、と早くも弱気。
ニコ生もないので、BGMはミクルカさんで。

Project DIVA 2ndが待ち遠しい。

5.17. Coreutils-8.4

lfs@ubuntu-vm:~$ tar xzf /mnt/lfs/sources/coreutils-8.4.tar.gz 
lfs@ubuntu-vm:~$ cd coreutils-8.4/
lfs@ubuntu-vm:~/coreutils-8.4$ 
lfs@ubuntu-vm:~/coreutils-8.4$ ./configure --prefix=/tools --enable-install-program=hostname
lfs@ubuntu-vm:~/coreutils-8.4$ make
lfs@ubuntu-vm:~/coreutils-8.4$ make RUN_EXPENSIVE_TESTS=yes check
=======================
All 185 tests passed
(17 tests were not run)
=======================
lfs@ubuntu-vm:~/coreutils-8.4$ make install
lfs@ubuntu-vm:~/coreutils-8.4$ cp -v src/su /tools/bin/su-tools
`src/su' -> `/tools/bin/su-tools'

珍しくテストパス。

5.18. Diffutils-2.8.1

lfs@ubuntu-vm:~$ tar xzf /mnt/lfs/sources/diffutils-2.8.1
diffutils-2.8.1-i18n-1.patch  diffutils-2.8.1.tar.gz        
lfs@ubuntu-vm:~$ tar xzf /mnt/lfs/sources/diffutils-2.8.1.tar.gz 
lfs@ubuntu-vm:~$ cd diffutils-2.8.1/
lfs@ubuntu-vm:~/diffutils-2.8.1$ ./configure --prefix=/tools
lfs@ubuntu-vm:~/diffutils-2.8.1$ make
lfs@ubuntu-vm:~/diffutils-2.8.1$ make install

5.19. Findutils-4.4.2

lfs@ubuntu-vm:~$ tar xzf /mnt/lfs/sources/findutils-4.4.2.tar.gz 
lfs@ubuntu-vm:~$ cd findutils-4.4.2/
lfs@ubuntu-vm:~/findutils-4.4.2$ ./configure --prefix=/tools
lfs@ubuntu-vm:~/findutils-4.4.2$ make
lfs@ubuntu-vm:~/findutils-4.4.2$ make check
lfs@ubuntu-vm:~/findutils-4.4.2$ make install

テストはたぶん通った。ちゃんとログ見てないけど。

5.20. Gawk-3.1.7

lfs@ubuntu-vm:~$ tar xjf /mnt/lfs/sources/gawk-3.1.7.tar.bz2 
lfs@ubuntu-vm:~$ cd gawk-3.1.7/
lfs@ubuntu-vm:~/gawk-3.1.7$ ./configure --prefix=/tools

Now please type 'make' to compile. Good luck.

こんなメッセージ出しちゃう作者お茶目。今度書いてみようかな。

lfs@ubuntu-vm:~/gawk-3.1.7$ make
lfs@ubuntu-vm:~/gawk-3.1.7$ make check
3 TESTS FAILED

そして出るFAILED。お約束ですか。でも強引に入れちゃう。

lfs@ubuntu-vm:~/gawk-3.1.7$ make install

5.21. Gettext-0.17

lfs@ubuntu-vm:~$ tar xzf /mnt/lfs/sources/gettext-0.17.tar.gz 
lfs@ubuntu-vm:~$ cd gettext-0.17/
lfs@ubuntu-vm:~/gettext-0.17$ cd gettext-tools/
lfs@ubuntu-vm:~/gettext-0.17/gettext-tools$ make -C gnulib-lib
lfs@ubuntu-vm:~/gettext-0.17/gettext-tools$ make -C src msgfmt
lfs@ubuntu-vm:~/gettext-0.17/gettext-tools$ cp -v src/msgfmt /tools/bin
`src/msgfmt' -> `/tools/bin/msgfmt'

5.22. Grep-2.5.4

lfs@ubuntu-vm:~$ tar xjf /mnt/lfs/sources/grep-2.5.4.tar.bz2 
lfs@ubuntu-vm:~$ cd grep-2.5.4/
lfs@ubuntu-vm:~/grep-2.5.4$ ./configure --prefix=/tools \
>     --disable-perl-regexp \
>     --without-included-regex
lfs@ubuntu-vm:~/grep-2.5.4$ make
lfs@ubuntu-vm:~/grep-2.5.4$ make check
======================
All 13 tests passed
(1 tests were not run)
======================
lfs@ubuntu-vm:~/grep-2.5.4$ make install

5.23. Gzip-1.4

lfs@ubuntu-vm:~$ tar xzf /mnt/lfs/sources/gzip-1.4.tar.gz 
lfs@ubuntu-vm:~$ cd gzip-1.4/
lfs@ubuntu-vm:~/gzip-1.4$ ./configure --prefix=/tools
lfs@ubuntu-vm:~/gzip-1.4$ make
lfs@ubuntu-vm:~/gzip-1.4$ make check
Test succeeded.
lfs@ubuntu-vm:~/gzip-1.4$ make install

5.24. M4-1.4.13

lfs@ubuntu-vm:~$ tar xjf /mnt/lfs/sources/m4-1.4.13.tar.bz2 
lfs@ubuntu-vm:~$ cd m4-1.4.13/
lfs@ubuntu-vm:~/m4-1.4.13$ ./configure --prefix=/tools
lfs@ubuntu-vm:~/m4-1.4.13$ make
lfs@ubuntu-vm:~/m4-1.4.13$ make check
======================
All 69 tests passed
(8 tests were not run)
======================
lfs@ubuntu-vm:~/m4-1.4.13$ make install

5.25. Make-3.81

lfs@ubuntu-vm:~$ tar xjf /mnt/lfs/sources/make-3.81.tar.bz2 
lfs@ubuntu-vm:~$ cd make-3.81/
lfs@ubuntu-vm:~/make-3.81$ ./configure --prefix=/tools
lfs@ubuntu-vm:~/make-3.81$ make
lfs@ubuntu-vm:~/make-3.81$ make check
351 Tests in 96 Categories Complete ... No Failures :-)
lfs@ubuntu-vm:~/make-3.81$ make install

5.26. Patch-2.6.1

lfs@ubuntu-vm:~$ tar xjf /mnt/lfs/sources/patch-2.6.1.tar.bz2 
lfs@ubuntu-vm:~$ cd patch-2.6.1/
lfs@ubuntu-vm:~/patch-2.6.1$ ./configure --prefix=/tools
lfs@ubuntu-vm:~/patch-2.6.1$ make
src/patch.o: In function `make_temp':
/home/lfs/patch-2.6.1/src/patch.c:1542: warning: the use of `mktemp' is dangerous, better use `mkstemp'
lfs@ubuntu-vm:~/patch-2.6.1$ make check
All tests succeeded!
lfs@ubuntu-vm:~/patch-2.6.1$ make install

ちょいと気になるワーニング出てる。

5.27. Perl-5.10.1

lfs@ubuntu-vm:~$ tar xjf /mnt/lfs/sources/perl-5.10.1.tar.bz2 
lfs@ubuntu-vm:~$ cd perl-5.10.1/
lfs@ubuntu-vm:~/perl-5.10.1$ patch -Np1 -i /mnt/lfs/sources/perl-5.10.1-libc-1.patch 
patching file hints/linux.sh
lfs@ubuntu-vm:~/perl-5.10.1$ sh Configure -des -Dprefix=/tools \
> -Dstatic_ext='Data/Dumper Fcntl IO POSIX'
lfs@ubuntu-vm:~/perl-5.10.1$ make perl utilities ext/Errno/pm_to_blib
lfs@ubuntu-vm:~/perl-5.10.1$ cp -v perl pod/pod2man /tools/bin
lfs@ubuntu-vm:~/perl-5.10.1$ mkdir -pv /tools/lib/perl5/5.10.1
lfs@ubuntu-vm:~/perl-5.10.1$ cp -Rv lib/* /tools/lib/perl5/5.10.1

5.28. Sed-4.2.1

lfs@ubuntu-vm:~$ tar xjf /mnt/lfs/sources/sed-4.2.1.tar.bz2 
lfs@ubuntu-vm:~$ cd sed-4.2.1/
lfs@ubuntu-vm:~/sed-4.2.1$ ./configure --prefix=/tools
lfs@ubuntu-vm:~/sed-4.2.1$ make
lfs@ubuntu-vm:~/sed-4.2.1$ make check
======================================================
All 65 tests behaved as expected (4 expected failures)
======================================================
lfs@ubuntu-vm:~/sed-4.2.1$ make install

5.29. Tar-1.22

lfs@ubuntu-vm:~$ tar xjf /mnt/lfs/sources/tar-1.22.tar.bz2 
lfs@ubuntu-vm:~$ cd tar-1.22/
lfs@ubuntu-vm:~/tar-1.22$ ./configure --prefix=/tools
lfs@ubuntu-vm:~/tar-1.22$ make
lfs@ubuntu-vm:~/tar-1.22$ make check
70 tests were successful.
7 tests were skipped.
lfs@ubuntu-vm:~/tar-1.22$ make install

テストなげー。i7-920で5分ぐらい?
時間測ればよかったな。

5.30. Texinfo-4.13a

この章最後のパッケージ。

lfs@ubuntu-vm:~$ tar xzf /mnt/lfs/sources/texinfo-4.13a.tar.gz 
lfs@ubuntu-vm:~$ cd texinfo-4.13/
lfs@ubuntu-vm:~/texinfo-4.13$ ./configure --prefix=/tools
lfs@ubuntu-vm:~/texinfo-4.13$ make
lfs@ubuntu-vm:~/texinfo-4.13$ make check
lfs@ubuntu-vm:~/texinfo-4.13$ make install

5.31. ストリップ

ココだけは英語表記の方がいいな。
strip前

lfs@ubuntu-vm:~$ du -sh /tools/*
110M	/tools/bin
8.0K	/tools/etc
608K	/tools/i686-lfs-linux-gnu
140K	/tools/i686-pc-linux-gnu
16M	/tools/include
5.2M	/tools/info
96M	/tools/lib
93M	/tools/libexec
6.3M	/tools/man
5.8M	/tools/sbin
56M	/tools/share
4.0K	/tools/var

strip実行。

lfs@ubuntu-vm:~$ strip --strip-debug /tools/lib/*
lfs@ubuntu-vm:~$ strip --strip-unneeded /tools/{,s}bin/*
lfs@ubuntu-vm:~$ rm -rf /tools/{,share}/{info,man}

事後。

lfs@ubuntu-vm:~$ du -sh /tools/*
32M	/tools/bin
8.0K	/tools/etc
608K	/tools/i686-lfs-linux-gnu
140K	/tools/i686-pc-linux-gnu
16M	/tools/include
58M	/tools/lib
93M	/tools/libexec
1.4M	/tools/sbin
43M	/tools/share
4.0K	/tools/var

減る減る。

5.32. 所有者の変更

サヨウナラlfsユーザー。

$ sudo chown -R root:root $LFS/tools

これで前準備は終わり。6章へ続く。

| | コメント (0) | トラックバック (0)

2010年5月22日 (土)

[Linux] Linux From Scratch 6.6 その3

その2の続き。

5.9. Binutils-2.20 - 2回め

lfs@ubuntu-vm:~$ tar xjf /mnt/lfs/sources/binutils-2.20.tar.bz2 
lfs@ubuntu-vm:~$ mkdir binutils-build
lfs@ubuntu-vm:~$ cd binutils-build/
lfs@ubuntu-vm:~/binutils-build$ CC="$LFS_TGT-gcc -B/tools/lib/" \
>    AR=$LFS_TGT-ar RANLIB=$LFS_TGT-ranlib \
>    ../binutils-2.20/configure --prefix=/tools \
>    --disable-nls --with-lib-path=/tools/lib
lfs@ubuntu-vm:~/binutils-build$ make
lfs@ubuntu-vm:~/binutils-build$ make install
lfs@ubuntu-vm:~/binutils-build$ make -C ld clean
lfs@ubuntu-vm:~/binutils-build$ make -C ld LIB_PATH=/usr/lib:/lib
lfs@ubuntu-vm:~/binutils-build$ cp -v ld/ld-new /tools/bin 


5.10. GCC-4.4.3 - 2回め

lfs@ubuntu-vm:~$ tar jxf /mnt/lfs/sources/gcc-4.4.3.tar.bz2 
lfs@ubuntu-vm:~$ cd gcc-4.4.3/
lfs@ubuntu-vm:~/gcc-4.4.3$ patch -Np1 -i /mnt/lfs/sources/gcc-4.4.3-startfiles_fix-1.patch 
patching file gcc/gcc.c
Hunk #1 succeeded at 6467 (offset 97 lines).
lfs@ubuntu-vm:~/gcc-4.4.3$ cp -v gcc/Makefile.in{,.orig}
`gcc/Makefile.in' -> `gcc/Makefile.in.orig'
lfs@ubuntu-vm:~/gcc-4.4.3$ sed 's@\./fixinc\.sh@-c true@' gcc/Makefile.in.orig > gcc/Makefile.in
lfs@ubuntu-vm:~/gcc-4.4.3$ cp -v gcc/Makefile.in{,.tmp}
`gcc/Makefile.in' -> `gcc/Makefile.in.tmp'
lfs@ubuntu-vm:~/gcc-4.4.3$ sed 's/^T_CFLAGS =$/& -fomit-frame-pointer/' gcc/Makefile.in.tmp \
>   > gcc/Makefile.in
lfs@ubuntu-vm:~/gcc-4.4.3$ for file in \
>  $(find gcc/config -name linux64.h -o -name linux.h -o -name sysv4.h)
> do
>   cp -uv $file{,.orig}
>   sed -e 's@/lib\(64\)\?\(32\)\?/ld@/tools&@g' \
>   -e 's@/usr@/tools@g' $file.orig > $file
>   echo '
> #undef STANDARD_INCLUDE_DIR
> #define STANDARD_INCLUDE_DIR 0
> #define STANDARD_STARTFILE_PREFIX_1 ""
> #define STANDARD_STARTFILE_PREFIX_2 ""' >> $file
>   touch $file.orig
> done
`gcc/config/linux.h' -> `gcc/config/linux.h.orig'
`gcc/config/bfin/linux.h' -> `gcc/config/bfin/linux.h.orig'
`gcc/config/ia64/linux.h' -> `gcc/config/ia64/linux.h.orig'
`gcc/config/ia64/sysv4.h' -> `gcc/config/ia64/sysv4.h.orig'
`gcc/config/frv/linux.h' -> `gcc/config/frv/linux.h.orig'
`gcc/config/m32r/linux.h' -> `gcc/config/m32r/linux.h.orig'
`gcc/config/alpha/linux.h' -> `gcc/config/alpha/linux.h.orig'
`gcc/config/mips/linux.h' -> `gcc/config/mips/linux.h.orig'
`gcc/config/mips/linux64.h' -> `gcc/config/mips/linux64.h.orig'
`gcc/config/mn10300/linux.h' -> `gcc/config/mn10300/linux.h.orig'
`gcc/config/rs6000/linux.h' -> `gcc/config/rs6000/linux.h.orig'
`gcc/config/rs6000/sysv4.h' -> `gcc/config/rs6000/sysv4.h.orig'
`gcc/config/rs6000/linux64.h' -> `gcc/config/rs6000/linux64.h.orig'
`gcc/config/m68k/linux.h' -> `gcc/config/m68k/linux.h.orig'
`gcc/config/cris/linux.h' -> `gcc/config/cris/linux.h.orig'
`gcc/config/sparc/linux.h' -> `gcc/config/sparc/linux.h.orig'
`gcc/config/sparc/sysv4.h' -> `gcc/config/sparc/sysv4.h.orig'
`gcc/config/sparc/linux64.h' -> `gcc/config/sparc/linux64.h.orig'
`gcc/config/s390/linux.h' -> `gcc/config/s390/linux.h.orig'
`gcc/config/xtensa/linux.h' -> `gcc/config/xtensa/linux.h.orig'
`gcc/config/i386/linux.h' -> `gcc/config/i386/linux.h.orig'
`gcc/config/i386/sysv4.h' -> `gcc/config/i386/sysv4.h.orig'
`gcc/config/i386/linux64.h' -> `gcc/config/i386/linux64.h.orig'
`gcc/config/sh/linux.h' -> `gcc/config/sh/linux.h.orig'
lfs@ubuntu-vm:~/gcc-4.4.3$ tar -jxf /mnt/lfs/sources/mpfr-2.4.2.tar.bz2 
lfs@ubuntu-vm:~/gcc-4.4.3$ mv mpfr-2.4.2/ mpfr
lfs@ubuntu-vm:~/gcc-4.4.3$ tar -jxf /mnt/lfs/sources/gmp-5.0.0.tar.bz2 
lfs@ubuntu-vm:~/gcc-4.4.3$ mv gmp-5.0.0/ gmp
lfs@ubuntu-vm:~/gcc-4.4.3$ mkdir -v ../gcc-build
mkdir: created directory `../gcc-build'
lfs@ubuntu-vm:~/gcc-4.4.3$ cd ../gcc-build/
lfs@ubuntu-vm:~/gcc-build$ CC="$LFS_TGT-gcc -B/tools/lib/" \
>     AR=$LFS_TGT-ar RANLIB=$LFS_TGT-ranlib \
>     ../gcc-4.4.3/configure --prefix=/tools \
>     --with-local-prefix=/tools --enable-clocale=gnu \
>     --enable-shared --enable-threads=posix \
>     --enable-__cxa_atexit --enable-languages=c,c++ \
>     --disable-libstdcxx-pch --disable-multilib \
>     --disable-bootstrap
lfs@ubuntu-vm:~/gcc-build$ make
lfs@ubuntu-vm:~/gcc-build$ make install
lfs@ubuntu-vm:~/gcc-build$ ln -vs gcc /tools/bin/cc
lfs@ubuntu-vm:~$ echo 'main(){}' > dummy.c
lfs@ubuntu-vm:~$ cc dummy.c
lfs@ubuntu-vm:~$ readelf -l a.out | grep ': /tools'
      [Requesting program interpreter: /tools/lib/ld-linux.so.2]
lfs@ubuntu-vm:~$ rm -v dummy.c a.out
removed `dummy.c'
removed `a.out'

5.11. Tcl-8.5.8

lfs@ubuntu-vm:~$ tar xzf /mnt/lfs/sources/tcl8.5.8-src.tar.gz 
lfs@ubuntu-vm:~$ cd tcl8.5.8/
lfs@ubuntu-vm:~/tcl8.5.8$ cd unix/
lfs@ubuntu-vm:~/tcl8.5.8/unix$ ./configure --prefix=/tools
lfs@ubuntu-vm:~/tcl8.5.8/unix$ make
lfs@ubuntu-vm:~/tcl8.5.8/unix$ TZ=UTC make test
Tests ended at Sat May 22 07:14:00 UTC 2010
all.tcl:	Total	24472	Passed	23360	Skipped	1111	Failed	1
Sourced 137 Test Files.
Files with failing tests: httpold.test
lfs@ubuntu-vm:~/tcl8.5.8/unix$ make install
lfs@ubuntu-vm:~/tcl8.5.8/unix$ chmod -v u+w /tools/lib/libtcl8.5.so 
mode of `/tools/lib/libtcl8.5.so' changed to 0755 (rwxr-xr-x)
lfs@ubuntu-vm:~/tcl8.5.8/unix$ make install-private-headers
Installing private header files
lfs@ubuntu-vm:~/tcl8.5.8/unix$ ln -sv tclsh8.5 /tools/bin/tclsh
`/tools/bin/tclsh' -> `tclsh8.5'

テストで一個落ちてるけど、解説文読むには問題ないかもしれない。

5.12. Expect-5.43.0

lfs@ubuntu-vm:~$ tar xzf /mnt/lfs/sources/expect-5.43.0.tar.gz 
lfs@ubuntu-vm:~$ cd expect-5.43/
lfs@ubuntu-vm:~/expect-5.43$ patch -Np1 -i /mnt/lfs/sources/expect-5.43.0-spawn-1.patch 
patching file exp_chan.c
Hunk #1 succeeded at 622 (offset 103 lines).
patching file exp_command.h
Hunk #1 succeeded at 30 with fuzz 1 (offset 5 lines).
Hunk #2 succeeded at 104 (offset 6 lines).
patching file expect.c
Hunk #2 succeeded at 1628 (offset 1 line).
Hunk #3 succeeded at 1712 (offset 1 line).
Hunk #4 succeeded at 1730 (offset 1 line).
Hunk #5 succeeded at 1787 (offset 1 line).
Hunk #6 succeeded at 2864 (offset 5 lines).
lfs@ubuntu-vm:~/expect-5.43$ patch -Np1 -i /mnt/lfs/sources/expect-5.43.0-tcl_8.5.5_fix-1.patch 
patching file Dbg.c
patching file exp_inter.c
patching file exp_command.c
patching file exp_command.h
lfs@ubuntu-vm:~/expect-5.43$ cp -v configure{,.orig}
`configure' -> `configure.orig'
lfs@ubuntu-vm:~/expect-5.43$ sed 's:/usr/local/bin:/bin:' configure.orig > configure
lfs@ubuntu-vm:~/expect-5.43$ ./configure --prefix=/tools --with-tcl=/tools/lib \
>   --with-tclinclude=/tools/include --with-x=no
lfs@ubuntu-vm:~/expect-5.43$ make
lfs@ubuntu-vm:~/expect-5.43$ make test
all.tcl:	Total	22	Passed	9	Skipped	0	Failed	13
Sourced 0 Test Files.
Files with failing tests: cat.test logfile.test send.test spawn.test
lfs@ubuntu-vm:~/expect-5.43$ make SCRIPTS="" install

こちらは盛大にfailed出てるけど、これも問題ないらしい。

5.13. DejaGNU-1.4.4

lfs@ubuntu-vm:~$ tar xzf /mnt/lfs/sources/dejagnu-1.4.4.tar.gz 
lfs@ubuntu-vm:~$ cd dejagnu-1.4.4/
lfs@ubuntu-vm:~/dejagnu-1.4.4$ ./configure --prefix=/tools
lfs@ubuntu-vm:~/dejagnu-1.4.4$ make install
lfs@ubuntu-vm:~/dejagnu-1.4.4$ make check

5.14. Ncurses-5.7

lfs@ubuntu-vm:~$ tar xzf /mnt/lfs/sources/ncurses-5.7.tar.gz 
lfs@ubuntu-vm:~$ cd ncurses-5.7/
lfs@ubuntu-vm:~/ncurses-5.7$ ./configure --prefix=/tools --with-shared \
>     --without-debug --without-ada --enable-overwrite
lfs@ubuntu-vm:~/ncurses-5.7$ make
lfs@ubuntu-vm:~/ncurses-5.7$ make install

5.15. Bash-4.1

lfs@ubuntu-vm:~$ tar xzf /mnt/lfs/sources/bash-4.1.tar.gz 
lfs@ubuntu-vm:~$ cd bash-4.1/
lfs@ubuntu-vm:~/bash-4.1$ ./configure --prefix=/tools --without-bash-malloc
lfs@ubuntu-vm:~/bash-4.1$ make
lfs@ubuntu-vm:~/bash-4.1$ make install
lfs@ubuntu-vm:~/bash-4.1$ ln -vs bash /tools/bin/sh
`/tools/bin/sh' -> `bash'

make testsは通らなかったので、ctrl+c。

5.16. Bzip2-1.0.5

lfs@ubuntu-vm:~$ tar xzf /mnt/lfs/sources/bzip2-1.0.5.tar.gz 
lfs@ubuntu-vm:~$ cd bzip2-1.0.5/
lfs@ubuntu-vm:~/bzip2-1.0.5$ make
lfs@ubuntu-vm:~/bzip2-1.0.5$ make PREFIX=/tools install

まだまだ続く。

| | コメント (0) | トラックバック (0)

[Linux] Linux From Scratch 6.6 その2

その1の続き。

4.3. LFS ユーザーの追加

$ sudo groupadd lfs
$ sudo useradd -s /bin/bash -g lfs -m -k /dev/null lfs
$ sudo passwd lfs
$ sudo chown -v lfs $LFS/tools/
$ sudo su - lfs

以後、ユーザーlfsでの作業に移行。
useraddコマンで -k /dev/null が肝なのね。

4.4. 環境設定

このあたりから尋常じゃ無くなる。
上のリンクの文章は全て読んで理解すること。

lfs@ubuntu-vm:~$ cat > ~/.bash_profile << "EOF"
> exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash
> EOF
lfs@ubuntu-vm:~$ cat > ~/.bashrc << "EOF"
> set +h
> umask 022
> LFS=/mnt/lfs
> LC_ALL=POSIX
> LFS_TGT=$(uname -m)-lfs-linux-gnu
> PATH=/tools/bin:/bin:/usr/bin
> export LFS LC_ALL LFS_TGT PATH
> EOF
lfs@ubuntu-vm:~$ source ~/.bash_profile 

printenvしてみると綺麗な環境になってることが分かります。

5.4. Binutils-2.20 - 1回め

lfs@ubuntu-vm:~$ tar xjvf /mnt/lfs/sources/binutils-2.20.tar.bz2
lfs@ubuntu-vm:~$ mkdir -v ../binutils-build
lfs@ubuntu-vm:~$ cd ../binutils-build
lfs@ubuntu-vm:~/binutils-build$ ../binutils-2.20/configure \
    --target=$LFS_TGT --prefix=/tools \
    --disable-nls --disable-werror
lfs@ubuntu-vm:~/binutils-build$ make
lfs@ubuntu-vm:~/binutils-build$ make install
lfs@ubuntu-vm:~/binutils-build$ cd
lfs@ubuntu-vm:~$ rm -rf binutils-*

/tool以下にパッケージが展開されています。


5.5. GCC-4.4.3 - 1回め

lfs@ubuntu-vm:~$ tar -jxf /mnt/lfs/sources/mpfr-2.4.2.tar.bz2 
lfs@ubuntu-vm:~$ tar -jxf /mnt/lfs/sources/gmp-5.0.0.tar.bz2  
lfs@ubuntu-vm:~$ tar -jxf /mnt/lfs/sources/gcc-4.4.3.tar.bz2 
lfs@ubuntu-vm:~$ ls
gcc-4.4.3  gmp-5.0.0  mpfr-2.4.2
lfs@ubuntu-vm:~$ mv -v mpfr-2.4.2/ gcc-4.4.3/mpfr
`mpfr-2.4.2/' -> `gcc-4.4.3/mpfr'
lfs@ubuntu-vm:~$ mv -v gmp-5.0.0/ gcc-4.4.3/gmp
`gmp-5.0.0/' -> `gcc-4.4.3/gmp'
lfs@ubuntu-vm:~$ mkdir gcc-build
lfs@ubuntu-vm:~$ cd gcc-build/
lfs@ubuntu-vm:~/gcc-build$ ../gcc-4.4.3/configure \
>     --target=$LFS_TGT --prefix=/tools \
>     --disable-nls --disable-shared --disable-multilib \
>     --disable-decimal-float --disable-threads \
>     --disable-libmudflap --disable-libssp \
>     --disable-libgomp --enable-languages=c
lfs@ubuntu-vm:~/gcc-build$ make
lfs@ubuntu-vm:~/gcc-build$ make install
lfs@ubuntu-vm:~/gcc-build$ ln -vs libgcc.a `$LFS_TGT-gcc -print-libgcc-file-name | \
>     sed 's/libgcc/&_eh/'`
`/mnt/lfs/tools/bin/../lib/gcc/i686-lfs-lcd inux-gnu/4.4.3/libgcc_eh.a' -> `libgcc.a'
lfs@ubuntu-vm:~/gcc-build$ cd
lfs@ubuntu-vm:~$ rm -rf gcc-*

どうにもln -vsの使い方に慣れないな。

5.6. Linux-2.6.32.8 API ヘッダ

lfs@ubuntu-vm:~/$ tar xjf /mnt/lfs/sources/linux-2.6.32.8.tar.bz2 
lfs@ubuntu-vm:~/$ cd linux-2.6.32.8/
lfs@ubuntu-vm:~/linux-2.6.32.8$ make mrproper
lfs@ubuntu-vm:~/linux-2.6.32.8$ make headers_check
lfs@ubuntu-vm:~/linux-2.6.32.8$ make INSTALL_HDR_PATH=dest headers_install
lfs@ubuntu-vm:~/linux-2.6.32.8$ cp -rv dest/include/* /tools/include
lfs@ubuntu-vm:~/linux-2.6.32.8$ cd
lfs@ubuntu-vm:~$ rm -rf linux-2.6.32.8/

5.7. Glibc-2.11.1

lfs@ubuntu-vm:~$ tar xjf /mnt/lfs/sources/glibc-2.11.1.tar.bz2 
lfs@ubuntu-vm:~$ mkdir -v glibc-build
mkdir: created directory `glibc-build'
lfs@ubuntu-vm:~$ cd glibc-build/
lfs@ubuntu-vm:~/glibc-build$ case `uname -m` in
>   i?86) echo "CFLAGS += -march=i486 -mtune=native" > configparms ;;
> esac
lfs@ubuntu-vm:~/glibc-build$ ../glibc-2.11.1/configure --prefix=/tools \
>     --host=$LFS_TGT --build=$(../glibc-2.11.1/scripts/config.guess) \
>     --disable-profile --enable-add-ons \
>     --enable-kernel=2.6.18 --with-headers=/tools/include \
>     libc_cv_forced_unwind=yes libc_cv_c_cleanup=yes
lfs@ubuntu-vm:~/glibc-build$ make
lfs@ubuntu-vm:~/glibc-build$ make install
lfs@ubuntu-vm:~/glibc-build$ cd
lfs@ubuntu-vm:~$ rm -rf glibc-*


5.8. ツールチェーンの調整

lfs@ubuntu-vm:~$ SPECS=`dirname $($LFS_TGT-gcc -print-libgcc-file-name)`/specs
lfs@ubuntu-vm:~$ $LFS_TGT-gcc -dumpspecs | sed \
>   -e 's@/lib\(64\)\?/ld@/tools&@g' \
>   -e "/^\*cpp:$/{n;s,$, -isystem /tools/include,}" > $SPECS
lfs@ubuntu-vm:~$ echo "New specs file is: $SPECS"
New specs file is: /mnt/lfs/tools/bin/../lib/gcc/i686-lfs-linux-gnu/4.4.3/specs
lfs@ubuntu-vm:~$ unset SPECS
lfs@ubuntu-vm:~$ echo 'main(){}' > dummy.c
lfs@ubuntu-vm:~$ $LFS_TGT-gcc -B/tools/lib dummy.c
lfs@ubuntu-vm:~$ readelf -l a.out | grep ': /tools'
      [Requesting program interpreter: /tools/lib/ld-linux.so.2]
lfs@ubuntu-vm:~$ rm -v dummy.c a.out
removed `dummy.c'
removed `a.out'

長くなってきたので、続く。

| | コメント (0) | トラックバック (0)

2010年5月21日 (金)

[Linux] Linux From Scratch 6.6 その1

Linuxのお勉強に最適、というかバイブルと思ってるLinux From Scratch(以下、LFS)。
いつの間にか6.6な日本語版が出来ていたので、ちょいと遊んでみる。

LFSブック日本語版

開発ホストはVMWareなUbuntu 10.04 LTS。
さて仮想環境でどこまで出来るか。

まずホストシステム要件を満たしているか確認。
version-check.shを実行してみると、

bash, version 4.1.5(1)-release
/bin/sh -> /bin/dash
Binutils: (GNU Binutils for Ubuntu) 2.20.1-system.20100303
./version-check.sh: line 9: bison: command not found
yacc not found
bzip2,  Version 1.0.5, 10-Dec-2007.
Coreutils:  7.4
diff (GNU diffutils) 2.8.1
find (GNU findutils) 4.4.2
GNU Awk 3.1.6
/usr/bin/awk -> /usr/bin/gawk
gcc (Ubuntu 4.4.3-4ubuntu5) 4.4.3
GNU C Library (Ubuntu EGLIBC 2.11.1-0ubuntu7) stable release version 2.11.1
GNU grep 2.5.4
gzip 1.3.12
Linux version 2.6.32-22-generic (buildd@rothera) (gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5) ) #33-Ubuntu SMP Wed Apr 28 13:27:30 UTC 2010
m4 (GNU M4) 1.4.13
GNU Make 3.81
patch 2.6
Perl version='5.10.1';
GNU sed version 4.2.1
tar (GNU tar) 1.22
./version-check.sh: line 32: makeinfo: command not found
Texinfo: 
Compilation OK

パッケージ無し
・Bison
・Texinfo

非推奨バージョン
・Binutils
・Gcc
・Glibc

非推奨は目をつむって、不足パッケージだけ入れておく。

$ sudo apt-get install bison texinfo

さて、LFS開始。

2.2. 新しいパーティションの生成
ここは仮想環境の強み、VMWareの仮想マシン設定でさっくりとハードディスクを追加。
とりあえず20GBのストレージを用意しました。

再度VMWareからUbuntuを起動すると、/dev/sdbがあることを確認。
このあたり便利ですねぇ。
cfdiskで/dev/sdb1に10GB、/dev/sdb5をswapとして2GBで準備はOKかな。

2.3. ファイルシステムの生成

$ sudo mke2fs -jv /dev/sdb1
$ sudo mkswap /dev/sdb5


2.4. 新しいパーティションのマウント

$ export LFS=/mnt/lfs
$ sudo mkdir -pv $LFS
$ sudo mount -v -t ext3 /dev/sdb1 $LFS
$ sudo swapon -v /dev/sdb5


3.1. はじめに

$ sudo mkdir -v $LFS/sources
$ sudo chmod -v a+wt $LFS/sources/

ここで日本語版情報としてwgetのjpなリストを作るべ、ってくだりがあるので乗っかる。

$ cd $LFS/sources
$ wget http://lfsbookja.sourceforge.jp/6.6.ja/wget-list.txt
$ mv wget-list.txt wget-list
$ cp -pv wget-list wget-list.orig
$ sed -e 's|http://ftp\.gnu\.org/gnu/|http://ftp.riken.jp/GNU/ftp/gnu/|g' \
    -e 's|http://www\.kernel\.org/pub/linux/|http://ftp.riken.jp/Linux/kernel.org/linux/|g' \
       wget-list.orig > wget-list
$ wget -N -i wget-list
これで$LFS/sources/wget-listは理研さんからのリストになって、ごっそり落とせます。 ありがとう理研。
終了しました --2010-05-21 23:48:41--
ダウンロード完了: 72 ファイル、252M バイトを 4m 9s で取得 (1.01 MB/s)

フレッツ光でこのぐらいでした。
ありがとうNTT。


4.2. $LFS/tools ディレクトリの生成

$ sudo mkdir -v $LFS/tools
$ sudo ln -sv $LFS/tools /
二つ目はちょいビビルも問題無し。普段から使いこなしてないのがバレバレ。


4.3. LFS ユーザーの追加

裏でほりえもんのツイートが面白い。
24時からニコ生なので、今日はここまで。
もづく。

| | コメント (0) | トラックバック (0)

[Linux] VMWareでUbuntu 10.04のキーボードが効かない件

VMWareで構築したUbuntu 8.04を10.04へVersion upした所、ログイン画面でキーボード入力を受け付けなくて涙目な件。

Ubuntu Weekly Topicsによると、VMWare側の不具合だけど対処法あるよと。
書かれている通りスクリーンキーボードで一生懸命console-setupをreconfigureしたけどダメでした。。。

悔しいので大元のBTS見ると、

Found and fixed. It was necessary to rm /etc/X11/xorg.conf, which was present because of the upgrade from 8.04.

xorg.confをリネームして再起動で、キーボード入力余裕でした。

もうちょっと枯れるまでversion up待った方が良かったかな。

| | コメント (11) | トラックバック (1)

2010年5月19日 (水)

[Linux] Ubuntu 10.04のUSBブートメディアを作る

ひとつあると何かと便利なUSBブートメディア。
GWに出ていたLTS版Ubuntu 10.04を元に、USBブートメディアを作る。

UNetbootinをダウンロード。
Ubuntu 10.04 LTS Desktop 日本語 Remix CD (x86用)もダウンロード。
こっちは700M近いので注意。

Unetbootin


UNetbootinを実行して、Diskimageで落としたISOファイルを指定、USBメディアのドライブを指定してOKを押すだけの簡単なお仕事です。
日本語版にこだわらなければ、ISOファイル落とさずにUNetbootinだけで完結します。
これ便利。

| | コメント (0) | トラックバック (0)

[戦場のヴァルキュリア2] 戦車をつくろう!最終回

戦場のヴァルキュリア2ブラウザゲーム「戦車をつくろう!」の最終ゴール、大将昇進の図。
Valkyria2
戦場のヴァルキュリア2自体はさっくりクリアしたけど、こちらは時間かかりました。
ラビニア姉さん、アレは嫌な事件だったね。

戦場のヴァルキュリア2は良作。
ぜひPS3版無印とあわせてプレイしましょう。

| | コメント (3) | トラックバック (0)

« 2008年10月 | トップページ | 2010年6月 »