2008年2月アーカイブ

さらばSCSIディスク

いまだに、SCSIハードディスクが2Gが2つ、6Gが1つある。
が、すでに6Gなんて、DVD-R1枚の容量にもならない。
これを動かしている電気代の方がもったいないくらいだろう。
ということで、SCSIハードディスクとは決別することにした。

のこるSCSI機器は、ATAフラッシュカードリーダとDVD-RAMドライブの2つだ。
ATAフラッシュリーダはノートパソコンとのデータのやり取りくらいにしか使わないし、今はUSB接続カードリーダの方が便利で汎用性もあるのだが、DVD-RAMドライブはPDを使うために、まだ捨てるわけにはいかない。

おそらくDVD-RAMドライブが壊れたときが、SCSIとの決別の時だ。

LF-D102をPoseidonに接続

PDを使うために、眠っていた外付けSCSIのDVD-RAM LF-D102ドライブを引っ張りだしてPoseidonに接続した。

DVD-RAMドライブ(片面2.6GB) LF-D102JD : 商品概要 | パナソニック商品カタログ

こいつは、バックアップドライブとしてしばらく動いてもらうつもりだ。大量のPDメディアがあるので、これらをバックアップに使おう。

PDはCR-Rよりもどうも、書き換えに強いというのが、松下の売りだったが、
どうも、メディアそのものの寿命が短いというイメージが強い。
そして、さらにドライブの寿命が短かった(笑)。
初代PDドライブは、今は亡きマルチメディアパソコンWoodyについていたもの。
そして、それがダメになったあと、PDを使うためにLogitecの内蔵ATAドライブを購入した。
それも壊れ、今やPDが読めるのは、手元にあるLF-D102だけになった。

こいつが壊れるのが速いか、メディアがすべて不良になるのが速いか(笑)。

とりあえず、松下のページから最新のドライバ2.220をダウンロードして、インストール。
デバイスドライバー一覧表 | ダウンロード | DVD-RAM | 周辺機器P3 | パナソニックのお客様サポート | Panasonic

2K2220PJ.EXE

インストール: Mailman 2.19

いままではメーリングリストをezmlmで運用していたが、これはqmail用のもの。

今回はデファクトになりつつある、Mailmanを使用しよう。

# yum install mailman

まず、Mailman管理用のパスワードの設定。
# /usr/lib/mailman/bin/mmsitepass

# vi /etc/mailman/mm_cfg.py

DEFAULT_URL_HOST   = 'www.rally.or.jp' <- 管理画面用Webを提供するホスト
DEFAULT_EMAIL_HOST = 'rally.or.jp' <- メーリングリストを提供するホスト
MTA = 'Postfix' <- 使用するMTAを指定
DEFAULT_SERVER_LANGUAGE = 'ja' <- 管理画面の言語
DEFAULT_GENERIC_NONMEMBER_ACTION = 2 <- メーリングリストは登録メンバー以外使えない
DEFAULT_LIST_ADVERTISED = No <- メーリングリスト一覧は非公開
DEFAULT_SUBJECT_PREFIX = "[%(real_name)s: %%d] " <- 件名のフォーマット(記事番号を付加)
DEFAULT_REPLY_GOES_TO_LIST = 1 # Reply-Toを書き換える(メーリングリストにする)
DEFAULT_URL_PATTER = 'http://%s:80/mailman/' # 2011年4月3日追加

Postfixが参照するaliasファイルを作成する。
# /usr/lib/mailman/bin/genaliases

Postfixからもaliasを参照できるようにアクセス権限を変更する。
# chmod g+w /etc/mailman/aliases.db

Postfixの設定ファイル/etc/postfix/main.cfのalias_mapに、Mailmanのaliasを追加する。
# vi /etc/postfix/main.cf

alias_maps = hash:/etc/aliases, hash:/etc/mailman/aliases

Postfixを再起動する。
# service postfix restart

Mailman管理用のメーリングリストを作成する。
メッセージが化けることがあるが、まず管理者アドレスを入力、そして先ほど登録したパスワードを入力。最後にEnterを入力する。

[root@tower ~]# /usr/lib/mailman/bin/newlist mailman
... : nor@rally.or.jp
mailman ...:
Enter mailman...

自動起動を設定して、Mailmanを起動する。

# chkconfig mailman on
# service mailman start

さて、ここでtower.rally.or.jpにアクセスすると管理画面に行けるはずなのだが、だめだ。(2011/01/23以下に修正)

さて、あとは、httpdをリスタートすれば、/etc/httpd/conf.d/mailmanが有効になって、web管理画面に行けるはずなのだが、だめだ。

URLから、調べてみると、管理画面はCGI。
しかし、ApacheがsuEXECで動作しているため、このCGIは実行できない。

さて、MailmanのFAQのページによると対処方法はふたつあるようだ。

ひとつは、ApacheでsuEXECを無効にすること。
もうひとつは、ApacheのVartualHost機能を使い、そちらのホストに飛ばす形でCGIを動かすと言う方法。

# vi /etc/httpd/conf/httpd.conf

##
## Mailman Virtual host
##
Listen 3000
<VirtualHost _default_:3000>
   <IfModule mod_suexec.c>
    SuexecUserGroup mailman mailman
   </IfModule>
    Servername tower.rally.or.jp:3000
    ServerAdmin nor@rally.or.jp
    DocumentRoot /usr/lib/mailman
    ErrorLog /var/log/httpd/mailman-error_log
    TransferLog /var/log/httpd/mailman-access_log
    ScriptAlias /mailman/ "/usr/lib/mailman/cgi-bin/"
    Alias /pipermail/ "/usr/lib/mailman/archives/public/"
    Alias /icons/ "/usr/lib/mailman/icons/"

    <Directory "/usr/lib/mailman/cgi-bin/">
        AllowOverride All
        Options ExecCGI
        Order allow,deny
        Allow from all
    </Directory>

    <Directory "/usr/lib/mailman/archive/public/">
        AllowOverride None
        Options All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

# vi /etc/mailman/mm_cfg.py

add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)
DEFAULT_URL_PATTERN = 'http://%s:3000/mailman/'

しかし、mailmanがUID=41でインストールされている。
ApacheはsuEXECできるのは、デフォルトではUIDが100以上。
だめだ。

上の細工をして、mailmanのUIDを変えるか、それともApacheを再コンパイルするか。

結局suEXECを無効にするという選択をする。
# mv /usr/sbin/suexec /usr/sbin/suexec.bak

これで、インストール完了。
あとはWebインタフェースにアクセスして、メーリングリストをつくっていくだけ。

bbdbの使用をあきらめた

いくつかのバージョンのbbdbを試してみたが、どうもエンコードされた文字列をうまく扱えないようだ。
以前はかなり便利に使えていて良かったんだけど...

lsdbの使用も考えたけれど、まあ標準のアドレス帳で妥協をすることにする。

Sound Blaster Liveの設定

Sound Blaster Live付属のOptical Digital I/Oカードを使用しようとして、玉砕。

日本のCreativeのサイトでは、Sound Blaster Liveは製品もサポートダウンロードもすでに掲載されていない。
米国のサイトを探すと、やはりサーポート期間終了とあるが、ちゃんとアーカイブページがあり、ダウンロードできる。

そこで見つかったいくつかのファイル。すべて、2003年の更新。

LiveDrvUni-Pack(ENG).exe Sound Blaster Live! - LiveDrvUni-Pack (English)
Recorder_2_00_34_(ENG).exe Sound Blaster Live! - Creative Recorder (English)
MiniDisc_1_00_15_(ENG).exe Sound Blaster Live! - MiniDisc Center (English)

とりあえず、これらをインストールした。

が、MiniDiscは期待ハズレで、単にマルチメディアファイルをPC上でMD風に扱うだけのもの。
そして、肝心のOptical出力の方法が見つからない。

仕方がないので、購入時の英語版のCDからアプリケーションまでもフルインストール。
が、今度は、起動時に「CtHelper Applicationが起動できません」というエラーまで出るようになってしまった。

そして、さらに泥沼にはいるべく、Optical Digital I/O購入時のCDから古いドライバをインストールしようとするが、今度は、3Gも余っているのに「ディスク容量が足りない」というエラーが出て、先に進まない。ちなみに、1998年のもののようなので、Windows98とNT4くらいにしか対応していないか。

結局プログラムの追加と削除で、すべてのプログラムを一度削除して、最初にインストールしたアメリカのサイトからダウンロードしたものを再インストール。

とりあえず、エラーは出ないようになった。

たまに光出力さえできれば良いので、現状はこのままにしておいて、後日NT4かqWindows98でも使って、Optical I/Oを試してみよう。

それとも、日本製の SoundBlaster Live Valueじゃないから、だめなのか...

Spec: poseidon

OS: Windows 2000 Professional
CPU: Pentium III 500Mhz(Katmai)
Motherboard: Asus P2B(440BX) BIOS Rev.1012
Memory: 512MB
HDD(IDE Primary Master): IBM DTLA-305030 20GB(Removable Case ATA33対応)
HDD(IDE Primary Slave): IBM DHEA-36481 6.4GB
HDD(IDE Secondary Master): IBM DPTA-351500 15GB
CD(IDE Primary Slave): Buffalo CRW-24FB (Philips 241240) ATAPI CD-R( 40X)/RW
DVD-RAM(SCSI-2): Panasonic LF-D102 DVD-RAMx1(2.6GB), DVD-ROMx2, DVD-R(読込のみ), CD-ROMx20, PD
PC Card(SCSI): I-O DATA CardDoc/SC(SCSI)
Video: RIVA TNT 16MB AGP2x
Sound: Creative SoundBlaster Live Value(CT-4830) & Optical Option
Network: SMC EZ Card(SMC1211TX) 10/100 100BASE-TX (100Mbps)RealTek RTL8139-C
SCSI: Apaptec AHA-2940 UltraSCSI(AIC7880)

未接続HDD(Removable Case使用)
IDE Maxtor 92048D8 20G テスト用 別マシンバックアップ用(Vine Linux)
IDE Western Digital Caviar 22100 1.2G MS-DOS 特定アプリケーション用
IDE Western Digital Caviar 21600 1.6G Windows 98特定アプリケーション用
IDE IBM DTTA-351010 10G テスト用

Removable Case
Frame OWLTECH OWL-MR27UA/66
Cartridge OWL-MRC32UA/66(aluminum)、MR27


poseidon構築

いままでLinuxのデスクトップマシンとして使っていたmirageだが、使わなくなったので、今度は、Windows2000マシンとして転成することにした。
(なんで、いまさらWindows2000かというと、ライセンスが余っていたからだ...)

実験用兼外部メディア用マシンをとして使用する予定。

恒例のマシン名付け変えだが、今回はposeidonという名称にする。

最初にDNSサーバで名称変更を登録して、インストール作業開始。

マザーボードが440BXという前時代の遺物のため、IDEインタフェースがATA33なのでフォーマットが非常に遅い。

インストールが完了したら、まずWindowsアップデート。
最初にService Pack 4にするのだが、もはや一部のページは日本語のものは消えている(笑)。

とりあえず、すべてのアップデートを適用してインストール完了。

Xmingをインストールしたいと思ったが、Windows2000には対応していないようなので、断念する。残念。

インストール: Ghost Deleter 2.0.0

Windows用の重複ファイル検出削除ソフト。

まあ、同じようなものはたくさんあるのだけれど、いくつか探して僕の使い方に一番合いそうなのはこれだった。

見てくれはシンプルだが、必要にして十分な機能が備わっている。

ファイルの最初の部分を比較して、同じ場合のみ詳細比較を行うと言うことで、高速化をしているらしい。

完全内容一致比較。
2つのフォルダが比較できること、
空フォルダを削除できること。
見つかったファイルをWindowsの関連付けで開くことができること。
そして、リードオンリーの属性を解除できること。

大量のデータを比較すると、ちょっと動作は重くなる感じがするが(.netFrameworkを使っているせい?)、そもそも大量のデータを比較する場合は、おそらく急ぎではなく、一気にお掃除の時。
落ちなければ、十分許容範囲だ。

少量のデータならおそらくWinMargeを使うだろう。

Ghost Deleter(WindowsNT/2000/XP/Vista / ユーティリティ)

gost210.lzh

Setup.exeが付いているが、.netFrameworkがインストールされているなら、スタートメニューに登録するだけ。コピーするだけでも動作する。

インストール: Squid 2.6.STABLE6-5

回線が高速になった今日、それほどProxyサーバは重要ではないのかもしれない。ということで、インストールはしないでおいたが、やはり限りある資源は大切に使いたいし、アクセスの高速化が期待できるのは間違いない。

ということで、Squidをインストールしよう。

# yum install squid

プロキシ経由のアクセスを許可しないページがあるので、プロキシであることは隠すようにする。

# vi /etc/squid/squid.conf

