Recently in Unix Category

MovableTypeをインストールする話。Debian squeezeには既にパッケージが用意されているので:

apt-get install movabletype-opensource

で楽勝...と思ったらなんだかパッケージが100ぐらいインストールされる。まあ細かいPerlモジュールは仕方ないにしても、ふと見るとX11クライアントライブラリとかまでインストールしようとする。Webアプリインストールしようとしているのにどうしてこんなことに。

ちょっと追っかけてみると推奨パッケージになっているperlmagickが依存しているらしい...というか推奨パッケージデフォルトでインストールする設定のままだった。

と言うことでネット検索して/etc/apt/apt.conf.dディレクトリに99recommendsとか適当なファイルを作って、そこに:

APT::Install-Recommends "false";

と一行だけ書いておけばOK。やり直してみたらインストールされるパッケージは60ぐらいになった。そしてX11クライアントライブラリもインストールされなくなった。よしよし。

Ubuntu11.10のWineでxyzzyを動かす

| No Comments

前回までのあらすじ

  1. http://argrath.ub32.org/annex/2012/05/000013.html
  2. http://argrath.ub32.org/annex/2012/05/000014.html

    仮想環境上のUbuntuでWineを試す

前回まででOSの目処は付いたので次はアプリ。基本的に必要なものはWineで動かそうと思っているのだけど、おそらく色々調整が必要になるはず。その時にEeePC901X実機で色々試すのは辛そうなので、調整を詰めるのはデスクトップ機の仮想環境上でやることに。

普通に空の仮想ハードディスクを作ってインストールしていってもいいのだけど、仮想ハードディスクイメージのダウンロードというページがあるのでここからイメージをダウンロードして使うことに。まだ最新の12.04のイメージはなくて11.10だけど、まあテストには問題なかろう、ということで。

