No Such Blog or Diary

«Prev || 1 | 2 | 3 |...| 1293 | 1294 | 1295 |...| 1307 | 1308 | 1309 || Next»

Installation of coLinux with Gentoo

突然 coLinux を使ってみたくなってインストールしたので,その記録を残してみる.

まずはhttp://www.colinux.org/ から 0.6.2 のインストーラ(coLinux-0.6.2.exe)をダウンロード.そして, インストーラを実行して適当なディレクトリにインストール(例えばN:\coLinux).インストールオプションは,WinPcap は使う予定が無いのでチェックをはずして,さらに Gentoo をインストールするのでルートイメージのダウンロードはしない.Gentoo のルートイメージは別途 Wiki からたどってダウンロード.ルートイメージをcoLinuxのインストールディレクトリにでも展開する.

ちなみに解凍されるルートイメージは 512M なので,/usr なども同一イメージ上に作成するのであれば topo\topoenlarge.bat を使って適当にサイズを大きくする(4Gぐらいほしいなぁ).別のイメージを用意するならば,cygwin の dd とかで適当なサイズのファイルを作っておく(フォーマットはマウント後に普通にやればいい).

で,以下のような感じで設定ファイル gentoo.colinux.xml を書いて保存.

<?xml version="1.0" encoding="UTF-8"?>
<colinux>
    <block_device index="0" path="\DosDevices\n:\coLinux\gentoo512" enabled="true" />
    <block_device index="1" path="\DosDevices\n:\coLinux\swap64" enabled="true" />
    <bootparams>root=/dev/cobd0</bootparams>
    <initrd path="initrd.gz" />
    <image path="vmlinux" />
    <memory size="256" />
    <network index="0" type="tap" />
    <block_device index="2" alias="hdc" path="\Device\Cdrom0" enabled="true" />
</colinux>

起動は以下のコマンドで行う(バッチファイルでも書いて置けば楽).

colinux-daemon.exe -t nt -c gentoo.colinux.xml

あと,coLinux 側からネットワークを使うため,ホストPCのネットワークインターフェースとcoLinux の TAP ドライバをブリッジ接続しておく.

引き続きGentoo側の設定をする.

まず,portage のスナップショットを取ってくる(emerge sync でもいいけど).そのために,とりあえず手動でネットワークの設定をしておく(DHCP がイメージに入っていないので).

ifconfig eth0 192.168.0.4 netmask 255.255.255.0
ifconfig eth0 up
route add default gw 192.168.0.1
wget ftp://ftp.isu.edu.tw/pub/Linux/Gentoo/snapshots/portage-yyyymmdd.tar.bz2
tar -xvjf portage-yyyymmdd.tar.bz2 -C /usr

この作業は大量の画面出力を伴うが, coLinux のコンソールの挙動がおかしいので最後の tar コマンドは /dev/null へリダイレクトしておいたほうが無難かも.

次に,swap パーティションを大きくする.適当に大きなサイズ,ここでは512メガのファイルを swap512 という名前で手適当に作って(cygwin の dd コマンドで十分)

   <block_device index=\"2\" path=\"\DosDevices\n:\coLinux\swap512\" enabled=\"true\" />

の行を gentoo.colinux.xml に追加してマウントできるようにし,gentoo のほうで

mkswap /dev/cobd/2

を実行して swap 用にする.そして, gentoo.colinux.xml を書き換えて

    <block_device index="1" path="\DosDevices\n:\coLinux\swap512" enabled="true" />

にする.これで swap パーティションの切り替え終了.

あとは基本的に Gentoo のインストールに従うだけでしょう.http://www.gentoo.org/doc/ja/gentoo-x86-install.xmlの「13. ステージ3から始める場合」以降からで.

ホスト名の設定

echo hogehoge > /etc/hostname

タイムゾーン設定

ln -sf /usr/share/zoneinfo/Japan /etc/localtime

システムロガーとCronのインストール

emerge -k syslog-ng
rc-update add syslog-ng default
emerge -k vixie-cron
rc-update add vixie-cron default

ルートパスワード設定

passwd

ネットワーク設定

/etc/conf.d/net で eth0 を dhcp にして gateway の設定もなくすDHCPを使うので dhcpcd を入れて自動で立ち上げるように設定

emerge -k dhcpcd
rc-update add net.eth0 default

SSHを常時使用に

rc-update add sshd default 

その他に必要なものとして, screen, vi は必須なので入れておく.

emerge -k screen
emerge -k vim