http_port 8080
cache_dir ufs /var/spool/squid 2048 16 256 <- キャッシュの大きさなどの設定
ftp_user webmaster@rally.or.jp <-anonymous ftpユーザの設定
acl our_networks src 192.168.1.0/24 <-コメントアウトして、LANのアドレスを指定
http_access allow our_networks <-コメントアウト
follow_x-forwarded-for deny all <- Forwarded-forを追加しない
via off <- Viaへッダを付加しない
header_access Cache-Control deny all <- Cache-Controlへッダを追加しない
error_directory /usr/share/squid/errors/Japanese <- エラーページを日本語に
forwarded_for off <- Forwarded-for

起動して動作確認して、自動起動の設定。
# /etc/rc.d/init.d/squid start
# chkconfig squid on


iptablesで8080をLANに解放するのもわすれない。

ApacheのSSL対応

暗号化通信を行う必要が出てきたので、ApacheでSSLを使えるようにする。
CentOSのApacheはmod_sslモジュールを追加するだけで、SSLが使える。

まず、mod_sslモジュールを追加する。

# yum install mod_ssl

SSL用のコンテンツは別途用意することにして、ドキュメントルートも変えるので、/etc/httpd/conf.d/ssl.confを修正。

DocumentRoot "/var/www/sslhtml"
ServerName www.rally.or.jp:443

インストール: win-ssh-agent 1.05

WindowsからCygwinのsshにたいしてパスフレーズを設定する。

XP使いの私はいまでも現役で使っている窓使いの憂鬱の作者、GANAwareさんによるもの。

win-ssh-askpass 1.05 (GANAware)

win-ssh-askpass-1.05.tgz

Xのssh-agentと同じものだが、Windows環境ではとても便利。
本来であれば、Cygwinの"/usr/local/bin"に置くべきなのだろうが、とりあえず、win-ssh-agent.exeとwin-ssh-askpass.exeをを"c:\local\bin"にほおりこむ。

そして、win-ssh-agentのショートカットを作成して、"--hide-console"オプション付きでスタートメニューに登録する。

これで、Windowsからのsshでも一度だけパスフレーズを入力すればOK。

ftpを止める

LAN内部でいろいろ作業をするためにFTPを動かしていたが、実際FTPを使う場面というのはほとんどなかった。

外部むけサーバとしても、現在FTPを必要とする場面はほとんどない。
もし、必要になれば、そのときだけ公開すれば良い。

ということで、xinetdによるFTPサーバの起動を無効にして、FTPのポートも閉じることにする。

WanderlustのIMAPへの移行

IMAPサーバも順調に動いているようなので、WanderlustのローカルMHフォルダも徐々にIMAPに移行することにした。

ただ、IMAP自体には当然フォルダを圧縮する機能とかはないので、古くてメール検索時に必要なかったりするメールに付いては、そのまま、Wanderlustのアーカイブフォルダを使い続ける方針で行く。

いつの日かWanderlustを使わなくなったら、Thunderbirdのローカルフォルダ上に、アーカイブフォルダをつくってやれば良いだろう。

まあ、WanderlustからIMAPへメールを移すのは、結構手間がかかった。もっといい方法がありそうなのだが、個々のフォルダを開いて、メールをすべて選択し、新しいIMAPフォルダにコピーして、古いフォルダを削除という手順を踏んだからだ。

IMAPの仕様自体をよく理解していないので、「ほー」と思った店をここにメモしておく。もっとも、これはDovecotの仕様で、IMAPで定義されているものではないかもしれない。

IMAPのデータ自体は、サーバ上では"~/Maildir"に保存される。ただし、最初に"."付きのフォルダなので、通常のlsでは見ることができない。

Tunderbirdなどでフォルダが階層構造をもって作成されるフォルダは、サーバ上では"."区切りの別のフォルダになる。
ただし、Thunderbirdで[フォルダの位置をコピー]すると以下のようにコピーされるので、これはDovecotの仕様なのかもしれない。

imap://nor@tower.rally.or.jp/testf
imap://nor@tower.rally.or.jp/testf/subdir

Wanderlustでアクセスするときには、"/testf.subdir"のように"."区切りでアクセスする。
Wanderlustでは、IMAPフォルダを階層構造を持って利用することはできない。"."区切りのフォルダが、ベタに並んで見える。

よって、Thunderbirdから階層構造で見えるフォルダを作成したい場合、Wanderlustからは、上位のフォルダを作成する必要はなく、直接"foo.bar"という用に作成すれば良い。

ただしそのようにしてつくった場合、Thunderbirdでは"foo"フォルダはグレーで表示され、アクセスしようとした場合には"現在のコマンドは成功しませんでした。"というメッセージが表示される。

また、このようにしてWanderlust上で階層フォルダを作成した場合、たとえそれが疑似階層フォルダであっても、親フォルダを削除すると、子フォルダまで削除されてしまう。

以下のページを参考に、というよりも、そのままに作業を行った。

CentOS 5 インストール個人的ノート

IPAフォント バージョン 002.03は、以下のページからダウンロード。
一般利用者向けIPAフォントのダウンロード || OSS iPedia

IPAfont00203.zip

M+ TESTFLIGHT 014は、以下のページからダウンロード。
M+ FONTS

mplus-TESTFLIGHT-014.tar.gz

fontforgeのインストール。
$ sudo yum install fontforge

まず、IPAフォントとM+フォントをダウンロードして展開。

合成フォントを作成。
$ cd ~nor/work/font/mplus-TESTFLIGHT-014.tar/
$ cp ../IPAfont00203/ipag.ttf .
% fontforge -script m++ipa.pe

フォントをフォントディレクトリにコピーする。
# cp ~nor/work/font/IPAfont00203/*.ttf /usr/share/fonts/japanese/TrueType/
# cp M*IPAG.ttf /usr/share/fonts/japanese/TrueType

フォントキャッシュをクリアする。
# fc-cache -fv /usr/share/fonts/japanese/TrueType

フォント設定ファイルを作成する。

# vi /etc/fonts/local.conf

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
  <match target="font">
    <test name="family" compare="eq">
      <string>IPAPMincho</string>
    </test>
    <edit name="hinting" mode="assign">
      <bool>false</bool>
    </edit>
    <edit name="embeddedbitmap" mode="assign">
      <bool>false</bool>
    </edit>
  </match>
  <match target="font">
    <test name="family" compare="eq">
      <string>M+2P+IPAG</string>
    </test>
    <edit name="hinting" mode="assign">
      <bool>false</bool>
    </edit>
    <edit name="embeddedbitmap" mode="assign">
      <bool>false</bool>
    </edit>
  </match>
  <alias>
    <family>IPAPMincho</family>
    <default><family>serif</family></default>
  </alias>
  <alias>
    <family>serif</family>
    <prefer>
      <family>IPAPMincho</family>
    </prefer>
  </alias>
  <alias>
    <family>M+2P+IPAG</family>
    <default><family>sans-serif</family></default>
  </alias>
  <alias>
    <family>sans-serif</family>
    <prefer>
      <family>M+2P+IPAG</family>
    </prefer>
  </alias>
  <alias>
    <family>M+2M+IPAG</family>
    <default><family>monospace</family></default>
  </alias>
  <alias>
    <family>monospace</family>
    <prefer>
      <family>M+2M+IPAG</family>
    </prefer>
  </alias>
</fontconfig>

Firefoxでの外観チェックが頻繁になってきたので、メインマシンにもFirefoxをインストール。

Mozilla Japan - Firefox

Firefox Setup 2.0.0.12.exe

今まではDonutQをメインに使ってきたが、Firefoxの使い心地もちょっと試してみようかと思う。

正直DonutQを使う理由はIE7に移らずにタブブラウズを行いたい、ということだけに近い。
もちろんそれ以外にもいくつか理由はあるが、Firefoxではそれらの機能は既に実装されているようにも感じられる。

インストール: BIND 9.3.3

さて、インストール大会の最後を飾るのはBIND。
DNSサーバが動けば、晴れてこのマシンは、外部向けサーバとして完全にリプレイスできるようになる。
もっとも、BINDもインストール自体はyumで一発。

設定ファイルも、実際はすでに動いているものをコピーすればほとんど変更なしで行けるだろう。

# yum install bind caching-nameserver bind-chroot

インストールしたのは、bind BIND本体の他に、キャッシュサーバとして動かすためのパッケージcaching-nameserver 、BINDをchrootして動かすためのパッケージbind-chroot。

まず、既存の設定ファイルをtowerにコピーする。

starler# tar cvf - | ssh nor@192.168.1.6 (cd ~work ; tar xf - )
starler# tar cvf - | ssh nor@rally.or.jp (cd ~work ; tar xf - )

rpm -q --filesbypkg bindでは、/etc/named.confが見えるのだが、実際にはインストールされていない。

設定ファイルのサンプルは/usr/share/doc/bind-9.3.3/sample/etcと/usr/share/doc/bind-9.3.3/sample/var/namedの下にある。

今までは、20世紀のBIND8の頃からの設定ファイルを流用していたが、ここで最新の設定ファイルを見て、1からつくり直すことにする。

named.confは、まあコメントなども参考にはなるが、モジュールファイル化を使いまくって書いてあるので、追っていくのがちょっと面倒だ。
さらに、named.confは/etcに置くのは普通だが、キャッシュサーバ用のnamed.root.hintsやnamed.rfc1912.zonesも/etcに置くようになっている。

この構成について解説しているページを探すと、非常に丁寧かつ技術的にもしっかりしたページが見つかった。

view 機能を使ったネームーサーバ

ここを参考にしながら、以下の作業を行った。

  • "localhost_resolver" view の削除
  • "internal" view にダミーの逆引きゾーンを追加
  • "internal" view に自分のドメインのゾーンを追加
  • "internal" view からサンプルのゾーン定義を削除
  • DDNS用のkey 節の削除
  • "external" view から match-clients と match-destinations 文を削除
  • "external" view のヒントゾーンを無効化
  • "external" view からサンプルのゾーン定義を削除
  • "external" view に独自ドメインのゾーンを追加
  • パスの修正

そこそこファイルはあるものの、実際にいじるのは一部。
いちいち書くのも面倒なので、基本的にはそのままでも動作するファイルは以下のもの。
まずは、ローカルホスト関連と、不要な問い合わせを吸収するためのもの。
named.rfc1912.zones(とそれに関連した以下のもの。)
localdomain.zone
localhost.zone
named.local
named.ip6.local
named.broadcast
named.zero
named.root.hints

これらは、自分のドメインの設定を書く。
my.external.zone.db
my.internal.zone.db

ルートキャッシュファイルは、当然最新のものを取ってくる。
# dig . ns @198.41.0.4 > /var/named/named.root

これらの設定ファイルを/var/named/chroot/etcと/var/named/chroot/var/namedにコピー。オーナーをroot:namedにして、モードを640にする。

あとは、動作を確認して、
# service named start

マシン起動時にBINDも起動するように。
# chkconfig named on

もちろん、ポートは開けておく。

# vi /etc/sysconfig/iptables

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT

# service iptables restart

ゾーンファイルのみを書き換えた場合は、Serial値を増やして「# rndc reload」。

Power VCR TVEditionで音声が出なくなった場合、DScalerを起動したら、なおるかもしれない。

確認した現象は以下のもの。

DScalerを起動したら「VideoCardがOverlayをサポートしていない」というメッセージが出て終了。しかしDScalerの音声だけ残り、ひょっとしてとPower VCRを起動したら音声が出た。

DScalerの終了後は、良く音声のみ残ることがあったので、ひどい解決法だが有効かもしれない。
ただ、DScalerが正常終了した場合にも、PowerVCRの音声が復旧するかは不明。

POPFileをユーザ権限で動かす

POPFileをユーザ権限で動かすことにした。理由は、以下の3つだ。

もちろんセキュリティのため。
複数のユーザがいる場合にも、個々のユーザごとにPOPFileを使いたい。
POPFileがたまに落ちることがあるので、ユーザのcronで定時に再起動をかける。

ついでに、データやログをユーザのディレクトリに移すことにした。。
いままで、/var/lib/popfileにあったデータやログは、ホームディレクトリ直下の.popfileに置くことにする。

まず、動作しているPOPFileを停止する。
そしt、/var/lib/popfileのデータをすべて.popfileディレクトリにコピーし、ファイルのオーナーをユーザ自身にする。

# service popfile stop
# mv /var/lib/popfile ~nor/.popfile
# chown -R nor ~/nor/.popfile

そして、以下のコマンドを~/binディレクトリにpopfileという名で作成する。

#!/bin/sh
# popfile
# usage: popfile { start | stop | restart | }

POPFILE_USER=${HOME}/.popfile/
POPFILE_ROOT=/usr/share/popfile/
popfile="${POPFILE_ROOT}popfile.pl"
cwd=`/bin/pwd`
POPFILE_LOGDIR=${POPFILE_USER}log/
POPFILE_PID=${POPFILE_LOGDIR}popfile.pid
HTML_PORT=8081
PID=`/bin/cat ${POPFILE_PID} 2> /dev/null`