さくっとダウンロードしてさっきのページの説明にある通りVirtualBoxから起動。最終設定が行われて無事立ち上がった。Guest Additionsは入ってないみたいなのでホスト側のメニューから[デバイス]→[Guest Additionsのインストール...」を選択してこれも問題なくインストール。

Wineは公式レポジトリに入ってるのでこれも選択してインストールするだけ。

xyzzyはそのままで起動する

xyzzyはこの際だから新配布ページから0.2.2.238をダウンロード。ホームディレクトリにディレクトリ構成そのままで展開してGUIから単にxyzzy.exeをダブルクリック...おお、あっさり起動した。でもまあここまでは事前調査通り。

日本語設定がもう一息

ただ事前調査では日本語入力に問題あり、ということだったので試してみる...うーん、確かに化け化け。

さらに検索して書いてあったことを実験。[ツール]→[共通設定...]で共通設定ダイアログを開き、[フォント]タブの[文字セット]を[日本語]に変更。[フォント]の欄に「梅ゴシック」がたくさん並んでいるので「サンプル」の欄に日本語が表示されるものを選択して[OK]を押す。

...おお、動いた。素晴らしい。ただ、この設定を記憶するxyzzy.iniの構造は同じ名前のフォントが複数あるという状態に対応していないので、xyzzyを起動する毎にこの作業をする必要がある。うーん、惜しい。これってWine側の問題じゃないのかなあ。まあ終了させなければいいという話ではあるので、とりあえずxyzzyを使うのはOKということにしておこう。

これまでのあらすじ

王様の耳は驢馬の耳(別館)

そもそもうちのEeePC901Xは少しおかしい

USBメモリからEeePC901Xをブートするという記事はどれも「ESCキー長押ししながらブートすればブートデバイス選択画面になる」と書かれているのだけど、うちのマシンはなぜかそうはならない。 1. 電源を投入したらF2キーを連打 2. BIOS設定画面になるので「セーブせずに終了を選択」 3. すかさずESCキーを連打 この手順でないとだめ。連打してるところを長押しでもだめでXPのブート画面になる。BIOS設定にありそうなのだけど発見できず。まあ手順分かってるからいいや。最終的にSSDにインストールするなら問題ないし。

SDHCカードにインストールする

USBメモリからLive状態で動かすとタッチパッドが使えないし、いきなりXPを消すのはちょっとまだ躊躇してしまうので、16GBのSDHCのうち6GBぐらいを使ってインストールしてみることにする。

Live状態からインストーラを動かして指示通りに進めるだけ。SDHCのパーティションを分割するためにおそらく裏でGPartedとかが動くので当然のことながら超遅いけど、放置していれば問題なし。ブートローダもSDHCに入れる。自動的にアップデートも掛かったようだ。

起動ディスク設定でハマる

インストール終了後、一旦シャットダウンしてUSBメモリを抜いてSDHCカードからブート...しない。GRUBのメニューが出て普通に一番上を選択すると画面が消えてそのまま。

一瞬困ったけどふと思い付いてもう一度USBメモリを差してSDHCカードからブートすると無事起動する。予想通り。ドライブの配列が変わって起動できないパターンですな。こういう時は/boot/grub/menu.lstの設定をいじれば...ってファイルないし!

色々検索してみると/etc/grub.d/以下の設定ファイルで設定しているらしいのだけど、ぱっと見てもよく分からない。下手なところいじってUSBメモリ差しても起動しなくなるのは避けたいし...。

しばらく悩んだのだけど、ふと思い付いて、USBメモリを「安全な取り外し」で取り外してからupdate-grubを実行して再起動してみる...おお、起動した。これが正しい手順かどうか分からないけど、まあ動いたからいいや。

インストーラはよく出来てる

今回はUSBメモリからSDHCカードにインストールというトリッキーなことをしたので若干ハマりもあったけど、このインストーラは本当によくできてる。普通にメディアを焼いて空のHDDにインストールするなら何も問題なさそう。

後、今回使ったハードが古いこともあるけど、昔は鬼門というイメージのあった無線LANとかも何も設定せずに利用可能になったのは驚いた。ハードウェア制御もちゃんと動作しているみたいだし、Liveでは動かなかったタッチパッドも問題なかった。OSとしては自分の用途では十分WindowsXPの代替になるなあ。

しかしOSだけ動いても仕方がないので、アプリも移行できるかを今後試していくことに。ということで以下次号。

EeePC901XにUbuntuを入れてみる(1)

| No Comments

これまでのあらすじ

今までEeePC901XをそのままWindowsXPで運用していたのだけど、こいつのストレージは4G+8GのSSDで、なんだかんだでだんだん容量がきつくなってきた。WindowsUpdateかける度に要らなさそうなファイルを消したりバックアップしたりとかそんな状況に。とは言え常用するならエディタにxyzzyが使えないと困るし、eectlで色々ハードを制御しないと不便だしなあ、と思ってたのだけど、どうやらxyzzyはwineで快適に動くし、eee-controlというツールがあってハード制御もきっちりできるらしい。常用環境のLinuxデスクトップも一つ使っておきたいところでもあったし、ここはひとつUbuntuでも入れてみますかね、ということに。

どれをインストールするか

昔はEeePC用に最適化されたeeeubuntuを入れるのが良さそうだったらしいのだけど、最近のバージョンはこの辺も取り込まれてて専用のものを入れる必要はないらしい。ということでちょうどリリースされたばかりのUbuntu 12.04 LTS Desktop 日本語 Remix CDを入れる。

syslinuxでハマる

まずはUSBインストーラーを作らないといけないのだけど、eeeubuntuのインストール方法を書いてあるページなんかを見るとsyslinuxを使う方法が書いてあるのでそれに従って作業。しかしこれが動かない。ブートして"GRUB"の文字が出たところでハングアップ。ここで止まるとさっぱりわからない。使ってるUSBメモリがあまり素直なタイプではないので、これの原因もあるし。

UNetBootinであっさり起動する

さらに検索してみるとUNetBootinというのがヒットする。ああそう言えばこれサーバーインストールするときにも使ったなあ。これでUSBインストーラー作るとあっさり起動した。この状態でLiveCD(?)として一通り使えるようになってるので、軽く試してみる...まあディスク読み込みが遅いのは当然として、全体的には問題なさそう。ハード制御もだいたい動いているっぽいのだけど、タッチパッドが全く動作しない。eee-controlで無効にされているのかもしれないけど設定画面にもタッチパッドが出てきていないので認識していないのかも。これはLiveCDの問題かもしれないので、やっぱり一度インストールしてみることに。ということで以下次号。

私のメール環境は2年ぐらい前にローカルのMH形式からサーバーのIMAP形式に移行したのだけど、過去のメールをIMAP形式に変更するのが面倒で放置していた。

しかしふと思い出したので今日調査...MH形式フォルダをMaildirに変換というそのままのがあった。サーバーで使っているのはcourier-imapなのでちょうどいい。と思って早速実行してみたのだけど。

> ruby mh2maildir.rb src dest
./maildir.rb:63:in `create_maildir': maildirmake (RuntimeError)
        from ./maildir.rb:36:in `initialize'
        from mh2maildir.rb:23:in `new'
        from mh2maildir.rb:23

と言われてしまう。Rubyわからないのでそもそも何が起こっているのかが分かるのにもちょっと苦労したのだけど、courier-imapに入ってる"maildirmake"というツールを呼び出しているらしい。今回はローカル環境でメール変換して結果だけをサーバーに持っていきたかったのでこれはちょっと困る。

これだけのためにcourier-imapインストールするのもいまいちだし、maildirmakeの互換品を作るのも面倒だし、ということで。

--- maildir.rb.orig     2011-07-16 03:42:57.000000000 +0900
+++ maildir.rb  2011-07-15 18:25:36.000000000 +0900
@@ -57,10 +57,10 @@

   private
   def create_maildir(maildir)
-    if test(?e, maildir) then
-      raise "#{maildir}: Maildir already exists"
-    end
-    system(*%W<maildirmake #{maildir}>) or raise "maildirmake"
+#    if test(?e, maildir) then
+#      raise "#{maildir}: Maildir already exists"
+#    end
+#    system(*%W<maildirmake #{maildir}>) or raise "maildirmake"
   end

   def tmpfile(mh)

としてmaildirmake関係を潰してしまって、

.folder: ../maildir.rb:47:in `initialize': No such file or directory - dest/.folder/tmp/1310758575.M117045P10412_0.local (Errno::ENOENT)

とか言われたらその都度自力でディレクトリを作る、というしょぼい方法で対応。今回は数が少ないからこれで充分。

出来たファイルはサーバーに持っていって、Thunderbirdで動作確認。ちゃんと変換できてた。これで懸案が一つ減った。

Squeezeでとりあえず問題ないかなあ、と思ったら、キャッシュサーバにしていたpdnsdがlocalhostからしかアクセスできなくなっていた。

--- /etc/default/pdnsd.orig     2011-07-08 19:27:10.000000000 +0900
+++ /etc/default/pdnsd  2011-07-08 19:32:16.000000000 +0900
@@ -1,6 +1,6 @@
 # do we start pdnsd ?
 START_DAEMON=yes
 # auto-mode, overrides /etc/pdsnd.conf if set [see /usr/share/pdnsd/]
-AUTO_MODE=recurse
+AUTO_MODE=
 # optional CLI options to pass to pdnsd(8)
 START_OPTIONS=

これで解決。アップグレード中に何も言われなかった気がするんだけどなあ。

Debian Squeezeが出てだいぶ経ってるけど、そろそろやらなければ、ということでまずはローカルサーバーをSqueezeにした。

問題になったのは2ヶ所。

- このマシンのNICはe100なので、そのままだと動かない。`apt-get install firmware-linux-nonfree`する。これは知らないとはまってたと思う。先人に感謝。しかしこれはもうちょっとわかりやすい警告出してもいいんじゃなかろうか。一応update-initramfsでなんとなくメッセージは出てるけど...。
- update-apt-xapian-indexがCPUを食い尽くす問題。検索したら[Ubuntuのフォーラム](https://forums.ubuntulinux.jp/viewtopic.php?pid=54268)がヒットして、どうやら要らなさそうなので`apt-get remove apt-xapian-index`で処理。

後はsysv-rcでいろいろ言われたけど無視。ちゃんと動いてるからいいや。