次は X の設定で.

RMagick Compilation on Cygwin Failed...

Cygwin 上の ruby に RMagick をインストールしようとしたら

checking for InitializeMagick in -lMagick... no
configure: error: Can't install RMagick. Can't find libMagick

と怒られた.いや,libMagick-devel 入れてるし /usr/lib/libMagick.a あるし.ということで config.log を見てみると...

/usr/lib/gcc-lib/i686-pc-cygwin/3.3.3/../../../../i686-pc-cygwin/bin/ld: cannot find -lxml2

をい,libxml2 が見つからないんじゃんと.何でこんなオプション(-lxml2)がここで付いているのか不明だが,これもちゃんとチェックしとけよ configure .とりあえず libxml2-devel をインストールしてやったら ./configure がちゃんととおりましたとさ.

次は make で.C のコンパイルは成功してちゃんと shared library ができたらしい.が,その後のテストで RMagick.so のロードに失敗したと文句を吐きまくる.Cygwin で shared library って特別な作り方が必要だっけ? とりあえず面倒なので gem でのバイナリインストールに切り替える.gen 自身が入っていなかったので落としてきて(RubyGems)インストール

ruby setup.rb

続いて RMagick のバイナリアーカイブを解答して gem でインストール

gem install RMagick-win32-1.7.0-mswin32.gem

よし,動くだろう.ということで

ruby -e 'require "RMagick"'
/usr/lib/ruby/site_ruby/1.8/i386-cygwin/RMagick.so: dlopen, Win32 error 126 - /usr/lib/ruby/site_ruby/1.8/i386-cygwin/RMagick.so (LoadError)
        from /usr/lib/ruby/site_ruby/1.8/RMagick.rb:11
        from -e:1:in `require'
        from -e:1

ダメじゃん.

今日は日が悪いらしいのでまた今度にしよ

RMagick Compilation with Older GCC

CGI での画像操作に ImageMagick の Ruby interface である RMagick を使いたい.ということで RMagick をサーバ上でコンパイルしたのだが,少々問題発生.

RMagick は古い gcc2.95 とかでコンパイルすると -std=gnu99 オプションのせいでコンパイルがこける.なので,ext/RMagick/extconf.rb.in の

$CFLAGS = "-std=gnu99 -Wall -g @CFLAGS@"

$CFLAGS = "-Wall -g @CFLAGS@"

に書き換えてオプションをはずしてしまう.これでコンパイルできる.ついでに,インストール先を変えた場合パスを通しておかないと動かないので,たとえば

./configure --prefix=/home/ls-al/local/usr/

としたときには

ruby -I/home/ls-al/local/usr/lib/ruby/site_ruby/1.8/ -I/home/ls-al/local/usr/lib/ruby/site_ruby/1.8/i386-freebsd4 -e'require "RMagick"'

みたいに RMagick.rb, RMagick.so へのパスを渡す.一般的には次のような感じだと思う.

./configure --prefix=_PREFIX
ruby -I_PREFIX/lib/ruby/site_ruby/1.8/ -e'require "RMagick"' -I_PREFIX/lib/ruby/site_ruby/1.8/_ARCH

秋葉へ行ってみる

いまだ体調は万全ではないが睡眠をとったためそれなりに回復.買いたい本がいくつか出ているころなので秋葉へ旅に出た.

とりあえずパソコンショップをふらつきながら目的の半分である単行本をゲットして,もうひとつの目的である「萌え萌えジャパン 2兆円市場の萌える構造」を探してみた.

しかしまあ,いつものことながら発売日が明日だったみたいで置いてない.一日ぐらい前でもいいじゃんと思いつつ,だったら一日くらい待てと突っ込まれる今日この頃.

エイプリルフール-1

明日は楽しいエイプリルフール.何かネタを考えて誰かをだまそう.とりあえずいたずらプログラムを作って誰かに送ろうかなぁ.スタートボタンが逃げるやつとか,フォーカスのあるウィンドウがマウスから逃げるとか... 4月1日にはシャットダウンできなくするとかもありかなぁ.

CentOS

Redhat Enterprise Linux の商用部分を省いた形のパッケージである CentOS なるものがあることを知った.http://www.centos.org/

なにやらアップデートとかも速いらしいので安定に使うにはいいものかもしれない.とりあえず暇になったら試してみよう.

«Prev || 1 | 2 | 3 |...| 1293 | 1294 | 1295 |...| 1307 | 1308 | 1309 || Next»
Search
Feeds

Page Top