start() {
   echo -n "Starting POPFile as background process:"
   if [ "${PID}" = "" ] ; then
echo " "
       cd ${POPFILE_USER}
       export POPFILE_ROOT=${POPFILE_ROOT}
       export POPFILE_USER=${POPFILE_USER}


        ${popfile} --set config_piddir=${POPFILE_LOGDIR} --set logger_logdir=${POPFILE_LOGDIR} --set html_port=${HTML_PORT} &> ${POPFILE_LOGDIR}popfile.boot &
       echo " done"
   else
       echo " POPFile already running PID=${PID}"
   fi
} 

stop() { 

   echo -n "Stopping POPFile: "

   if [ "${PID}" = "" ] ; then
       echo "POPFile not running"
   else
       kill ${PID}
#       echo PID ${PID}
       if [ -e $POPFILE_PID ] ; then
          rm ${POPFILE_PID}
       fi
       PID=""
       echo " done"
   fi
} 

status() { 

   if [ "${PID}" = "" ] ; then
       echo "down"
   else
       echo "up"
   fi
} 

case "$1" in 
   start)
       start
       ;;
   stop)
       stop
       ;;
   restart)
       stop
       start
       ;;
   status)
       status
       ;;
   *)
       echo $"Usage: $0 {start|stop|restart|status}"
       exit 1
       ;;
esac 

cd $cwd
exit 0 

POPFileが起動したらWebインタフェースで一度[詳細設定]を開き、設定を保存する。

あとは、cronにpopfile restartが一時間後とに実行されるようにセットする。

自動起動が設定してあるなら、それを止めておく。
# chkconfig --level 345 popfile off

towerにWnnをインストールしたついでに、久々にWindows用のWnnn6クライアントを入れてみる。

ダウンロード・Wnn6 Windows クライアント

対応OSは日本語版Windows95/98/NT4.0とかなり古い製品だが、XPでも問題なく動く。
まあ現実問題、どれが一番利口かと言えば、なにもない状態で使えばおそらくWindows Natural Inputだろう。
が、鍛えたIMEであれば、おそらく十分に同等レベルで使えるはず。
それに、コードを書くのにはMS-IME系より使いやすい機能も多いし、ネットワーク経由で一つの辞書を使えるのも魅力だ。

まあ、実際には、せっかく、購入したWnn6の追加ライセンスがもったいない、というのもあったりするのだが。

とりあえず、しばらく使ってみよう。

vyplay 1.2

Yahoo動画をBackGroundvideoとして、ランダムに再生するPerlスクリプトをバージョンアップ。

といっても、YahooのHTMLデータにちょっと違うものが見つかったので対応しただけ。

使い方
1. 目的の動画の「動画を見る」ボタンがあるページのURLを見つける。
ブラウザを使って自力で探します。

2. タイトルとURLを定義ファイルyvplay.datに登録する。
エディタで開いて、記入する。
タイトルとURLをタブで区切って記入する。
(1.1とは順番が逆になります)
もちろん、複数のURLを指定することができます。その場合は1行1URLで指定します。

夕刊フジ	TVhttp://streaming.yahoo.co.jp/p/t/00039/v00575/

3. 動画をランダム再生する

> perl yvplay.pl

ソース

たいしたものではないので、そのまま載せる。

ypplay.pl

#!/usr/bin/perl
# yvplay.pl Rev.1.2
# Copyright (c) YAMAGISHI Norimasa nor@rally.or.jp
#		http://rally.jp/comp/archives/

use LWP::Simple;

$IE='"C:\Program Files\Internet Explorer\IEXPLORE.EXE"';

$SRC_FILE='yvplay.dat';

open SRC_FILE, "<$SRC_FILE";
while(<SRC_FILE>) {
    chop;
    push(@URLS, $_);
}

while ( @URLS ) {
    push( @play_list, splice(@URLS , rand @URLS , 1) );
}

