2005年04月
DHCP on Cygwin
coLinux に対して DHCP でIPを割り振りたい.ホストPCがネットワークにつながっていなくても.
ということで,簡単な解決法はネットワークの共有を使ってひとつのインターフェースを 192.168.0.1 に固定し,その上で Windows の DHCP が立ち上がるようにすればいい.この場合,接続が切れていようが問題ない.しかし,この方法は少々使いにくいので,自前でDHCPを動かしてみることにした.
で,Cygwin にDHCPがあるだろうと思ってたら無かったわけで,自分でコンパイルしてやらないとならない.とりあえず,cygwin でコンパイルするためのパッチをここらへん(dhcp-3.0.1rc11-cygwin.patch)から落としてきて,本体を ISC (dhcp-3.0.2.tar.gz)から落としてくる(バージョンが違うが気にしない).落としたら解凍してパッチ当ててコンパイルしてインストール.(パッチのときに行が合わないと文句が出るが無視)
tar xfvz dhcp-3.0.2.tar.gz cd dhcp-3.0.2 /bin/patch -p1 < ../dhcp-3.0.1rc11-cygwin.patch ./configure make make install
で,設定ファイル(/etc/dhcpd.conf)を適当に書いてやる.下のは 192.168.1.250 のインターフェースに対して DHCP を立ち上げている.
local-address 192.168.1.250; # This limits dhcpd to listening to this interface max-lease-time 180; default-lease-time 180; ddns-update-style none; option routers 192.168.1.250; subnet 192.168.1.0 netmask 255.255.255.0 { authoritative; range 192.168.1.100 192.168.1.200; log(debug, "debug 192 DHCPD-logging"); log(debug, binary-to-ascii(10,8, ".", packet(24,4))); }
実行は
dhcpd -d eth1
とかやれば動くのだが... 少々問題が.とりあえず,DHCPを動かすインターフェースにケーブルが接続されていないと起動できない.そのため,coLinux の立ち上げ直後にしか dhcpを立ち上げるタイミングが無い.
さーてどうしようかなあ?
- Comments: 0
- TrackBack (Close): -
OOo2.0Beta の Impress
- 2005-04-23 (Sat)
- ソフトウェア
輪講のスライド作成に OOo2.0Beta を使ってみた.
Impress のUI がPowerPoint に近いものに変わっており,スライド作るのが楽になった気がする.でも,まだBetaバージョンだからなのかスライドの選択ができなくなったりしてしばしば再起動.あと,PDFに出力したら画面の切り替え時に変なエフェクトがかかるようになっているのはよろしくないなぁと.
なにはともあれ,速く正式バージョンが出てほしいなぁ.
- Comments: 0
- TrackBack (Close): -
XPのネットワーク共有をブリッジ接続したcoLinunxesで使う
TAPのアダプタを複数作ってブリッジ接続して仮想的に複数台のcoLinuxesを接続できていたのだが,これまではそのブリッジにさらに外部に出られるインターフェースを追加してcoLinuxesが外部に出放題な状況だった.このままでも別に問題ないといえば無いのだが,この場合はcoLinuxがDHCPでリアルのネットワークにIPを取得しに行くため,自宅にいるか研究室にいるかで取得IPが違うのが面倒だった.ということで,NATで coLinuxes のネットワークを完全に外部から隔離してみた.
やったのは単純にTAPを全てブリッジ接続して,リアルのネットワークにつながるインターフェースをその「ネットワーク ブリッジ」に対して共有かけただけ.これでcoLinuxesはXPの提供するDHCPからIPを取るようになり,どこへ持っていっても同じIPでよろしい感じ.ただ,ネットの接続を共有した場合,共有を受ける側のインターフェースが 192.168.0.1 になり,DHCPも 192.168.0.xxx を割り振ることになるのでこれが少々めんどうかも.というのも,自宅のLANはもろに 192.168.0.xxx で組んであったので IP が衝突しまくりで設定変更を余儀なくされたから.共有を受ける側のIPが 192.168.yyy.xxx のように下二つを指定できるようになってると非常に使いやすいんだけどなぁ.なんで固定なのかが非常になぞだ...
- Comments: 0
- TrackBack (Close): -
coLinux + CygwinX
- 2005-04-20 (Wed)
- ソフトウェア ( Linux/coLinux Windows )
Cygwin の X サーバで XDMCP の接続が使えることに気づいたので試してみる.
起動はCygwin の startxdmcp.bat で REMOTE_HOST を coLinux の IP に変更して実行するだけ(coLinux 側で xdm/gdm の設定が必要だけど.その設定自体は VNC の場合も同じ).バッチファイルのコメントを消したのは以下となる(フルスクリーン,クリップボードあり).
SET DISPLAY=127.0.0.1:0.0 SET REMOTE_HOST=192.168.0.104 SET CYGWIN_ROOT=c:\cygwin SET PATH=.;%CYGWIN_ROOT%\bin;%CYGWIN_ROOT%\usr\X11R6\bin;%PATH% SET XAPPLRESDIR=/usr/X11R6/lib/X11/app-defaults SET XCMSDB=/usr/X11R6/lib/X11/Xcms.txt SET XKEYSYMDB=/usr/X11R6/lib/X11/XKeysymDB SET XNLSPATH=/usr/X11R6/lib/X11/locale if not exist %CYGWIN_ROOT%\tmp\.X11-unix\X0 goto CLEANUP-FINISH attrib -s %CYGWIN_ROOT%\tmp\.X11-unix\X0 del %CYGWIN_ROOT%\tmp\.X11-unix\X0 :CLEANUP-FINISH if exist %CYGWIN_ROOT%\tmp\.X11-unix rmdir %CYGWIN_ROOT%\tmp\.X11-unix run XWin -query %REMOTE_HOST% -nodecoration -lesspointer -fp tcp/%REMOTE_HOST%:7100 -clipboard
ただ,このバッチファイルは coLinux でDHCPを使ってると IP がかかわる度に編集しなきゃならんのでめんどい.
GUI の起動用のランチャでも作ろうかなぁ?
ところで, gdm で Disconnect しても Cygwin-X が再起動するのをとめるにはどうしたらいいのだらう?
- Comments: 0
- TrackBack (Close): -
GDMでローカルサーバ立ち上げない+α
- 2005-04-19 (Tue)
- ソフトウェア ( Linux/coLinux Windows )
coLinux で gdm を使うときにはローカルのXサーバを勝手に立ち上げてほしくない.でも,それをやるには --no-console のオプションを渡さなければならない.
ということで,/usr/X11R6/bin/gdm-nc というファイルを作って,中身を
#!/bin/bash /usr/bin/gdm --no-console
としておいて,/etc/rc.conf 内の DisplayManagerの起動コマンドをこれに変えてしまう.
DISPLAYMANAGER="gdm-nc"
これでローカルにXサーバが起動しなくなる.めでたし.
ついでに,kinput2 を起動させるために ~/.xprofile で
export XMODIFIERS="@im=kinput2" kinput2 &
としておくか.(ふつうはどこで設定するのだらう?)
- Comments: 0
- TrackBack (Close): -
CapsLock さようなら
いい加減 CapsLock がうざくなってきたので過去やっていたように Ctrl に変身してもらう事にした.
設定はレジストリエディタでマッピングをかえればよく,変える値は HKEY_LOCAL_MACHINE -> SYSTEM -> CurrentControlSet -> Control -> Keyboard Layout -> Scancode Map である.最初はエントリが無いのでバイナリ値のエントリを作る必要があるはず.
で,その中身はこんなんで.最初の8バイトがヘッダ,次にエントリ数,続いてマッピングのエントリとなる.エントリの最後には終端記号として 0 が必要らしい.
00 00 00 00 ; header version 00 00 00 00 ; header flags 02 00 00 00 ; header エントリ数(including Terminate) 1d 00 3a 00 ; エントリ: CapsLock -> 左Ctrl 00 00 00 00 ; Terminalte
ちなみに,リトルエンディアンなのでキーマップのエントリは始め2バイトが変更先で後ろ2バイトが変更元.詳しくは Scan Code Mapper for Windows で.それぞれのキーのスキャンコードは以下のとおりらしい.ここから一覧が取れる.(Scan Code Set 1のほう)
Backspace 00 0E Tab 00 0F CapsLock 00 3A Enter 00 1C Left Shift 00 2A Right Shift 00 36 Left Ctrl 00 1D Left Alt 00 38 Space Bar 00 39 Right Alt E0 38 Right Ctrl E0 1D NumLock 00 45 Esc 00 01 F1~F10 00 3B ~ 00 44 F11 00 57 F12 00 58 Scroll Lock 00 46 Left Win key E0 5B Right Win key E0 5C Application Key E0 5D Insert E0 52 Delete E0 53 Left Arrow E0 4B Home E0 47 End E0 4F Up Arrow E0 48 Down Arrow E0 50 Page Up E0 49 Page Down E0 51 Right Arrow E0 4D DBE_KATAKANA 00 70 (カタカナ ひらがな) DBE_SBCSCHAR 00 77 (???) CONVERT 00 79 (変換) NONCONVERT 00 7B (無変換)
これでWindowsキーの無いIBMマシンでもエクスプローラが楽に立ち上げられるぞ.
- Comments: 0
- TrackBack (Close): -
VNCで合わせ鏡
誰でも考えるであろうことをふと思いつき,実際にやってみた.
何をやったかというと,Windows の VNC Client から coLinux につないで X (Xvnc) を立ち上げ,そのなかから Windows 側で立ち上げた VNC Server に VNC Client で接続するということをした.これをやると,Windows で画面描画をした際に coLinux 内の VNC Client の描画が起こり,その描画は Windows の VNC Client に伝わり Windows 側の新たな描画を生じる.あとはこのサイクルが描画イベントが画面領域の外に出るまで繰り返され,合わせ鏡と同じ現象となる.
ちなみに結果はこんなもん.(ただ単に Window が重なっているようにしか見えない...)
- Comments: 0
- TrackBack (Close): -
coLinuxes -- 複数起動
- 2005-04-06 (Wed)
- ソフトウェア ( Linux/coLinux Windows )
無意味に coLinux を複数起動して通信させてみた.
やり方としては TAPアダプタを複数用意してブリッジ接続してやるだけ.TAPアダプタの増やし方は,[コントロールパネル]->[ハードウェアの追加]->[新しいハードウェア デバイスの追加]->[一覧から選択]->[ネットワーク アダプタ]->[TAP-Win32 Provider(coLinux)]->[TAP-Win32 Adapter V8(coLinux)] で.追加されたら [コントロールパネル]->[ネットワーク接続] で名前を TAP1, TAP2, ... とかに変えておく.
あとは,coLinux の設定XMLファイルのほうで,
<network index="0" name="TAP2" type="tap" />
のように name 属性を接続の名前 TAP1, TAP2, .. などに重ならないように指定するだけ.MACは自動でランダムに割り当てられるはずなので指定なし.
- Comments: 0
- TrackBack (Close): -
xfs が入ってなかった
- 2005-04-06 (Wed)
- ソフトウェア ( Linux/coLinux )
Gentoo で xorg-x11 を GRP インストールしたら xfs が入ってなかった... しょうがないからソースから作り直す.念のため USE に font-server を追加して.
で,まあ,ちゃんとコンパイルできたわけだが,今度は /etc/X11/fs/config が空... 面倒なのでここに xfs の config を書いておく.
# # X Font Server configuration file # # allow a max of 4 clients to connect to this font server client-limit = 4 # no tcp, use sockets! #no-listen = tcp # when a font server reaches its limit, start up a new one clone-self = on # alternate font servers for clients to use #alternate-servers = foo:7101,bar:7102 # where to look for fonts # Some of these are commented out, i.e. the TrueType and Type1 # directories in /usr/share, because they aren't forced to be # installed alongside X. catalogue = /usr/share/fonts/75dpi, /usr/share/fonts/100dpi, /usr/share/fonts/shinonome, /usr/share/fonts/monafont, /usr/share/fonts/mplus, /usr/share/fonts/aquafont, /usr/share/fonts/aquapfont, /usr/share/fonts/mikachan-font, /usr/share/fonts/artwiz:unscaled, /usr/share/fonts/misc, /usr/share/fonts/Type1, /usr/share/fonts/util, /usr/share/fonts/local, /usr/share/fonts/TTF, /usr/share/fonts/cyrillic # in 12 points, decipoints default-point-size = 120 # 100 x 100 and 75 x 75 default-resolutions = 75,75,100,100 # how to log errors use-syslog = on # font cache control, specified in KB cache-hi-mark = 2048 cache-low-mark = 1433 cache-balance = 70
とりあえず,これで xfs, gdm, xinetd, vncserver を設定して coLinux + VNC の GUI 環境ができた.
ちなみに,gdm の立ち上げうサーバを Xvfb :1 とかしてディスプレイ 0 以外にしておくと native に起動したときに startx でパラメータを渡さなくていいから楽(そうでないと startx -- :1 とかしてディスプレイ番号を指定しなければならない)
- Comments: 0
- TrackBack (Close): -
Gentoo 2-Way Boot (native & coLinux)
- 2005-04-06 (Wed)
- ソフトウェア ( Linux/coLinux Windows )
なんとなくデュアルブート用にインストールした Gentoo を coLinux で起動してみたくなった.これができると 2-Way Boot で結構便利なので.
で,そのためには coLinux の設定XMLを書かなければならないのだが,Windows のディスクナンバーとパーティションナンバーの管理の仕方が良く分からず苦戦.diskpart コマンドの返すディスクナンバーと,同パーティションナンバーからもずれているらしい.最終的に ,hda7, hda8 が /, swap である私の PC では次のような設定になった.まあ,ext3 のパーティションは一個しかないから全パターン試して起動したのが正解であっただけだけど.
<?xml version="1.0" encoding="UTF-8"?> <colinux> <block_device index="0" alias="hda7" path="\Device\Harddisk0\Partition4" enabled="true" /> <block_device index="1" alias="hda8" path="\Device\Harddisk0\Partition5" enabled="true" /> <bootparams>root=/dev/hda7</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>
(hda2 が拡張領域で hda3,4 が存在していないので,その分を引いた数がパーティション番号になるのかな?)
とりあえず,起動時に coLinux でサポートしていない機能に関して文句を言われるが,
ログイン画面が立ち上がったので今日のところはよしとしよう.
- Comments: 0
- TrackBack (Close): -
P2P通信技術 Bittorrent を試す
- 2005-04-05 (Tue)
- ソフトウェア ( Linux/coLinux )
Gentoo の GRP インストールのために packages CD がほしいのだけど,http/ftp ではダウンロードできず Bittorrent を利用しなければならない.ということで,Bittorrent のクライアントである BitComet をダウンロードして使ってみた.
660M の ISO イメージのダウンロードをしてみたが,平均で 470KB/s 程度とそれなりに使えるものらしい.P2P というと 某MX/NY のおかげでグレーなイメージがあるけれど,このような巨大ファイルの配布にはサーバの負荷を分散できていいなぁ.やっぱ技術(ソフト)は使い方を考えて使わないといかんね.
さて,明日にでも「昨日P2Pソフトで600Mのファイルをダウンロードしたよ」と会話を振って周りの反応を見てみよう.
- Comments: 0
- TrackBack (Close): -
Installation of coLinux with Gentoo(3)
- 2005-04-05 (Tue)
- ソフトウェア ( Linux/coLinux Windows )
続いて GNOME と GDM の設定をする.
とりあえず emerge する.
emerge -k gnome emerge -k gdm
GNOMEの設定は特に無いのでGDMの設定をする.
DIsplayManager として GDM を使うように /etc/rc.conf を修正
DISPLAYMANAGER="gdm"
次いで GDM の設定ファイル /etc/X11/gdm/gdm.conf を修正.ここでは必要な部分のみを示す(Xvfb へのサーバ変更と VirtualTerminal割り当てをしないのと XDMMCPの使用).
[daemon] StandardXServer=/usr/X11R6/bin/Xvfb VTAllocation=false [xdmcp] Enable=true [server-Standard] command=/usr/X11R6/bin/Xvfb [server-Terminal] command=/usr/X11R6/bin/Xvfb -terminate [server-Chooser] command=/usr/X11R6/bin/Xvfb
以上で GNOME + GDM に置き換わっているはずである.VNC で接続すれば XDM の変わりに GDM が起動する.(ちなみに,GDM をデーモンとして起動するためにはXDMの起動スクリプトを使う.なので, rc-update add xdm default を実行してあれば GDM がデーモンとして起動される.)
ところで,GNOME の起動時に xscreensaver が無いと文句を言われるが,xscreensaver の emerge で
emerge -k xscreensaver ... media-libs/svgalib-1.9.19-r3 !!! ERROR: media-libs/svgalib-1.9.19-r3 failed. !!! Function kernel-mod_configoption_builtin, Line 114, Exitcode 1 !!! kernel has not been configured yet !!! If you need support, post the topmost build error, NOT this status message.
のように文句を言われるため,今のところ仕方が無い.後で考える.同様の理由で KDE も emerge できないのだが,これも後で考える.
次は KDE が入ったらいいなぁ.
- Comments: 0
- TrackBack (Close): -
Installation of coLinux with Gentoo(2)
- 2005-04-04 (Mon)
- ソフトウェア ( Linux/coLinux Windows )
続いて X の設定をする.今回は VNC で接続する形をとる.
設定に当たっては以下を参考にした.
http://www.gentoo.org/doc/ja/colinux-howto.xml
まず,/etc/make.conf の USE に少々追加
alsa canna cjk emacs java mozilla mule ruby unicode usb xface
WMに IceWM を使うとして X 関係を emerge する.
emerge -k xorg-x11 emerge -k icewm emerge -k kterm emerge -k mozilla
次いで,vnc と xinetd を emerge (VNC への接続を xinetd で管理する)
emerge -k tightvnc emerge -k xinetd rc-update add xinetd default
そして,日本語関係を emerge する.
emerge -k canna kinput2 rc-update add canna default emerge -k kochi-substitute shinonome monafont mplus-fonts aquafont aquapfont mikachan-font
必要なものの emerge が終わったので,設定に入る.
まず,VNC が X のスタートアップに使う ~/.vnc/xstartup に以下を書き込む.
if [ -x /usr/X11R6/bin/kinput2 ] ; then /usr/X11R6/bin/kinput2 -canna & XMODIFIERS="@im=kinput2" export XMODIFIERS fi export LANG="ja_JP.UTF8" exec icewm-session
そして,vnc 単体で起動したときと xdm を使ったときで同じ振る舞いをするように
ln -s ~/.vnc/xstartup ~/.xsession
でリンクを張っておく.
次にフォントサーバ Xfs の設定をする.まず,常時起動にする.
rc-update add xfs default
次にフォントパスの指定をする.編集するファイルは /etx/X11/fs/config で,以下を行う.
tcpを使いたいのでコメントアウト # no tcp, use sockets! # no-listen = tcp catalogue に追加 /usr/share/fonts/shinonome, /usr/share/fonts/monafont, /usr/share/fonts/mplus, /usr/share/fonts/aquafont, /usr/share/fonts/aquapfont, /usr/share/fonts/mikachan-font,
さらに,Xfs のポート設定をするために /etc/conf.d/xfs の書き換えをする.
XFS_PORT="7100"
以上の設定が正しいかどうかは,/etc/init.d/xfs start したあとに
xfsinfo -server localhost:7100
で正しい応答が示されればいい.
ここまでの設定で,手動でVNCサーバを立ち上げれば接続できるようになっているはず.VNCサーバの立ち上げは以下のコマンドでできる.
vncserver :1 -depth 24 -geometry 1024x768 -compatiblekbd -fp tcp/localhost:7100
そして,ホストOS の方から VNCclient で hogehoge:1 に接続すれば X が起動する.
続いて,一々ログインして手動で VNCserver を起動しなくてもいいように xinetd の設定をする.
まずはVNC接続をサービスに登録するため, /etc/services に以下を追加.
vnc-1024x768x24 5950/tcp # vnc server vnc-1280x1024x24 5960/tcp # vnc server
これは,画面の解像度などに応じてポート 5900 以上に適当にエントリを作る.このポート番号から 5900 を引いたものがVNCのディスプレイ番号になる.なので,上の設定は 50 番で XGA, 60番で SXGA となる.
続いて,xinetd の設定ファイルを追加する.設定ファイルは画面サイズごとに作る(正確にはサービスごとに).
/etc/xinetd.d/vnc-1024x768x24 を以下のとおり作る.
service vnc-1024x768x24 { disable = no socket_type = stream wait = no only_from = 192.168.0.0 user = nobody server = /usr/bin/Xvnc server_args = -inetd -query localhost -once -compatiblekbd -depth 24 -geometry 1024x768 -fp tcp/localhost:7100 log_on_failure += USERID }
同様に /etc/xinetd.d/vnc-1280x1024x24 を以下のとおり作る.
service vnc-1280x1024x24 { disable = no socket_type = stream wait = no only_from = 192.168.0.0 user = nobody server = /usr/bin/Xvnc server_args = -inetd -query localhost -once -compatiblekbd -depth 24 -geometry 1280x1024 -fp tcp/localhost:7100 log_on_failure += USERID }
最後に,xinetd を常時起動にして xinetd の設定終了.
rc-update add xinetd default
次に,ディスプレイマネージャ(GUIのログイン処理) XDM の設定をする.
作業としては以下のとおり.
/etc/X11/xdm/Xservers のサーバを Xvfb に変更 /etc/X11/xdm/Xaccess の * で始まる行のコメントアウトはずす(上から二つ) /etc/X11/xdm/xdm-config の最後の行(requestPort)をコメントアウト
/etc/init.d/xdm start として立ち上げてみて,
外部から vnc でつなげてログイン画面がでることを確認してから常時起動の設定をする.
rc-update add xdm default
ちなみに,Xサーバの設定が間違っているとGentoo全体が立ち上がらなくなる可能性あり.
そうなったら gentoo.colinux.xmlでシングルユーザモードにして立ち上げて修正する.
<bootparams>root=/dev/cobd0 single</bootparams>
ちなみに,Windows 側の VNC としては Gentoo も使っている tightvnc のほか,
それの改良版(?)である UltraVNC やオリジナルの系統である RealVNCがある.
とりあえず,Gentoo にあわせて tightvnc をダウンロードしてインストールし,hogehoge:50 に接続すると XGA のログイン画面が現れ,ログインすると IceWM が起動することが確認できる.
次は GNOME と GDM へ.
- Comments: 0
- TrackBack (Close): -
Installation of coLinux with Gentoo
- 2005-04-02 (Sat)
- ソフトウェア ( Linux/coLinux Windows )
突然 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 の設定で.
- Comments: 0
- TrackBack (Close): -
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
ダメじゃん.
今日は日が悪いらしいのでまた今度にしよ
- Comments: 0
- TrackBack (Close): -
RMagick Compilation with Older GCC
- 2005-04-01 (Fri)
- ソフトウェア ( Linux/coLinux )
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
- Comments: 0
- TrackBack (Close): -