while(@play_list) {
    $item =  shift(@play_list);
    if ($item =~ /^$/) {next;};
    if ($item =~ /^#.*/) {next;};
    ($item_title, $item_url) = split /\t/, $item, 2;
    print STDERR "Now playing ";
    if (!($item_title =~ /^$/)) {
	print STDERR $item_title . " ";
	}
    print STDERR $item_url . "\n";
    $play_url = &get_play_url($item_url);
    print STDERR "player url = [" . $play_url . "]\n\n";
    $cmd_line = $IE . " \"" . $play_url . "\"";
    system $cmd_line;
}
print STDERR "## All list up items are END ##\n";

sub get_play_url {
    my($item_url)=@_;
    my $src_html, @lines_html, $line, $play_url;

    $src_html=get($item_url);
    @lines_html = split(/\n/,$src_html);

    foreach $line (@lines_html) {
	$line =~ s/\\//g;
        if ($line =~ /document\.write\([\'\"]<a href=\"#\"/) {
	    chop;
            $line =~ s/^.*onClick="wo\('//;
            $line =~ s/'.*$//;
	    $play_url = $line;
	    last;
	}
    }
    return $play_url;
}

インストール: tamago CVS 080214

tamagoのインストール。

$ cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/tamago login
$ cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/tamago checkout tamago
$ cd tamago
$ ./configure
$ vi Makefile

prefix = /usr/local

prefix = /usr

$ make
$ su
$ make install

これで、あとは.emacsで設定すればWnn+Tamagoq+Eggで日本語が使える。

しかし、Egg ReMixなども使ってみたい気もするのだけれど、英語日本語間にスペースを入れるのだったら、結局日本語モードへの変換キーを押すか、英語を入力するときに"q"を押すのもたいして変わらない気もするので、今一つ踏み切れない。

インストール: Wnn6 Ver3.02

towerではAnthyを使おうと思ったが、変換効率の悪さに耐えかねて、結局Wnn6をインストールすることにした。
世間の評判を聞いていると、AnthyはCannnaよりは変換効率はいいようだが、Wnn6にはかなわないように思える。

もはや、lancerはほとんど起動しないので、jserverはtowerで動かすことにしてしまえばいいだろう。

しかし、Wnn4相当のFreeWnnでもCannaの方が優勢だったことを考えると、Wnnは6で劇的に効率が上がっているのだろうか。
さすがにWnn4がどのようなものだったかはもう記憶が定かではない。

と、前置きはこのくらいにして、インストール。

Wnn6 Ver.3.02用のアップデートモジュールをRPMでそのままインストールする。

tower# rpm -ivh dpkey-3.02-1.i386.rpm
tower# rpm -ivh wnn6-3.02-1.i386.rpm

mirage# service wnn6 stop
mirage# service dpkey stop

ユーザ辞書およびライセンスパスワードのバックアップを取る。
mirage# cd /usr/local/lib/wnn6/ja_JP/dic
mirage# tar cvf /tmp/usrdic.tar ./usr
mirage# cd /usr/local/lib/dp
mirage# cp dpkeylist /tmp

これらのバックアップをtowerに転送してリストア。

tower# cd /usr/local/lib/wnn6/ja_JP/dic
tower# tar xvf /tmp/usrdic.tar

tower# chmod usr/nor/* <- これを忘れるとせっかくコピーしたユーザ辞書が作り直されてしまう
tower# cd /usr/local/lib/dp
tower# cp /tmp/dpkeylist ./

郵便番号辞書、電話番号辞書、単漢字辞書を有効にするために、unuse_hinsiの行から郵便番号、電話番号、単漢字を削除する

# vi /usr/local/OMRONWnn6/wnn6linux/ja_JP/wnnenvrc

dpkeyservおよびjserverを起動。

# service dpkey start
# service wnn6 start

そして、他のマシンからも使えるようにWnnのポートを空けておく。

さて、次はいよいよEmacsからWnnを使うためにtamagoのインストールだ。

インストール: tagAssist 0.5.0

つい先日見つけて、「4.1への対応に期待」した、タグ入力サポートプラグインのtagAssist。
「4.1への対応を期待します」みたいなことを、公開している方のところにコメントしたら、なんと、1日で対応していただきました。

さっそく、インストールしてつかっています。

おかげさまで、もう作業効率30%アップ。

tagAssistプラグイン - MTのエントリーをちょっと便利にしちゃうの|CSS HappyLife

僕は、エクスプローラのウィンドウサイズを640x480で使っている。
こうすると、1280x1024の画面に、2x2のタイル状に画面配置ができてちょうどいいのだ。
しかし使っていると、何故かウィンドウサイズが変わってしまうことがある。
これを解消する方法は以下のとおり。

インストール:tripwire 2.4.1.2

ファイル改竄探知ソフトtripwire。これもやはり商用製品としてもリリースされているが、オープンソースのものももちろん健在だ。

セキュリティ関連だということもあり、今回はソースからビルドすることにしよう。

ということで、SourceForge.net: Open Source TripwireRから、最新版のソースをダウンロードして、コンパイル。

tripwire-2.4.1.2-src.tar.bz2

まず、展開して./configure。

$ bzcat -d tripwire-2.4.1.2-src.tar.bz2 |tar xvf -
$ ./configure --prefix=/usr --sysconfdir=/etc/tripwire

install/install.cfgが初期設定ファイルになる。
デフォルトでは、データベースを"$prefix/lib"に収納し、sendmailを使うようになっているので修正。

TWDB="/var/lib/tripwire"

#TWMAILMETHOD=SENDMAIL

TWMAILMETHOD=SMTP
TWSMTPHOST="mail.rally.or.jp"
TWSMTPPORT=25

そして、make、make install。

$ make
$ sudo make insatall

ライセンスに同意することを求められる。

Press ENTER to view the License Agreement.
Please type "accept" to indicate your acceptance of this
license agreement. [do not accept] accept

Continue with installation? [y/n] y

サイトキーファイルパスフレーズの入力。

Enter the site keyfile passphrase:
Verify the site keyfile passphrase:

ローカルキーファイルパスフレーズの入力。

Enter the local keyfile passphrase:
Verify the local keyfile passphrase:

この後、サイトキーファイルパスフレーズを2回入力してインストール完了。

----------------------------------------------
Generating Tripwire configuration file...

----------------------------------------------
Creating signed configuration file...
Please enter your site passphrase:
Wrote configuration file: /usr/etc/tw.cfg

----------------------------------------------
Customizing default policy file...

----------------------------------------------
Creating signed policy file...
Please enter your site passphrase:
Wrote policy file: /usr/etc/tw.pol

作成される設定ファイルは、

/etc/tripwire/tw.cfg <- configurationファイル
/etc/tripwire/twcfg.txt <- configurationファイルのプレーンテキスト版
/etc/tripwire/tw.pol <- policyファイル
/etc/tripwire/twpol.txt <- policyファイルのプレーンテキスト版

まずtw.cfgで、ファイルに変更があった場合ディレクトリに関する警告を報告しないようにする。

LOOSEDIRECTORYCHECKING =false

まずデフォルトのpolicyファイルを編集。そして、暗号化する。
デフォルトのポリシーファイルはあくまでもサンプルなので、編集しないとエラーと不要な告知が多数出ることになる。

# cp /etc/tripwire/tw.pol /etc/tripwire/tw.pol.org
# vi /etc/tripwire/tw.pol
# twadmin --create-polfile -S /etc/tripwire/site.key /etc/tripwire/twpol.txt

データベースの初期化をする。

# tripwire --init

エラーが出たら再度policyファイルの見直しをして、そして整合性のチェック。

# tripwire --check

これで、tripwire自体は動作するようになった。

メールによる通知がされるように、それぞれのルールに以下を付け加えておく。

emailto = $(MAILADRESS)

そして、cronに登録。

# vi /etc/crontab

0 4 * * * root /usr/sbin/tripwire --check --email-report

とにかく、MovableTypeを使っていて面倒なのが、HTMLタグの挿入だ。
正直、フォントタグなんかよりも、普通のHTMLタグを用意してほしい。
p、pre、code、h1,h2...
それをできることに期待していたのが、CustomEditorButtonだったが、4.0の対応さえない。

そこで、別のプラグインを探していたのだが(かなり必死でいっそ自分で作ろうかと思った)、見つかったのが、4.0対応の、tagAssist。

挿入タグは固定だが、まあ、それはなんとかなる。
惜しむらくは、4.1では動作しないこと。
すでに、4.1に移行してしまった僕にはどうしようもない。対応に期待。
tagAssistプラグイン - MTのエントリーをちょっと便利にしちゃうの|CSS HappyLife

Quick Reference: yum

データベースのリストアップと更新
$ yum list

インストール
# yum install postfix

削除
# yum remove postfix

検索(説明などの部分が一致した場合も表示される)
$ yum search postfix

(コマンドなどの)特定のファイルが、どのパッケージに含まれるか調べる。
$ yum search whatprovide 'host'
それでも見つからない場合は、(おそらく)表示されるメッセージ通りに'*bin/host'などとして検索する。

アップデートが行われているかをチェックする。
# yum check-update

特定のパッケージのアップデート
# yum update postfix

一括アップデート
# yum update

詳細説明表示
$ yum info postfix

ダウンロードしたパッケージの削除
# yum clean packages

キャッシュデータのクリア
# yum clean all

yumではないが、インストールされたファイルのリストアップ。
$ rpm -q -a

ntpの導入

既にインストールされているので、設定ファイルのみ変更。

# vi /etc/ntp.conf

server ntp.nict.jp
server ntp1.jst.mfeed.ad.jp

まず、現在の時計をサーバと同期させる。

# ntpdate ntp.nict.jp

そしてサービスを起動して、さらに自動起動するように設定。

# service ntpd start
# chkconfig --level 345 ntpd on

LAN内部でも使えるように、iptablesでポート123/tcpを開放する。

yum-securityの導入

yum-securityはyumにセキュリティアップデートのみの表示、インストール機能を追加するパッケージ。

# yum install yum-security

これで、yumに"--secrity"オプションを付けての実行が可能になる。

例:
yum --security check-update

いままではqmail-popperを使用していたが、qmailはやめるし、そろそろIMAP4も使いたい。
ということで、
IMAP4とPOP3両方に対応しているDovecotだ。

# yum -y install dovecot
# vi /etc/dovecot.conf

diff /etc/dovecot.conf /etc/dovecot.conf.org
17c17
< protocols = imap imaps pop3 pop3s <- IMAP4とPOP3の両方を使用する
---
> #protocols = imap imaps pop3 pop3s
198c198
< mail_location = maildir:~/Maildir <-Maildirを使用する
---
> #   mail_location = maildir:~/Maildir
331c331
< valid_chroot_dirs = /home <- chrootさせる
---
> #valid_chroot_dirs =


起動してテスト。

# service dovecot start

正常に動作したので、マシン起動時に動作するように設定。

# chkconfig dovecot on

iptablesでポートを空けておく。

# vi /etc/sysconfig/iptables

-A RH-Firewall-1-INPUT -p tcp --dport 110 -j ACCEPT <- pop3
-A RH-Firewall-1-INPUT -p tcp --dport 143 -j ACCEPT <- imap4
-A RH-Firewall-1-INPUT -p tcp --dport 995 -j ACCEPT <- pop3 over SSL
-A RH-Firewall-1-INPUT -p tcp --dport 993 -j ACCEPT < imaps-ssl

# service iptables restart

OP25B(Outbound Port25 Blocking)対応

インストールしたPostfixにOP25Bの対応をする。

submission portを開ける。

# vi /etc/postfix/master.cf

TLSのための鍵を作成していないので、TLSの強制はしない。

submission inet n       -       n       -       -       smtpd
#  -o smtpd_enforce_tls=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject

iptablesで外部からのポート587での接続を許可する。

# vi /etc/sysconfig/iptables

...
-A RH-Firewall-1-INPUT -p 587 -j ACCEPT
...

# service iptables restart

インストール: Postfix 2.3.3

いままでは、ずっとqmailを使ってきた。
qmail自体の信頼性はいまでも高いとは思うのだが、最終バージョンリリース後に現れた規格等に対応するために、現実に運用するには、数多くのパッチを当てる必要ががあり、非常に手間がかかる。
そして、Postfixは現在も開発が継続しており、安全性もqmailに劣らないと思われる。
そこで、今回からはPostfixを使用することにした。

# もっとも、qmailやtcpserverの理念自体は、非常によいものであるとは思うのだが...

CentOSのRPMはPostfixはPostgreSQLを使うようにコンパイルされているので、自分でコンパイルしなくてはならない。
実際にはバーチャルドメインを使うわけでなし、データベースはいらないはずなのだが、依存関係が存在するので、RPMでインストールしようとするとPostgressまでインストールしなくてはならない。

もっともSRPMのspecファイル内の1文字を置換するだけなので、不要なPostgreSQLは入れずに、SRPMからいれてみる。

まず、SRPMをとってくる。

wget http://ftp.riken.jp/Linux/centos/5/os/SRPMS/postfix-2.3.3-2.src.rpm
そして、ソースを展開。

# rpm -ivh postfix-2.3.3-2.src.rpm

specファイルの編集。

# vi /usr/src/redhat/SPECS/postfix.spec

%define MYSQL 1 <-MySQLを使うように指定

そして、RPMを作成しようとするが、以下のライブラリが必要だと言われるので,yumでインストール。

db4-devel
zlib-devel
openldap-devel >= 2.0.27
cyrus-sasl-devel >= 2.1.10
pcre-devel
mysql-devel
openssl-devel >= 0.9.6

# rpmbuild -ba postfix.spec
# rpm -ivh /usr/src/redhat/RPMS/i386/postfix-2.3.3-2.i386.rpm

無事インストールは完了。
そして設定ファイル/etc/postfix/main.cfを編集する。
変更内容は以下のとおり。

$ diff /etc/postfix/main.cf /etc/postfix/main.cf.org
71d70
< myhostname = tower.rally.or.jp <-ホスト名
79d77
< mydomain = rally.or.jp <-ドメイン名
95c93
< myorigin = $mydomain <-送信元ドメイン名(送信メールアドレスの@以降をドメイン名に)
---
> #myorigin = $mydomain
109c107
< inet_interfaces = all <- メールを受け取るネットワークインターフェイスのアドレス範囲
---
> #inet_interfaces = all
112c110
< #inet_interfaces = localhost
---
> inet_interfaces = localhost
157c155
< mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain <- 受け取るドメイン
---
> mydestination = $myhostname, localhost.$mydomain, localhost
261d257
< mynetworks = 192.168.1.0/24, 127.0.0.0/8 <- ローカルネットワークのアドレス範囲
291c287
< relay_domains = $mydestination <- リレーを許可するドメイン
---
> #relay_domains = $mydestination
414c410
< home_mailbox = Maildir/ <- メールボックスの形式指定
---
> #home_mailbox = Maildir/
672,677d667
< mailbox_size_limit = 10240000000 <- メールボックスのサイズ指定
< message_size_limit = 40960000 <- 一通のメールのサイズ指定
< smtpd_sasl_auth_enable = yes <- SASLによるSMTP認証の使用
< smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination <- リレーを許可するものを設定
< smtpd_sasl_local_domain = $mydomain <- ローカル認証

とりあえずroot用のMaildirを作成する。

# mkdir Maildir
# chmod 700 Maildir
# chown root:root Maildir

sendmailを停止し、PostfixとSASL認証を起動する。

# service sendmail stop
# service postfix start
# service saslauthd start

動作を確認後、自動起動と、sendmailの入れ替えを行う。

# chkconfig sendmail off
# chkconfig postfix on
# chkconfig saslauthd on
# alternatives --config mta

alternativeにより、/usr/sbin/sendmailが/usr/sbin/sendmail.postfixにリンクされる。

iptablesで外部からのポート25での接続を許可する。

# vi /etc/sysconfig/iptables

...
-A RH-Firewall-1-INPUT -p 25 -j ACCEPT
...

# service iptables restart

/etc/aliasesを修正して、root、webmaster、postmasterなど宛のメールはnorに行くようにする。修正後newaliasesで更新するのを忘れないこと。

mt.Vicunaの機能を使い、サイトの上部にグローバルナビゲーションの追加を行う。
ただ、まだサイト自体の内容が貧弱なので、実際にはあまり意味が無い。

スキンの5-module.cssファイルで、

@import url(module/mod_gNavi/mod_gNavi.css);

の行のコメントアウトを外したら、あとは、[テンプレートモジュール]-[グローバルナビゲーションテンプレート]で内容を記述すればよい。

また、サブカテゴリもプルダウンからリストを選べるようになると嬉しいのだが。

Aboutも作りたい。


外観を変更するために、インストールしたmt.Vicunaのスキンを編集していく。

style-ninjaを元に変更を加えるが、デフォルトのテンプレートと混同しないためstyle-ninja-xという名前のスキンを新たに作成する。

スキンを適用するために、まずインデックステンプレートのスタイルシートの一行目を

@import url(<$MTStaticWebPath$>themes/style-ninja-x/0-import.css);

に変更する。

スキンそのものではないが、最初にすべてのページのテンプレートを2カラムレイアウトにする。

[デザイン]-[テンプレート]で、[インデックステンプレート]の[アーカイブインデックス]、[アーカイブテンプレート]の[ウェブページ]、[ブログ記事]、[ブログ記事リスト]の最初の行を以下のように"single"から"double"に変更する。

<MTSetVar name="page_layout" value="double">

次に、デフォルトでインストールするNinjaスキンを元にカスタマイズしていく。

スキンをカスタマイズするときに便利なのが、サンプルHTMLファイル。
これを使うとローカルでスキンのカスタマイズを確認することができる。
もちろん、作者にとっても必須のものだろうが、痒いところに手が届くサポートがやはりとても嬉しい。

Vicunaのスキンをローカルで編集・調整する方法

行った変更は以下のもの。



  • サイドバーを左に配置する。

  • サイドバーの固定長と、メインコンテンツの可変長の設定

  • 背景色の変更


$ diff --strip-trailing-cr -x "*.css~" -r style-ninja 0218011
diff --strip-trailing-cr -x '*.css~' -r style-ninja/4-layout.css 0218011/4-layout.css
39a40,43
> 	width:100%;
> 	position:relative;
> 	margin-left:auto;
> 	margin-right:auto;
136,138c140
< 	float: left; /* [←★→] */
< 	width: 70%;
< 
---
> 	margin-left: 200px; /* [←★→] */
148c150
< 	border-right: 1px solid #eee; /* [←★→] */
---
> 	border-left: 1px solid #eee; /* [←★→] */
150d151
< 	margin-right: -1px; /* [←★→] */
158,160c159,160
< 	float: left; /* [←★→] */
< 	clear: right; /* [←★→] */
< 	width: 30%;
---
> 	position : absolute ; left : 0px ; top : 5px;
> 	width: 199px;
diff --strip-trailing-cr -x '*.css~' -r style-ninja/5-module.css 0218011/5-module.css
51c51
< /*
---
> 
53c53
< */
---
> 
Only in 0218011/styleTest: agl-tmp-3.html
diff --strip-trailing-cr -x '*.css~' -r style-ninja/subSkin/1-subSkin.css 0218011/subSkin/1-subSkin.css
41c41
< 	width: 90%; /* (example: 50%~100%, 400px~1000px, 60em, etc. )*/
---
> 	width: 100%; /* (example: 50%~100%, 400px~1000px, 60em, etc. )
54c54
< 	background-color: #444;
---
> 	background-color: #0033ff;
59c59
< 	border-top: 8px solid #000;
---
> /*	border-top: 8px solid #000; */
61c61
< 	background-color: #272727;
---
> 	background-color: #0033ff;

これで、とりあえず、一番したいことは完了。

さらに、テンプレートをいじって、ヘッダーにCutting Edgeのロゴを、フッターにメールアドレスの画像を挿入。

最後に、compにstyle-future.zipを適用。

MovableTypeで文字列を実体参照に変換するプラグイン。

2.1のころに、自分で作って入れていたが、
どこかに行ってしまい、その後は、手で&gt;とか書いてきたが、とても面倒で泣けていた。

早速、rally.jpに仕込んで、この記事でも使ってみた。

1つくらいならたいしたことはないが、大量になるとかなり便利だ。

エムロジック放課後プロジェクト: EntryRefButton アーカイブ

EntityRefButton-0.2.1.zip

インストール: mt.Vicuna

さて、MovableTypeを4.1にアップグレードした一番の理由は、このテンプレートを使用したかったからだ。

Vicuna - Movable Type テンプレート

このテンプレートで一番魅力的なのは、ドキュメントがしっかりしていることだ。
そして、スキンがクリエイティブ・コモンズ3.0でライセンスされているということ。
まあ、普通にBLOGを公開する多くの一般ユーザは、テンプレートをそのまま使うことがほとんどだろうが、CMSツールとしてサイトを作るのにMovableTypeを使いたい場合は、自分の思ったようなレイアウトにしたい。
そして、カスタマイズなどを含むサポートもとてもしっかりしている。

そして、もう1つ、重要なのが可変長カラムだ。
探してみたが、可変長に対応しているテンプレートと言うのは少ない。
以前にも書いた気もするが、このサイトでは、横長のリザルトを掲載するためにとにかく可変長が非常に重要になる。
とりあえず、現在は自分で書いたテンプレートを使っているが、各ブラウザでの対応などの細かい確認を取っていないので、できれば、それなりに多くの人々の評価をされているテンプレートが望ましい。

ということで、テストサイトで試してみて、カスタマイズの後、本サイトに適用しようと思う。

基本的に、サイトのドキュメント通りでインストールは完了した。

インストールの手順を見ると、デフォルトウィジェットを上書きする必要があるようだが、このウィジェットの上書きは必要なのだろうか、ちょっと疑問だがやっておく。


ちなみに、このウィジェットセットはプログラムをcgi-binに振り分けている場合は、そちらににある。というか、僕が自分で置いたのだが。

そして、テンプレートセット本体。
mtVicuna2xx/mt-static/themes/style-ninjaは、サーバー上のhtml/mt/mt-static /themes/にコピー。
mtVicuna2xx/plugins/mtVicunaは、サーバー上のcgi-bin/mt/plugins/にコピー。

これで、インストール自体は完了。

そして、対象のブログのテンプレートモジュールの初期化でmt.Vicunaを適用。

まず最初にすることは、PHPを使うための、出力ファイル名の変更と、ヘッダーのXML宣言でPHPを使うように変更することだ。

インデックステンプレートはindex.htmlのように*.phpから*.htmlに修正されるが、アーカイブテンプレートは*.phpのまま。この"html"を"php"に修正する。

そして、"ヘッダー"テンプレートモジュールのXML宣言を変更する。

<?xml version="1.0" encoding="<$MTPublishCharset$>" ?>
から
<?php echo('<?xml version="1.0" encoding="<$MTPublishCharset$>"?>'. "\n"); ?>

rally.jpのMovableTypeを4.1にする

事前に移行テストをしっかりやってから、アップグレードしたかったが、移行テスト自体で問題が生じた。
そこでアップグレードテストのみmirageで行い、問題なくアップグレードが完了することを確認後、アップグレード。

$ unzip MT-4.1-ja.zip

展開されたたファイルを、アプリケーションディレクトリに完全に上書きする。
もちろん、mt-staticディレクトリも上書き。

そして、webGUIにログイン
データベースのアップグレードがはじまるという画面が表示される。
ここで、以下のようなメッセージも表示される。

加えて、以下のコンポーネントのアップグレード、またはインストールが必要です。
Professional Pack バージョン 1.1

なんらかの追加購入が必要かという気になるが、FAQを調べると特になんでもないようだ。

Six Apart - Movable Type 4 サポート: Professional Pack とは何ですか

「OK」でアップグレードが開始される。

アップグレードが完了、「Movable Typeに戻る」ボタンをクリックしてダッシュボードがが表示されるが、

これで、アップグレードは完了で、使えるようになる。
が、もし(テンプレートの初期化を行い)4.1のデフォルトテンプレートを使用する場合は、ウィジェットセットの作成が必要になるようだ。

MT4.0x から MT4.1 へのアップグレード後の注意点 | Movable Type 4 ドキュメント

Sakusaインターネットにて、運用中のMovableTypeデータのバックアップを取り、復元する。

復元時には、各サイトパスとURLの変更修正メッセージが出る。

復元したら、再構築は必須。
さらにその後、スタイルを適用しなおさないと、CSSが正しく表示されない。

しかし、ここで問題が発生。

テンプレートをいくら直しても、その変更が反映されない。

結局、SakuraインターネットのMovableTypeを4.1に上げて、さらに
テンプレートの[ファイルへのリンク]を一旦削除した後に、バックアップして、復元。

どちらが、原因かははっきりしないが、これでとりあえず、テンプレートの変更は反映されるようになった。

インストール: MovableType 4.1

towerにMovableTypeのテスト用環境を用意することにした。

towerでは、suexecが動いている。
しかし今のApacheでは、suexecの動作するユーザディレクトリ名はコンパイル時に指定する。
つまり、今までrally.or.jpではユーザ用のWebディレクトリはhtmlという名称で運用してきたが、RPMで提供されるhttpdを使う限り、public_htmlという名称にしなくてはならない。
suexecを止めるか、Webディレクトリの名称を変えるか悩んだが、結局安全を取り、suexecは生かすことにした。

そのため、マシン移行時にはユーザのwebディレクトリ名の変更を忘れないようにしなくてはならない。

という、前置きは終わって、いよいよインストール。

まず、必要なperlのモジュールをインストールする。

必須のperl-Image-Size。

それから、以下のものをyumで入れていく。

Crypt::DSA
Digest::SHA1
Archive::Tar
Image::Magick
XML::Atom

ただし、以下の2つはそのままの名前ではなくperl-IO-Compress-Base、とperl-IO-Compress-Zlibという名前で入れる。
IO::Uncompress::Gunzip
IO::Compress::Gzip

さて、あとは、MySQLのデータベースとユーザを作って準備完了。

$ mysql -uroot -pcn9aaw11
mysql> create database mt character set utf8;
mysql> grant all on mt.* to mtuser@localhost identified by 'mt2008pw02';

mt.cgiを動かして、適切なものを指定していけば、特に問題なくインストールも完了。

Sakuraインターネットのデータのバックアップを取り、復元する。
復元したら、再構築は必須である。
さらにその後、スタイルを適用しなおさないと、CSSが正しく表示されない。

インストール: PHP 5.1.6

$ sudo yum install php

あとは、/etc/httpd/conf/httpd.confのDirectoryIndexにindex.phpを加えるだけ。


再度、英文のオリジナルドキュメントを読みながら、SQLiteを使い、もう一度やり直すことにする。

まず、不要かもしれないが、無いとエラー出力されていたBerkelyDBをインストールする。

# yum install perl-BerkeleyDB

そして、さらにyumでDBD::SQLiteをインストールしようとするが、yumで取ってこようとするバージョンは1.14-2.el5。
POPFileのドキュメントによると、1.0以降はSQLite3で、POPFileでは使えないという。

SQLite2用のperl-DBD-SQLite2をインストールすることにする。

# yum install perl-DBD-SQLite2

すでに、作成していたpopfile.cfgのbayes_dbconnectをSQLite2用に書き換えて無事起動。

dbi:SQLite2:dbname=$dbname

特にエラーなく動作しているようなので、以前別のマシンで使っていたpopfile.dbを移動して完全移行完了。

手順としては、MySQLを使用しようとして失敗したものとごちゃごちゃになってしまい、わかりにくいが、POPFileがバージョンアップしたときに、また書き直そう。

もはや、離れられないスパムフィルタPOPFileをインストール。
長いこと愛用してきたが、ついに、1.0.0になったようだ。

POPFile - Automatic Email Classification

popfile-1.0.0.zip

まず、日本語解析のためにKakasiを入れる。

$ wget http://kakasi.namazu.org/stable/kakasi-2.3.4.tar.gz
$ ./configure --prefix=/usr
$ make
$ sudo make install

そして、必要になるモジュールのチェック。

Webページのマニュアルを見ると以下のモジュールが必要になるようだ。
しかし、リリースノートによると、必要なモジュールはもっと少ない。

DBI
DBD::SQLite(SQLiteを使うなら)
DBD::mysql(MySQLを使うなら)
Digest::base
Digest::MD5
HTML::Tagset
MIME::Base64
MIME::QuotedPrint
Date::Parse
HTML::Template
Text::Kakasi
Encode
IO::Socket::Socks(SOCKSを使うなら)
IO::Socket::SSL(SSLを使うなら)
Net::SSLeay(SSLを使うなら)

とりあえず、下記のスクリプトによって、モジュールが存在するかチェックした。


echo DBI
perl -MDBI -e 'print $DBI::VERSION' 2> /dev/null
echo ""
echo DBD::SQLite
perl -MDBD::SQLite -e 'print $DBD::SQLite::VERSION' 2> /dev/null
echo ""
echo DBD::mysql
perl -MDBD::mysql -e 'print $DBD::mysql::VERSION' 2> /dev/null
echo ""
echo Digest::base
perl -MDigest::base -e 'print $Digest::base::VERSION' 2> /dev/null
echo ""
echo Digest::MD5
perl -MDigest::MD5 -e 'print $Digest::MD5::VERSION' 2> /dev/null
echo ""
echo HTML::Tagset
perl -MHTML::Tagset -e 'print $HTML::Tagset::VERSION' 2> /dev/null
echo ""
echo MIME::Base64
perl -MMIME::Base64 -e 'print $MIME::Base64::VERSION' 2> /dev/null
echo ""
echo MIME::QuotedPrint
perl -MMIME::QuotedPrint -e 'print $MIME::QuotedPrint::VERSION' 2> /dev/null
echo ""
echo Date::Parse
perl -MDate::Parse -e 'print $Date::Parse::VERSION' 2> /dev/null
echo ""
echo HTML::Template
perl -MHTML::Template -e 'print $HTML::Template::VERSION' 2> /dev/null
echo ""
echo Text::Kakasi
perl -MText::Kakasi -e 'print $Text::Kakasi::VERSION' 2> /dev/null
echo ""
echo Encode
perl -MEncode -e 'print $Encode::VERSION' 2> /dev/null
echo ""
echo IO::Socket::SSL
perl -MIO::Socket::SSL -e 'print $IO::Socket::SSL::VERSION' 2> /dev/null
echo ""
echo Net::SSLeay
perl -MNet::SSLeay -e 'print $Net::SSLeay::VERSION' 2> /dev/null

かなり、足りない...

リリースノートを見るとcpanからBundle::POPFileバンドルによって、必要なすべてのモジュールをダウンロードできるとなっている。
とりあえずは、この方法でやってみた。

# perl -MCPAN -e shell
cpan> install Bundle::POPFile

しかし BerkeleyDB、File::Copy、File::Find、IO::Socket::SSL、Net::SSLeayが"make test"でエラーとなってインストールできない。

とりあえず、perl-IO-Socket-SSL、perl-Net-SSLeayはyumのリポジトリに存在するので、yumでインストールする。

# yum install perl-IO-Socket-SSL

perl-Net-SSLeayも依存関係で同時にインストールされた。

残るは、 BerkeleyDB、File::Copy、File::Findだが、そもそもこれらのBerkeleyDBは1.0.0では使っていないはずだ。
そして、File::Copy、File::Findは既にインストールされている。

ということは、バックエンドにMySQLを使うのであれば、もう使えるはずだ。

# yum install perl-DBD-MySQL

Mandrake向けだが、サービスとしてPOPFileを起動するための以下の英文ドキュメントを参考に作業。

Installing POPFile on Mandrake [POPFile Documentation Project]

# mkdir /usr/share/popfile/
# mkdir /var/lib/popfile
# mkdir /var/log/popfile
# cp *.gif *.pl *.png *.ico /usr/share/popfile/
# cp stopwords /usr/share/popfile/
# cp license /usr/share/popfile/
# cp v*.change /usr/share/popfile/
# chmod +x /usr/share/popfile/*.pl
# cp -Rf Classifier /usr/share/popfile/
# cp -Rf Classifier /usr/share/popfile/
# cp -Rf POPFile /usr/share/popfile/
# cp -Rf Proxy /usr/share/popfile/
# cp -Rf UI /usr/share/popfile/
# cp -Rf languages /usr/share/popfile/
# cp -Rf manual /usr/share/doc/popfile/
# cp -Rf skins /usr/share/popfile/
# cp -Rf Services /usr/share/popfile/ <-Webにはなかったが、無いとIMAPが動かなそうだ
# vi /usr/sbin/popfile-bayes <- Webの通りに編集
# vi /usr/sbin/popfile-insert <- Webの通りに編集
# vi /usr/sbin/popfile-pipe <- Webの通りに編集
# vi /usr/sbin/popfile <- Webの通りに編集
# chmod +x /usr/sbin/popfile*
# vi /etc/init.d/popfile
# chmod +x /etc/init.d/popfile
# /sbin/chkconfig --level 345 popfile on
# ln -s /etc/init.d/popfile /usr/sbin/popfile-service

これで、起動の準備は整ったはずだ。

MySQLを使うので、まず、MySQLにPOPFileのユーザを作成。

pfuserは実際はユーザ名、pfpasswordは実際はパスワード。

# mysql -u root -p
mysql> create database popfile;
mysql> grant all on popfile.* to pfuser identified by '********';
mysql> flush privileges;
mysql> quit

そして設定ファイルをWenページの通りに作成する。

# vi /var/lib/popfile/popfile.cfg
bayes_dbconnect dbi:mysql:database=popfile;host=localhost
bayes_dbuser pfuser
bayes_dbauth pfpassword

# /usr/sbin/popfile-service start

が、エラーがいくつか出る。

23950: bayes: 747: Attempting to connect to dbi:mysql:database=popfile;host=localhost (1)
23950: bayes: 753: Using SQLite library version
23950: wordmangle: 88: Failed to open stopwords file
20037: WARNING: Couldn't open POPFile packing list (/usr/share/popfile/popfile.pck) so cannot check configuration[0a]

popfile.pckについては、最初にソースを展開したディレクトリにあったものをコピーして対処。

$ sudo cp popfile.pck /usr/share/popfile/

"Failed to open stopwords file"は、ソースを見たところ、stopwordsの正しい置き場所は、環境変数POPFILE_USERとして指定した場所、すなわち今回は"/var/lib/popfile"のようだ。
まあ考えてみれば、置き場所としては当然こっちだ。

# mv /usr/share/popfile/stopwords /var/lib/popfile/

しかし今回はSQLiteは使用していないのに、ログにUsing SQLite library versionとあるのは不可解だ。

とりあえず動作テストをしてみて様子を見るが、一度登録したデータをうまく反映してくれないようだ。
また、頻繁にログにはエラーが出力され、またPOPFile自体が落ちてしまう。

DBD::mysql::st execute failed: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 3 at /Classifier/Bayes.pm line 1595.
DBD::mysql::st fetchrow_arrayref failed: fetch() without execute() at /Classifier/Bayes.pm line 1600.
DBD::mysql::st execute failed: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')
and matrix.bucketid = 2' at line 3 at /Classifier/Bayes.pm line 1615.
DBD::mysql::st fetchrow_arrayref failed: fetch() without execute() at /Classifier/Bayes.pm line 1619.

とりあえずMySQLを使うのはあきらめ、また英文のオリジナルドキュメントを読みながら、もう一度やり直すことにする。

CentOSのリポジトリを増やす

まずは、リポジトリをもっとも早いミラーに設定する。

# yum install yum-fastestmirror

そして、CentOSPlusを有効にする。

# vi /etc/yum.repos.d/CentOS-Base.repo

[centosplus]

- enabled=0
+ enabled=1

さらに、いくつかのリポジトリを追加しよう。
まずは、RedHatのサポートするEPELだ。

# wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-2.noarch.rpm
# rpm -ivh epel-release-5-2.noarch.rpm

これで、リポジトリの追加は完了する。

[root@tower ~]# ls /etc/yum.repos.d/
CentOS-Base.repo CentOS-Media.repo epel-testing.repo epel.repo

epel-testing.repo、epel.repoの2ファイルが追加されている。

epel-testing.repoの中はすべてenabled=0であるのを確認。
epel-testing.repoの中は[epel]はenabled=1、[epel-debuginfo]、[epel-source]は0。

この設定で問題ないだろう。

# yum update

で、リストを入手する。

ついでなので、他にもいくつか気になるリポジトリを追加。

# vi /etc/yum.repos.d/third.repo

[dag]
name=Dag RPM Repository for Red Hat Enterprise Linux
baseurl=http://ftp.riken.jp/Linux/dag/redhat/el$releasever/en/$basearch/dag
http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
enabled=1
gpgcheck=1
gpgkey=http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt

[dries]
name=Extra Fedora rpms dries - $releasever - $basearch
baseurl=http://ftp.riken.jp/Linux/dag/dries/redhat/el$releasever/en/$basearch/dries/RPMS
http://ftp.freshrpms.net/pub/dag/dries/redhat/el$releasever/en/$basearch/dries/RPMS
enabled=1
gpgcheck=1
gpgkey=http://dries.studentenweb.org/rpm/RPM-GPG-KEY.dries.txt

[flash]
name=macromedia.mplug.org - Flash Plugin
baseurl=http://macromedia.mplug.org/rpm
enabled=0
gpgcheck=1
gpgkey=http://macromedia.mplug.org/FEDORA-GPG-KEY

[atrpms]
name=Redhat Enterprise Linux $releasever - $basearch - ATrpms
baseurl=http://dl.atrpms.net/el$releasever-$basearch/atrpms/stable
enabled=0
gpgcheck=1
gpgkey=http://ATrpms.net/RPM-GPG-KEY.atrpms

そして、GPGキーを追加する。
# rpm --import http://ftp.riken.jp/Linux/dag/packages/RPM-GPG-KEY.dag.txt
# rpm --import http://dries.studentenweb.org/rpm/RPM-GPG-KEY.dries.txt
# rpm --import http://ATrpms.net/RPM-GPG-KEY.atrpms
# rpm --import rpm --import http://ATrpms.net/RPM-GPG-KEY.atrpms
# rpm --import http://macromedia.mplug.org/FEDORA-GPG-KEY

RPMForgeのリポジトリはrpmで追加できるようなので、その手法でいく。

# wget http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
# rpm -ivh rpmforge-release-0.3.6-1.el5.rf.i386.rpm

ただし、RPMForgeのリポジトリも、デフォルトがenable=1なので、0に修正。

とりあえずはこんなところで、以下に今回追加したリポジトリをまとめておく。

enable=1
base CentOS 5.0のベース
updates CentOS 5.0のアップデート
addons CentOS 5.0のアドオン
extras CentOS 5.0の追加パッケージ(addonsとの切り分けが今ひとつ不明)
centosplus CentOS 5.0の拡張パッケージ(デフォルトではOff)
epel Extra Packages for Enterprise Linux(EPEL) FedoraExtraなどでは提供されているものがある
dag Dag、Red Hat Enterprise Linux向け。パッケージの種類は豊富

enable=0
rpmforge RPMforge Dag's repository, FreshRPMS, Dries, PlanetCCRMAなどを統合したもの。
dries Dries RPM Repository。RHEL、Fedora向け
flash Macromediaの Flash Plugin
atrpms ATrpms RHEL向けのマルチメディア系とプログラミング系など

インストール: MySQL 5.0.22

いろいろなデータベースのバックエンドとして使う予定だが、とりあえずはPOPFileのためにMySQLのインストール。

$ sudo yum install mysql
Installing:
mysql i386 5.0.22-2.2.el5_1.1 updates 3.0 M
Installing for dependencies:
perl-DBI i386 1.52-1.fc6 base 605 k

$ sudo yum install mysql-server
Installing:
mysql-server i386 5.0.22-2.2.el5_1.1 updates 10 M
Installing for dependencies:
perl-DBD-MySQL i386 3.0007-1.fc6 base 147 k

設定は、文字コード以外は特にいじるところはない。

# vi /etc/my.cnf
[mysqld]
default-character-set = utf8 <-デフォルトのCHARSETをUTF-8に

[mysql]
default-character-set = utf8 <-デフォルトのCHARSETをUTF-8に

そして、起動設定と起動。

$ sudo /sbin/chkconfig --level 345 mysqld on
$ sudo /sbin/service mysqld start

まず、rootのパスワードを設定して、ゲストユーザを消しておく。

nor@tower ~]$ mysql -u root

mysql> set password for root@localhost=password('********');
mysql> set password for root@'tower.rally.or.jp'=password('********');
mysql> delete from mysql.user where user='';
mysql> quit

とりあえず、これでmySQLのインストールと設定は完了。

インストール: vsftpd 2.0.5

FTPサーバvsftpd。
パッケージマネージャから[サーバー]-[FTPサーバー]でインストール。

インストールしただけでは起動しないので、[サービスの設定]で起動するように設定し、[保存]する。内部で行っているのは、/etc/rc.d/rc5.d/S60vsftpdとK50vsftpdの変更だけ。
さらに、vsftpdを選んで[開始]すればよい。
少なくとも、LAN内部で使用するだけであれば、このままで動作する。

しかし、常時必要なサービスではないし、xinetd経由の起動にしたい。
が、そもそも、xinetd自体がインストールされていないので、まずxinetdをインストール

そして、現在起動しているvsftpdを止めて、
# service vsftpd stop

xinetd用の設定ファイル/etc/xinetd.d/vsftpdの作成。


service ftp
{
         disable                 = no
         flags                   = NOLIBWRAP
         socket_type             = stream
         protocol                = tcp
         wait                    = no
         user                    = root
         server                  = /usr/sbin/vsftpd
         server_args             = /etc/vsftpd/vsftpd.conf
         nice                    = 10
}

そしてvsftpd設定ファイルの/etc/vsftpd/vsftpd.confを編集


listen=NO <-スタンドアロン起動を行わない
tcp_wrappers=NO <-TCP-Wrappersによるアクセス制限を行わない

マシン起動時の起動設定を解除。
# chkconfig --del vsftpd

最後にxinetdの再起動。
# service xinetd restart

インストール: xinetd 2.3.14

$ yum install xinetd

マシン起動時に立ち上がるようにする。
# chkconfig --level 345 xinetd on

そしてxinetdの起動。
# service xinetd start

SSHのX転送の問題

ssh でログインした後、リモートホストでEmacsを起動するとなぜか、Ctrl-kで落ちる。

エラーは以下のもの。

X Error of failed request: BadAtom (invalid Atom parameter)
Major opcode of failed request: 18

これは、OpenSSH 3.8 移行ではX11 cookiesをデフォルトで使うようになったため。
対策としては、sshでのログイン時に-Yオプションをつけるか、/etc/ssh/ssh_configに"ForwardX11Trusted yes"を追加する。

今回は/etc/ssh/ssh_configを編集して対応。

OpenSSH FAQ

ただし、この場合以下のようなWarningが発生する。

Warning: No xauth data; using fake authentication data for X11 forwarding.

ついでに、sshでrootでログインできないように、towerの/etc/ssh/sshd_configに"PermitRootLogin no"を追加した。

sshのキーを登録

とりあえずということで、towerに対しては、sshではあるもののパスフレーズは使わずに、ログインしていたが、各マシンのパスフレーズを登録し、ssh-agentを使えるようにした。

今までRSAキーをメインに使っていたが、混在も気分がよくないので、これを機会にDSAキーにそろえることにした。

nor@mirage$ ssh-keygen -t dsa
nor@tower$ mkdir .ssh
nor@tower$ chmod 700 .ssh
nor@tower$ scp nor@mirage:~/.ssh/id_dsa.pub .
nor@tower$ cat id_dsa.pub >>.ssh/authorized_keys2
nor@tower$ chmod 600 authorized_keys2

loplassでもキーを作り、towerに登録した。

インストール: act Rev.0.11

自作のAsahi.comリーダactも、towerで動かすことにする。
これで、もはやmirageは常時起動しておく必要は無くなる。

ただし、towerにはJcode.pmがインストールされていなかったので、まず、Jcode.pmをインストールした。

# perl -MCPAN -e shell

cpan> install Jcode

あとは、自動でデータをとってくるために、cronに登録。
$ crontab -e
HELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin

# run-parts
20 7 * * * $HOME/bin/act
20 14 * * * $HOME/bin/act
20 21 * * * $HOME/bin/act

インストール: Wanderlust 2.14.0

そしていよいよ、Wanderlustだ。
Thnuderbirdへの移行も考えられるが、どうするかな。
もはや、外からログインするということはほぼ考えられない。GMailに転送をかけているのである程度古いメールも見ることができる。正直、今Wanderlustを使う必要性はかなり低い。
将来性もThunderbirdの方が上だろう。
ただ、書くということに限って言えば、やはりEmacs上で書きたい。

あえて言えば、Thunderbirdのメールを圧縮できないと言うのは大きな弱点だが、これも、手動で不要なmboxを圧縮すればよいだろう。
それよりも、この際popとimapの共存をして、自分のメールはサーバ上に置きっぱなしにするのもよい。
ThunderbirdなどのIMAP対応のメーラなら外から見ることもできるし、いろいろなマシンから、メールを見ることができる。

まず、Wanderlustをインストール。
そして、pop、imapのインストール。
さらに、メールをすべてimapに移行。

こういう手順でいくことにする。

apel-10.7.tar.gz APEL 10.7
flim-1.14.9.tar.gz FLIM 1.14.9 (五条)
semi-1.14.6.tar.gz SEMI 1.14.6 (丸岡)

まず、MIMEに必要なモジュールをインストールしていく。

APEL 10.7
apel-10.7.tar.gz
APEL

FLIM 1.14.9 (五条)
flim-1.14.9.tar.gz
FLIM

SEMI 1.14.6 (丸岡)
semi-1.14.6.tar.gz
SEMI

上記3つは、すべて"sudo make install"でインストール完了。

Wanderlustの最新Stable版を取ってきて、展開、Makefileを修正する。

ftp://ftp.gohome.org/wl/stable/wl-2.14.0.tar.gz

LISPDIR = /usr/share/emacs/site-lisp
INFODIR = /usr/share/info

$ make
$ make install

さらに、infoのインストール。

$ make info

ここで、"make install-info"といきたいところだが、日本語infoはJISで作成されるがCentOS5はUTF-8なので、以下のように手動でコピーする。

$ mv wl-ja.info.orig wl-ja.info

$ mv wl-ja.info wl-ja.info.orig
$ nkf -w3 wl-ja.info.orig > wl-ja.info
$ sudo cp wl*.info /usr/share/info
$ vi /usr/share/info/dir

Wanderlustのノードを追加する。

最後に、.emacsなどにWanderlustの設定を追加して、インストールは完了。

mirageより、Mailと.elmoディレクトリをコピーして、環境の移行も完了。

nor@mirage$ tar czvf - ./Mail | ssh nor@mirage "tar zxf -"
nor@mirage$ tar czvf - ./.elmo | ssh nor@mirage "tar zxf -"

インストール: BBDB

Wanderlustでのアドレス収集用にBBDBをインストール。

The Insidious Big Brother DataBase @ SourceForge
bbdb-2.35.tar.gz

Makeではlispファイルのコピーやinfoの追加はしてくれないので、自分でする必要がある。

$ tar zxvf bbdb-2.35.tar.gz
$ cd bbdb-2.35
$ ./configure
$ make
$ sudo mkdir /usr/share/emacs/site-lisp/bbdb
$ cd lisp/
$ sudo cp *.el* /usr/share/emacs/site-lisp/bbdb
$ cd ../texinfo
$ gzip bbdb.info
$ sudo cp bbdb.info.gz /usr/share/info
$ vi /usr/local/info/dir
以下を追加。

* BBDB: (bbdb). Big brother database.

しかし、日本語を含むFrom行を自動で取り込んでくれない。
FLIMの代わりにLIMITを使ったり、Wanderlustのメーリングリストのログを調べてみたが、解決しなかった。
MIMEデコードがうまく行っていないのだと思うが、追求にも時間がかかりそうなので、とりあえず使用はあきらめることにする。

インストール: w3m、emacs-w3m

WanderlustでHTMLメールを見るために、w3mとemacs-w3mをインストール。

$ sudo yum install w3m
しかし、これだけではw3mは画像表示に対応しないので、さらに、
$ sudo yum install w3m-img
(これで、w3mが必要とするGC libraryもインストールされる)
w3mのバージョンは0.5.1。

emacs-w3mはリポジトリにないので、自分で取ってくる。

Text browser works on Emacs
emacs-w3m-1.4.4.tar.gz

$./configure
$ make
$ make check
$ sudo make install
$ sudo make install-icons

そして、.emacsと.emacs-w3mを編集。
.emacsには
(require 'w3m-load)
他を追加。

インストール: EmacsとAnthy

さて、そろそろEmacsを使えるようにしよう。
[アプリケーション]-[Emacs]
で、インストール完了。

そして、ついに10年以上の付き合いのWnnとは決別する決意をする。

今回は、日本語変換にはAnthyを使うことにした。
が、CentOS5のデフォルトがSCIM+Anthyなので、あとは、Emacsから使えるようにAnthy.elを入れるだけ。

# yum install anthy.el

これで、以下の設定をするだけで、Anthyが使えるようになる。


;;;;;;;;;;;;;;;;
;; Anthy の設定
;;;;;;;;;;;;;;;;

(if (equal emacs-ime "anthy")
(progn
(set-language-environment "Japanese")
(load-library "anthy")
(setq default-input-method "japanese-anthy")
))

anthy.elを使うならこれでいいのだが、anthy.elの場合、日本語のインクリメンタルサーチができない。anthy+tamagoにすれば解決するのだが、そろそろanthy.elのキーバインドに慣れてしまいたい。
tamago以外の解としては、migemoを使うという手もある。

まあ、しばらくanthy.elで使ってみよう。

あとは、徐々に.emacsを移行しながら、必要なアプリケーションをインストールしくことにする。

インストール: gftp 1:2.0.18

$ sudo yum install gftp

anonymous ftp用のメールアドレスだけ修正。

sudo

いいかげん、suしまくるのが面倒になったので、とりあえず、

# visudo

nor ALL=(ALL) ALL

あまりよくはないが、設定が終わるまではこれでいこう。
ここに書いておけば、忘れないだろう。

インストール: samba 3.0.25b

# yum groupinstall "Windows File Server"

[システム]-[管理]-[サーバー設定]-[Samba]からsystem-config-sambaを起動する。

まずは、[プリファレンス]-[サーバー設定]で、[ワークグループ]と[記述](説明)を設定する。

08021308.png

そして、任意のユーザ向けの共有を作成。

# mkdir /var/samba

これにtmpという共有名を割り当て、[書き込み可能]、[可視]をチェックする。

08021309.png

設定ファイル/etc/samba/smb.confを確認すると、以下が追加されている。

[tmp]
path = /var/samba
writeable = yes
; browseable = yes
guest ok = yes

そして、ユーザの設定。
[プリファレンス]-[Sambaのユーザー]で追加するのだが、追加した後も、[Sambaのユーザー]画面に追加が反映されない。バグかな。

08021307.png


これ以降は、直接/etc/samba/smb.confを編集する。と言ってもとりあえずは、ホームディレクトリの公開のみ。実際にしたのはvalid usersをコメントアウトしただけ。

[homes]
comment = Home Directories
browseable = no
writeable = yes
valid users = %S

これでとりあえず、使用は可能になった。

念のため、アクセスできるホストを192.168.1. サブネットで指定。

hosts allow = 192.168.1.

あとは、プリンタの接続後に、共有できるようにすることくらいか。

インストール: Apache 2.2.3

towerにApacheの導入。
yumを使ってWeb Serverグループでインストール。

# yum groupinstall "Web Server"

ただし、マニュアルはインストールされてないのでこれはインストール。

# yum install httpd-manual

しかし、日本語マニュアルは入っていないようなので、
http://httpd.apache.org/docs/2.2/
を参照した方が良い。

バージョンは2.2.3。
とりあえずは、設定ファイルは何もいじらずに起動してみる。

# service httpd start

問題なく起動し、別のマシンからでもデフォルトのトップページを見ることはできた。

そこで、デフォルトでhttpdが起動するように設定する。

# chkconfig --level 345 httpd on

system-config-httpdというGUIプログラムでも設定は可能だが、デフォルトではインストールされないので、ここはhttpd.confを直接編集して設定。

設定ファイルの場所は/etc/httpd/conf/httpd.conf。
とりあえず設定した内容は以下のもの。
いずれ、コンテンツを移動するときに、もう少しきちんといじることにする。

KeepAlive On <-セッションの維持
erverTokens ProductOnly <-OS名を表示しない
ServerAdmin nor@rally.or.jp <-サイトの管理者
ServerName www.rally.or.jp:80 <-ホスト名
ServerSignature Off <-サーバ情報を出力しない

<Directory "/var/www/html">
Options Includes  <-  SSIのIncludeを使えるようにする。

#AddDefaultCharset UTF-8 <-デフォルトのCharsetをUTF-8にしない。
    UserDir html <-ユーザのホームディレクトリの下のhtmlを各ユーザのWeb公開ディレクトリに。

DirectoryIndex index.php index.shtml index.html index.html.var <- インデックスページの優先度設定。

CentOS5へのVMware Workstation 4のインストールはとりあえず中断し、VMware Playerを使ってみることにした。

まず、VMwareの公式サイトから、最新のVMware Player 2.0.2 Build: 59824をダウンロード

Player Version History - VMware

VMware-player-2.0.2-59824.i386.rpm

今度は、カーネルモジュールも見つけられるようで、すんなりインストールが完了。

mirageにおいてあったWindowsのイメージをそのままコピーして実行した。
しかし、古すぎるためかVMWare Toolsが動作していないようだ。

そこで、最新のVMWare Toolsもインストールする。
VMWare Tools自体はVMWare Playerには含まれていない。
そのため、VMWare Workstationを展開し、Windows ISOを取り出し、これをCDとして仮想マシン上でマウントしインストールする。
マウントの設定は、foo.vmxを直接エディタなどで編集する。

VMware-workstation-6.0.2-59824.i386.tar.gz

まず、事前に古いVMWareをアンインストールする。

VMWareのサウンドはOFF、ゲストのWindowsのCDの自動読み込みもOFFにしていたせいか、ハードウェアの自動認識がされたのは、VGAのみ。

そしてその後、CDドライブにマウントされたVMWare Toolsをインストール。
しかしVMware Toolsをインストールしても、やはり動作は遅い。

CPU自体の負荷は高くないようなので、おそらくCentOS自体でメモリがスワップしているせいだろう。実用には耐えないか。
これだったら、PentiumII-500MHzメモリ512MBのマシンのほうがまだマシに動く。

まあ、物理メモリ256MBのマシンで、256MBの仮想マシンを動かそうというほうがそもそも無理な話なのだが。
ちなみに、wmxファイルでメモリを128MBに設定すると、少しは動きがマシになった。

ということで、インストール自体は完了したものの、使用は断念。
アンインストールとなった。

CentOSにVMWareをインストールしてみることにする。
VMWareのバージョンは4と古いので、もちろんCentOS5などが、動作保証されているわけが無い。

VMware-workstation-4.5.3-19414.i386.rpm

gccをまだ入れていなかったので、vmware-config.plで怒られる。

ついでなので、Gnome上でパッケージマネージャから[開発]-[開発ツール]を選んで、gccなどをインストール。
当然ながら依存関係が大きく、非常に時間がかかる。

そういえばカーネルソースも必要だったはずなので、
# yum install kernel-devel
kernel-devel-2.6.18-53.1.6.el5がインストールされた。

しかし、vmware-config.plでカーネルソースが見つからないと怒られる。

What is the location of the directory of C header files that match your running
kernel? [/usr/src/linux/include] /usr/src/kernels/2.6.18-53.1.6.el5-i686/include/

The directory of kernel headers (version @@VMWARE@@ UTS_RELEASE) does not match
your running kernel (version 2.6.18-53.1.6.el5). Even if the module were to
compile successfully, it would not load into the running kernel.

/usr/src/linuxにシンボリックリンクを貼ってもダメ。

バージョン定義しているファイルが、version.hから変わってしまったため、見つけられないようだ。

とりあえず中断。

Linuxでリモートデスクトップ

VNCではリモートマシンのデスクトップを開くことができる。
Windowsがリモートマシンの場合は、リモートマシンにおいて物理的に表示されているデスクトップそのものが開かれる。Windowsのリモートデスクトップと同じ動作だ。
しかし、X Window SystemベースのVNCでは、別のディスプレイ番号を使用して新しいデスクトップを開く。物理的に表示されているものとは別のものだ。

これをWindowsのリモートデスクトップと同じような動作するには、Gnomeに搭載されているvinoを使う。
これは、[システム]-[設定]-[リモートデスクトップ]で設定できる。

08021203.png

これで、クライアントからディスプレイ番号0に接続することができる。
ただし、これはリモートマシンにおいてGnomeでログイン後にしか使うことができない。

まあ、この機能は、ヘルプデスクなど以外ではほとんど使い道がないかと思われる。

もし、一人で使おうとするならば、常にログイン状態にしておくしかない。

まあ、[システム]-[管理]-[ログイン画面]の[セキュリティ]タブで、自動ログインを有効にすることもできるが、そもそもそこまでの必要性も感じないし、常時VNC接続をできるようにするというのも気持ちが悪い。
08021205.png

Windowsマシンには、VNCクライアント(VNCviewer)だけを導入。

RealVNC - RealVNC remote control software

vnc-4_1_2-x86_win32_viewer.zip

展開してコピーするだけ。

あとは、設定してある接続先ポートに、接続するだけ。

iptablesで該当のポートを開けておくことを忘れずに。

VNCの導入

| トラックバック(1)

VAIOは普段は、マシンラックにおきっぱなしにして動作させるので、直接触ることは少ない。そこで、VNCだ。
VNC Serverをインストールしようとしたところ、すでにインストールされていた。

あとは、サーバを設定して起動するだけだ。

# vi /etc/sysconfig/vncservers
VNCSERVERS="1:nor"
VNCSERVERARGS[2]="-geometry 1024x768 -nolisten tcp -nohttpd"

$ vncpasswd
Password: ********
Verify: ********

いつでも使えるようにサービスとして登録したり、xinetd経由であげたりすることもできるが、頻繁に使うものではないし、セキュリティのことも考え、使うたびにコマンドラインで立ち上げるようにする。

$ vncserver

これで、接続される準備は完了。

終了は、
$ vncserver -kill :1

ただし、このままだとウィンドウマネージャとしてtwmが使われるので、.vnc/xstartupの最終行の"twm"を"gnome-session"に変更。

BLOG用などの簡単な写真加工にいちいちPhotoshopを立ち上げるのは、重いし面倒だ。
そこで、簡単な画像管理兼加工ソフトを導入することにした。

プロプライエタリな製品としては、Photoshop Elementsなどがあるが、Photoshop Elementsはserrowにインストールして家族が使っているので、別のソフトを使ってみたいし、そもそもそれだったらPhotoshopそのものを使った方がいい。

Google

picasaweb-current-setup.exe

08021202.png

インストールして起動するとすぐに、コンピュータ内の画像検索が始まる。しかし、動画ファイルまで検索してしまっているので、かなり時間がかかってしまう。

08021206.png

とりあえず、[ツール]-[オプション]の[ファイル形式]タブで[ムービー]のチェックを外し、[GIF]と、[PNG]をチェックする。

[ツール]-[フォルダマネージャ]の監視フォルダに「デスクトップ」と「マイ ドキュメント」が含まれているが、写真以外の大量のデータがアルバムに追加されてしまうので「マイ ピクチャ」以外はチェックを外す。

さて、インストールが終わったらセキュリティである。
最終的には、外部に公開するサーバとするので、ガチガチに固めることが望ましい。
なお、今回はSELinuxは使用しないで、iptablesによるファイアウォールを使う。
もちろん、基本的に全部閉じておいて、必要なサービスのみ開くという方針でいく。

GUIから[システム]-[管理]-[セキュリティレベルとファイヤーウォールの設定]で、基本設定を行う。コマンドラインでは「# system-config-securitylevel」に相当する。

08021201.png

まず、FTP、SSH、Samba、HTTPS、HTTP、SMTPを信頼できるサービスとして登録する。
そのほかに、以後も確実に開くものとして、VNCの5900~5902/TCPをその他のポートで登録。
そして、[OK]。

この設定は/etc/sysconfig/system-config-securitylevelに保存される。このファイル自体は、アプリケーションの保存ファイルとしての役割で、さらに/etc/sysconfig/iptables-config、および詳細ルールが/etc/sysconfig/iptablesにも保存される。

[root@tower ~]# cat /etc/sysconfig/iptables
# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter      hosts.allow  hosts.deny   
:INPUT ACCEPT [0:0]s /etc/hosts.allow 
:FORWARD ACCEPT [0:0]/etc/hosts.deny 
:OUTPUT ACCEPT [0:0] /etc/sysconfig/iptables
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 137 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 138 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5900 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5901 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5902 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT

ただし、最終的にこのマシンをDMZに置き外部に公開することを考えると、VNCなどはIPアドレスにおけるアクセス制限をかけておいたほうがいい。もちろん、そういったPORTはゲートウェイで止めてしまうのが正しいのだが、やってやりすぎることはない。
しかし、system-config-securitylevelではそこまできめ細かい設定はできないので、直接/etc/sysconfig/iptablesを編集することになる。

とりあえず、sambaとVNCのみ、LAN内部からのみ接続可能なように"-s 192.168.1.0/24"を追加する。

-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp -s 192.168.1.0/24 --dport 137 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp -s 192.168.1.0/24 --dport 138 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -s 192.168.1.0/24 --dport 139 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -s 192.168.1.0/24 --dport 445 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -s 192.168.1.0/24 --dport 5900 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -s 192.168.1.0/24 --dport 5901 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -s 192.168.1.0/24 --dport 5902 -j ACCEPT

いずれはDNS、pop3なども開くことになるはずだが今回はとりあえず、この辺で。

インストール: CentOS 5

| コメント(1)

さて、本命のCentOS5のインストールだ。

迷ったのはバージョン。CentOS4でもいいような気もするが、サポート期間がちょっと気になる。
しかし、メモリ要件がRHEL4では最小256MBだったのだが、RHEL5で最小512MBに上がっている。インストールしようとしているマシンは256MBしかない。

まあ、実際にインストールしてみて、メモリの使用状況を見て考えることにする。

なお今回のマシンでは、できるだけGUIによる設定を行い、それがどのように動作するのかを確認する方針で行く。
ただし、残念ながらインストールそのものはFDブートによるネットワークインストールのため、テキストモードでのインストールとなった。

CentOS5はFDからのインストールはできない。

initrd.img自体が5Mあり、CD以外の外部メディアではUSBメモリくらいしか使えないだろう。
しかし、VAIOのCDドライブは故障している。

そこで、すでにインストールしたDebianのGrubを使ってインストールイメージをブートすることにした。

まず、インストールイメージのvmlinuzとinitrd.imgをFTPサイトから持ってくる。

ftp://ftp.nara.wide.ad.jp/pub/Linux/centos/5.1/os/i386/isolinux/

そして、/root/bootにvmlinuzとinitrd.imgをコピー。

Grubにこのイメージからのブート設定を追加。
# vi /boot/grub/menu.lst

title CentOS Install
root (hd0,0)
kernel /root/boot/vmlinuz ramdisk_size=8192
initrd /root/boot/initrd.img

(もし/bootが別パーティションだった場合は、インストールイメージを/bootの下におき、パス名は/bootの下から記載、さらにrootのパラメタも変更する必要がある。)

これで、リブートし、GrubでCentOS Installを選ぶと、インストールが始まる。

この方法、参考にしたのは暇人日記blog版: FDはあるけどCD-ROMドライブの無いノートPCに最新版Linuxをインストール

以下はポイントだけ。

Configure TCP/IPでは、Manual configurationしておけば、インストール完了後も有効になる。

ftpサイト名はftp.nara.wide.ad.jp。ディレクトリは/pub/Linux/centos/5.1/os/i386/。

Partitioning Typeでは、Remove linux partitions on selected drives and create default layout.を選ぶ。

Review Partition LayoutではYesにして、/を18432から17920に、swapを512から1024に容量を変更。これは、仮想マシンを使うため。ただし、非常に動作が重くなるのは覚悟の上。

Time Zone Selectionでは、System clock uses UTCのチェックを外す。

Package selectionでは、すべてのチェックをはずし、Customize software selectionのオプションにチェック。

Package Group selectionでは、EditorsとGNOME Desktop Environment、X Window Systemだけチェック(GNOME Desktop EnvironmentはX Window Systemに依存していると思われるのだが、Xは自動ではインストールされない)。

ソフトウェアは、後からインストーラと同等の画面で追加が可能なので、最初は最小のインストールをしておくのがよいだろう。

再起動後のSetup Agentでは、System servicesを選びbluetooth、ip6tablesを停止する。Setup Agentを終了すると、ログインプロンプトが表示される。

ログインしstartxでXを立ち上げる。

「更新があります」という通知があるので、[更新を表示]をクリックすると、Package Updatarが立ち上がる。とりあえずは、すべて更新しておくのが良いだろう。

これで、とりあえずインストール作業は完了。


と、思ったが、マシン名を変更しておこうと思い立ち、GUIでmr2からtowerに変更。さらに、starletのDNSサーバの設定ファイルも変更して再起動。

08021204.png

このときWindowsでDNSの変更を反映にするには、[ネットワーク接続]で[ローカル エリア接続]を修復し、DNSキャッシュを削除する必要がある。

インストール: Debian etch

インストールしようとしているVAIO PCG-FX99V/BPは、DVDドライブが壊れている。そのためCDなどからのインストールが使えないのでFDインストールしかない。

まず、インストール用のFDを作ることにする。

まず、
http://www.t.ring.gr.jp/archives/linux/debian/debian/dists/etch/main/installer-i386/current/images/floppy/から、
boot.img
cd-drivers.img
net-drivers-1.img
net-drivers-2.img
root.img
をダウンロード、DOS上でrawriteを使いFDに書き込む。

そして、BOOT FDで起動。

Load driversでCD-DRIVER、NET-DRIVER1,2を読み込む。

ホスト名はmr2に、IPアドレスなどはDHCPで取得、そしてドメイン名はrally.or.jpが自動設定された。

パーティションは1パーティションを選択、hda1がext3に、hda5がswapになった。

そして、適当に質問に答えてインストールは完了。

実は、このDebianは実際に使うことは意図していない。
あくまで、本当に使う予定のCentOSのインストールのための前作業。

Spec: tower

型名: VAIO PCG-FX99V/BP
CPU: ADM mobile AMD Athlon 4 1.2GHz
Memory: 256MB(PC100)
Network : Realtek RTL-8139 100BASE-T
Video: ATI 3D RAGE Mobility M1(ATI|Rage Mobility P/M AGP 2x) 8MB
DVD/CD-Drive: UJDA720 DVD/CDRW
HDD: Toshiba MK2018GAP 20GB (換装)
FDD: 2mode
Display: 15型 SXGA+(1,400×1,050)対応 TFTカラー液晶(故障)
OS: CentOS5

メーカーWebページ

08021102.jpg

FIVAよさようなら

去年の5月に電源が入らなくなったFIVA MPC-101M32。

そして、ずっと以前に壊れたVAIO PCG-FX99V/BP。
まず、DVDドライブが不調になり、それからHDDがおかしくなり始め、最後にLCDのバックライトが壊れ、使用をやめたという満身創痍のマシンだ。

前々から計画して延び延びになっていたのだが、FIVA内蔵の20GHDDをVAIOに移植して、VAIOをサーバマシンとして生き返らせることにした。

FIVAは自分でHDDを入れ替えたので分解手順も覚えているが、VAIOは初めてだ。
Googleで検索してLogitecのページが見つかった。

接続情報>ノートパソコン用HD交換手順情報>SONY PCG-FX11/BP

無事HDDの換装も完了。そして、FIVAのHDDの中身の救出。

VAIOに移したFIVAのHDDのWindows98を起動しようとするがsafe modeでしか起動しない。
そこでLinuxを起動しようとするが、やはりサウンドモジュールの読み込みでハングアップ。
残してあった古いカーネルでは、サウンドモジュールの読み込みではハングアップしないものの、起動までは行かず。

そこで、古いカーネルで、シングルユーザモードで起動。
boot: linux-old 1

/etc/conf.modules(懐かしい名前だ…)を編集してサウンド(ALSA)関連のモジュールをすべて無効にする。
が、pcmciaモジュールの読み込みでやはりエラー。

再度シングルユーザモードに移り、/etc/sysconfig/pcmciaでPCMCIAを無効にする。

- PCMCIA=yes
+ PCMCIA=no

内蔵のRealtek RTL-8139は、自動検出で有効になったのでIPアドレスなどを指定し、ネットワークは使用できるようになった。

あとは、DOSパーティションをマウント。そして、ProFTPDを起動して、FTPでデータを移動して終わり。

さようならFIVA。
こいつは、1999年に昔いた会社の同僚が使っているのを見て、ヤフオクで中古購入したマシンだ。
MMX233MHz相当の今は無きMediaGXというグラフィック機能を持ったCPUで、その当時にしても低スペックだったが、何よりもその小ささが気に入った。
Windows 98はもちろんLinux、FreeBSDが動作し、GUIを使うのに実用最低限ともいえる800x600の解像度。

ポーチにも入れて持ち歩けるサイズのこのマシンは、取材はもちろん、締め切り直前のラリーでも原稿を持っていき行き帰りで執筆、納品なんてことまでして、日本中持ち歩いた。
そして、僕のライフワークともいえるダートラの計時にもメインマシンとしてずっと使い続けてきた。

そう、思い出がたっぷり詰まっている。
たぶん、壊れなければあと10年でも使い続けていただろう。
さようならFIVA。

08021101.jpg

CASSIOPEIA FIVA
CPU: cyrixMediaGX 200MHz
Memory: 128MB
HDD: 20GB(3.2GBから換装)
VGA: 800x600 65536色(外部ディスプレイ接続時 1024x768)
Display: 6.7inch HAST TFTカラー液晶

Excelの表を比較をしたくなって良いマクロがないかと調べたところ、マクロではないが、ファイルの比較をするWinMargeというソフトが見つかった。

基本はテキストファイルの比較だが、フォルダ丸ごとの比較もでき、さらにExcelの比較もプラグインによって実現できるという優れもの。

WinMerge 日本語版

WinMerge本家

winmerge-2.6.12.0-jp-1-exe.zip

インストールは展開してコピーするだけ。

さらに本題のExcelからテキストへの変換プラグインもインストールした。
ExcelToText.sct.zip

あるアプリケーションで、マウスの多ボタン設定が動作しなくなった。
情報によるとSetPointを4.4以降に上げると問題は解消するらしい。

ロジクールのページからSetPoint 4.4をダウンロード。 setpoint440j.exe
そして、前バージョンを削除しないままインストール。

しかし、アプリケーション別の設定はあいかわらずできない。
そして、4.4にはuberOptionは使用できない(対応していない)。
そもそも、uberOptionのページも見つからない。

しかし、前バージョンでインストールしたuberOptionの設定が有効になっており、アプリケーションごとの設定は生きていたので、そのまま使用することが可能だった。

そして、実際にはSetPoint自体はxmlで設定する。

その設定内容は以下の通り。これらのタグでアプリケーションごとの設定を行うようだ。
今回は、必要十分な動作をしているので追加の設定はしなかったが、今後設定変更する場合はxmlファイルを直接編集すればよさそうだ。

C:\Documents and Settings\nor\Application Data\Logitech\SetPoint
+      <UserOption Name="ApplicationSpecificSettings">1</UserOption>

+   <Apps>
+      <App>c:\\program files\\donutq\\donutq.exe</App>
+   </Apps>

+                     <AppOverride App="donutq.exe" HandlerSet="LeftClick">
+                        <Handler Class="MouseButton">
+                           <Param ButtonName="PrimaryButton"/>
+                        </Handler>
+                     </AppOverride>

上記だけでも良いような気もするが、念のため以下も設定しておく方がよいかもしれない。

C:\Program Files\Logicool\SetPoint\Devices\PointingDevice\1000045\1000045.xml
"1000045"がG3に対応する番号になっている。

-		<Device DisplayName="G3/MX518 Optical Mouse uber" Class="PointingDevice" Model="16777285" NumberOfButtons="9">
+		<Device DisplayName="G3/MX518 Optical Mouse uber" Class="PointingDevice" Model="16777285" NumberOfButtons="9" AppTier="2">


C:\Program Files\Logicool\SetPoint\default.xml

-	<UserOption Name="ApplicationSpecificSettings">0</UserOption>
+	<UserOption Name="ApplicationSpecificSettings">1</UserOption>

このアーカイブについて

このページには、2008年2月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2008年1月です。

次のアーカイブは2008年3月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

アーカイブ

ウェブページ

Powered by Movable Type 6.3.6