2008年11月30日 (日)

玄箱 - KURO-NAS/X4発表

KURO-NAS/X4

今度のやつはHDDを4つも搭載できるようです。なんだかもう真面目に使えるようになってきましたね~。
CPUもARM 500MHz。HGは200MHzなのでMovableTypeとかさすがに重かったりしますが、X4ならけっこう快適に動くかも。小規模なWebサーバーやメールサーバー用途だったら十分ですね。

OSもDebian GNU/Linuxが標準でサポートされています。
なんかここまで用意されちゃっていると面白くない感じもしますが、考え方を変えて仕事に使えないかどうか、考えましょうかね。

中小企業の社内向けWeb、メールサーバーとかデータベースサーバー、インターネット向けに軽量なホームページやWebシステムを公開されている企業ならこれで十分間に合うケースもあると思います。うーむ、そういうパッケージつくったら売れるかな?

セットアップ手順もすでに公開されています。
なんか簡単そう。発売されたら買ってみようかな~。

話は変わりますが、今日机を整理していたらちょっと前に読んだ本が出てきました。

計画の科学―どこでも使えるPERT・CPM (ブルーバックス 35) Book 計画の科学―どこでも使えるPERT・CPM (ブルーバックス 35)

著者:加藤 昭吉
販売元:講談社
Amazon.co.jpで詳細を確認する

ずいぶん昔の本ですが、プロジェクトの管理を担当する方は必ず読んでおくべき本だと思います。現代には複雑な管理手法がたくさん存在していて、それの解説書もたくさんありますが、たぶんこの本に書かれているようなことが理解できてないと、複雑な管理手法も腹に落ちてこないんだろうな。と思います。

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

2007年12月13日 (木)

玄箱 - PHP5をソースからインストールしてみる(tidyとかGD入り)

玄箱Proが出て以降、なんとなくやる気がなくなっていた玄箱実験シリーズですが、久々にネタを書きます。最近はpython書くのが楽しくてソフトのインストールとか設定とかは全くやってなかったのでなんだか新鮮です。

ボクは正直言ってPHPは嫌いなほうです。あんまりスマートに書けるイメージがないんですよね。便利なのは便利なんですけどね。でも「PHP書ける?」とか「PHPの仕事なんですが・・・」なんて話はとてもよく伺います。巷にはPHPのシステムがあふれているんですね。そしてメンテナンスをろくにされていないものが実に多い様子。「PHPできますけど、嫌いなんですw」と正直に言っても、たのんますよ~と言われるケースが多いです。システム作ったはいいけど、開発会社と契約が切れたり倒産してたりしてメンテができなくなったという話がほとんど。
そういうのを開けてみると、ソースは決まって最悪ですwそんなんを見てくると余計にPHPのコードに対する印象が悪くなっていくのでした。

まあ、余談はさておき。そんなPHP嫌いにまたPHPのお仕事が来ました。いや、基本的に頼まれたらなんでも受けるんですw
その中で、PHP5のインストール評価をする必要が出てきたのでとりあえずウチの玄箱でやってみることにしました。Debianならaptで簡単にインストールできるんですが、今回はソースコードからインストールする必要があるのであえてmakeでのインストールです。

ついでに、MySQLやらTidyやらを使う必要があったのでその辺のオプションもつけてコンパイルしてみました。ちなみに、PHP5はまだRPMでは配布されていないんですねぇ。ちょっと驚きました。

さて、まずは事前に以下のものをaptでインストールしておきます。
tidy、MySQL、GD、XML、curlをサポートするようにしました。
apache2
apache2-threaded-dev
tidy
libtidy-dev
libgd-dev
mysql
libxml2
libxml2-dev
libcurl
libcurl3-dev

次に、PHPのソースコードをダウンロードしてきます。現行の最新バージョンは5.2.5でした。

ソースを展開します。
---
# tar xzvf /home/user/php-5.2.5.tar.gz
# cd php-5.2.5

---

configureします。
上記に加えてmbstring関連のオプションも含めました。
http://d.hatena.ne.jp/yuhei_kagaya/20070915/1189843852 を参考にさせていただきました。ありがとうございます。
---
# ./configure \
        --with-apxs2=/usr/bin/apxs2 \
        --enable-mbstring=all \
        --enable-mbregex \
        --enable-cli \
        --with-mysql=/usr/local/mysql \
        --with-mysqli=/usr/local/mysql/bin/mysql_config \
        --enable-safe-mode \
        --with-exec-dir=/usr/bin \
        --with-zlib \
        --with-curl=/usr \
        --with-curlwrappers \
        --enable-zip \
        --enable-xml \
        --with-gd \
        --enable-gd-native-ttf \
        --enable-gd-jis-conv \
        --enable-zend-multibyte \
        --with-tidy

---

configureがうまく通ったらmake & make install です。
---
# make
# make install

---

インストールできたら、php.iniを設定します。
---
# cp -p /home/user/php-5.2.5/php.ini-dist /usr/local/lib/php.ini
# vi /usr/local/lib/php.ini

---
[php.ini]

expose_php=off
error_reporting=E_ALL | E_STRICT
display_errors=on
log_errors=on
log_errors_max_len=4096
error_log= php5_error.log
register_long_arrays=off
register_argc_argv=off
magic_quotes_gpc=off
default_charset="UTF-8"
allow_url_include=off
session.use_only_cookies=1
session.gc_divisor = 1000
session.bug_compat42 = 0
session.entropy_length = 32
session.hash_function = 1
date.timezone = "Asia/Tokyo"

http://wiki.ohgaki.net/index.php?PHP%2Ftips%2F%BF%E4%BE%A9php.ini%C0%DF%C4%EA
などを参考にしながら、上記のようにパラメータを設定してみました。ありがとうございます。
"display_errors=on"の部分は開発環境を意識しましたが、運用環境ならoffにすべきです。
mbstring関係は環境に合わせて設定するといいです。

設定が終わったらapache2をリロードしてphpinfoで設定を確認してみます。
---
# /etc/init.d/apache2 reload
# touch /var/www/phpinfo.php
# vi /var/www/phpinfo.php

---
[phpinfo.php]

<? phpinfo(); ?>


正常に表示されました。
Php5phpinfo20071213

特に難なくという感じでした。
この評価をもとにシステム開発環境にもインストールできそうです。

まあ、せっかく玄箱に入れたことですし、PHP5もちょこっとやってみましょうかね。4ばっかり書いてきたしね。

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

2007年6月 8日 (金)

玄箱 - MovableType4 Betaをインストールしてみる

前回はテキトーにインストールして評価してみたMovableType4Betaですが、ちゃんとインストール方法を書いておこうと思います。で最近玄箱ネタを書いてなかったし、せっかくなので玄箱Debian環境にインストールしてみることにしましょう。

玄箱Debianで自宅ブログサーバーも夢じゃない!なんて書いてみたいところですが、正直動作が遅いですwとりあえず記事の表示自体はhtmlなので軽いですが、管理画面の処理が遅いですね。まあハードのスペック的に仕方のないところですね。まああくまで実験用と割り切れる方か、「それでも玄箱で!」という強者は試してみてくださいw

まず、ApacheMySQL、Sendmailをインストールしておきましょう。
MySQLであらかじめCreate DetabaseしてMT4用のスキーマをつくっておきます。ここでは、スキーマ名を「mt」とします。

MovableType4Betaのアーカイブを展開してここではフォルダを「mt4b」とリネームしてFTPでapacheのドキュメントルートにアップロードします。

mt4b直下の*.cgiのファイルパーミッションを755に変更します。

以上が終わったら、http://my.domain.com/mt4b/mt-check.cgiにアクセスします。

mt-check.cgiはMT4がインストール可能な環境かどうかをチェックします。
ログの一番下段に「You're ready to go!」 と表示されていたらインストール可能です。
必須のモジュール等がインストールされていないようであれば表示に従って設定し、再度チェックしてみましょう。

Mt4kuro001

インストール可能であればhttp://my.domain.com/mt4b/にアクセスし、「Log in to Movable Type」ボタンをクリックします。

Mt4kuro002

インストールウィザードが表示されます。「Begin」をクリックします。

Mt4kuro003

「Continue」をクリックします。

Mt4kuro004

データベースの設定画面です。「MySQL Database」を選択します。

Mt4kuro005_1 

各データベース設定項目を入力します。「Database Name」は先ほど設定した「mt」にします。入力後、「Test Connection」をクリックします。

Mt4kuro006_1

接続テストが完了しますので、「Continue」をクリックします。
ここでエラーが表示された場合はもう一度データベース設定を見直してください。

Mt4kuro007

次はメールに関する設定です。
外部のSMTPサーバを使用するか、Sendmailを使用するかの選択ですが、ここではSendmailを選択してみます。「sendmail Path」には、sendmailのパス、「Mail address for test sending」にはテストメールを送信する宛先のメールアドレスを入力します。入力したら「Send Test Email」をクリックします。

Mt4kuro009

設定が正常であれば、送信が完了しますので「Continue」で次に進みます。
しばらくしてメールをチェックすると「Test email from Movable Type Configuration Wizard」というメールが届きます。

これでmt-config.cgiが自動生成されますが、ボクの環境ではコンフィグファイルが生成できない旨のメッセージが表示されました。ディレクトリに書き込み権限がないということみたいです。

Mt4kuro010

こういう場合は、「 I will create the mt-config.cgi file manually. 」のチェックボックスをクリックすると、コンフィグファイルの内容が表示されますので、コピーして「mt-config.cgi」という名前で保存してmt4b直下にアップロードしてください。

Mt4kuro011

上記を設定した後、http://my.domain.com/mt4b/ にアクセスすると、ユーザー登録画面が表示されるので、必要な情報を入力して「Finish Install」をクリックします。

Mt4kuro012

データベースの設定が行われます。完了したら「Login to Movable Type」をクリックします。

Mt4kuro013

管理画面が表示されます。これでインストールは完了です。

Mt4kuro014

環境上のエラーがなければ、インストールで迷うことはありませんね。
よくできていると思います。

初期でブログが既に一つ設定されているのでいきなり記事を書くこともできますね。とりあえずブログを始めるなら面倒がなくていいです。

しかし、最初に書いたように、玄箱ではかなり動作が遅いです。レンタルサーバー等では軽く動作するんですが、玄箱のパワーではMT4はキツいようですね。

それと、前回の最後のスクリーンショットではMT3のデフォルトテンプレートでの表示になっていますが、これはボクがMT3を4に上書きインストールしたからで、MT4のデフォルトテンプレートは違うデザインになっていました。ご了承ください。

とりあえず、玄箱にも入ったことだし、正式リリースまでのんびり評価してみようかと思います。

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

2007年3月20日 (火)

Interface 2007年4月号

今月のInterfaceでは玄箱が主なネタになっています。

Interface (インターフェース) 2007年 04月号 [雑誌] Book Interface (インターフェース) 2007年 04月号 [雑誌]

販売元:CQ出版
Amazon.co.jpで詳細を確認する

表紙のデザインもそれっぽいですね。
とりあえず買ってざっと読みましたが、組み込み系の環境を玄箱を使って学習しようというコンセプトのようです。なるほど、玄箱はディスプレイやキーボードといった入力機器を通常はつなげることがない端末ですから、組み込み系の開発のイメージに近いですね。

WindowsでCygwinを使ったクロスコンパイル環境の構築は参考になりました。ボクは気が長いのでもっぱらセルフコンパイルですが、クロス環境の実験もやってみたくなりました。
それと、Transcodeを玄箱に入れてビデオサーバーにするという記事も興味深いです。最終的には玄箱内のビデオファイルをテレビで出力する方法まで紹介されているのでちょっと一回やってみたくなりました。

記事の中では玄箱の開け方からハードディスクの設置、初期設定の仕方が写真付きで詳しく説明されています。ボクも以前「とりあえず組み立ててみる」というのを書きましたが、玄箱本体には簡単な説明書しか入ってない上、組み立てにはちょっとしたコツがいるのでこういう記事はありがたいと思います。玄箱の組み立てに困っている方はとりあえず買っておくのもいいかもしれません。

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

2007年2月 7日 (水)

玄箱 - NTPを導入してみる

久々の玄箱ネタです。
今回はNTPを導入してみましょう。

玄箱の内蔵時計は非常に不正確ですが、カーネル2.6にすることで大きく改善されるようです。Genbako kernel collection さん配布のカーネルにはクロック補正が施されているそうです。

しかしもっと正確に時間を合わせないといけない場合は、NTPクライアントを導入してサーバーから定期的に時間を取得して調整するのが有効です。ここでは、Linuxで一般的なNTPクライアントntpdateをインストールして設定してみましょう。

まず、atpでntpdateをインストールします。

---
# atpitude install ntpdate
---

インストールが終わったら、設定ファイルを編集します。

---
# vi /etc/default/ntpdate
---

NTPSERVERSの値を修正します。

===
NTPSERVERS="eagle.center.osakafu-u.ac.jp ntp.nc.u-tokyo.ac.jp ns.hiroshima-u.ac.jp"
===

上記の例では、大阪、東京、広島のサーバーを設定しています。
NTPサーバーのリストを参考にしてなるべく近くの地域のサーバーを設定するとよいです。日本では昔から福岡大学のサーバーがよく使われますが、混雑で困っていらっしゃるようなのでなるべく避けてあげましょう。

設定を保存したら、ntpdateを起動してみましょう。

---
# ntpdate start
---

エラーがなければ正常です。
時刻が正確になっているか確認します。

---
# date
---

ntpdateを定期的に起動して時刻を更新するよう、cronの設定をします。

---
# crontab -e
---

ここでは毎時30分に起動するようにしてみます。

===
30 * * * * /etc/init.d/ntpdate start
===

WEBサーバーを運用する上ではなるべく時刻が正確なほうがいいと思います。ntpdateは手軽に設定できるのでとりあえず設定しておくといいですね。

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

2006年11月27日 (月)

玄箱 - PHPをインストールしてみる

PHPは動的なWEBページを制作するために開発されたプログラミング言語です。データベースと連動するWEBシステムなんかを開発するために適している言語なので今でも人気が高い言語ですね。一般的に企業系の大規模なシステムやバックグラウンド処理が多いシステムなんかはJavaで開発され、中規模な企業系システムはPHPで開発されるケースが多いように思います。

ボクはPerlを好んで使うので、WEBシステムを開発する際はあまりPHPは使いません。しかし、オープンソース系のWEBシステムにはPHPで開発されたもので秀逸なものが数多くあります。それらを使ったりカスタマイズしたりするためにPHPは必要ですね。

というわけで、玄箱にPHPをインストールしてみましょう。ここでは、あらかじめApacheとMySQLがインストールされていることを前提にしています。インストールされていない場合は、ApacheをインストールしてみるMySQLをインストールしてみるを参考にしてインストールしてください。

まず、aptでPHPと関連モジュールをインストールします。

---
# aptitude install php4 php4-mysql php4-pear php4-gd libapache-mod-php4
---

libapache-mod-php4 の設定で、httpd.confを上書きするかどうかを聞いてきますが、ここでは「install the package maintainer's version」を選択して上書きすることにしましょう。

次にphp.ini を編集します。

---
# vi /etc/php4/apache/php.ini
---

mbstringセクションを以下のように変更します。
===
[mbstring]
; language for internal character representation.
mbstring.language = Japanese  ← コメントをはずす

; internal/script encoding.
; Some encoding cannot work as internal encoding.
; (e.g. SJIS, BIG5, ISO-2022-*)
mbstring.internal_encoding = EUC-JP  ← コメントをはずす

; http input encoding.
mbstring.http_input = auto  ← コメントをはずす

; http output encoding. mb_output_handler must be
; registered as output buffer to function
mbstring.http_output = EUC-JP  ← EUC-JPに変更しコメントをはずす

; enable automatic encoding translation accoding to
; mbstring.internal_encoding setting. Input chars are
; converted to internal encoding by setting this to On.
; Note: Do _not_ use automatic encoding translation for
;       portable libs/applications.
;mbstring.encoding_translation = Off

; automatic encoding detection order.
; auto means
mbstring.detect_order = auto  ← コメントをはずす

; substitute_character used when character cannot be converted
; one from another
mbstring.substitute_character = none;  ← コメントをはずす

; overload(replace) single byte functions by mbstring functions.
; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(),
; etc. Possible values are 0,1,2,4 or combination of them.
; For example, 7 for overload everything.
; 0: No overload
; 1: Overload mail() function
; 2: Overload str*() functions
; 4: Overload ereg*() functions
;mbstring.func_overload = 0
===

/var/www/phpinfo.phpを作成して、内容を次のようにします。

===
<? phpinfo(); ?>
===

WEBブラウザで玄箱のIPアドレスにアクセスし、phpinfo.phpにアクセスします。
各種設定が正常であれば、完了です。特にphp.iniで変更したmbstring、mysqlセクションを確認してください。

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

2006年11月11日 (土)

玄箱 - Ruby on Railsをインストールしてみる

最近、RubyRuby on Railsに関する記事をよく目にするようになりました。Rubyコミュニティがにわかに活気づいてきているんでしょうか。いい感じですね。Rubyは日本人が開発したスクリプト言語であり、LLの中でも本格的なオブジェクト指向言語であるので日本で盛り上がって世界をリードしていくのは大変有意義だと思います。

特にRuby on Railsは極めて優秀なフレームワークなので今後のRubyの普及はRailsなくしては語れないんじゃないでしょうか。

と、いうわけでそんなRailsを玄箱いれてみたいと思います。
Railsで開発を行うにはあらかじめMySQLがセットアップされている必要があります。
MySQLがインストールされていない場合は、玄箱 - MySQLをインストールしてみるを参考にインストールしてください。

まずは、rubyをインストールしてみましょう。

---
# aptitude install ruby irb rdoc libopenssl-ruby1.8
# aptitude install ruby1.8-dev
---

インストールが完了したら、動作確認を兼ねてバージョンチェックをしてみましょう。

---
# ruby -v
ruby 1.8.2 (2005-04-11) [powerpc-linux]
---

次に、wgetでrubygemsを取得します。

---
# wget -c http://rubyforge.org/frs/download.php/11289/rubygems-0.9.0.tgz
---

ダウンロード完了後、インストールします。

---
# tar xzvf rubygems-0.9.0.tgz
# cd rubygems-0.9.0
# ruby setup.rb config
# ruby setup.rb setup
# ruby setup.rb install
---

インストールが完了したら、動作確認を兼ねて環境表示をしてみましょう。

---
# gem environment
Rubygems Environment:
  - VERSION: 0.9.0 (0.9.0)
  - INSTALLATION DIRECTORY: /usr/lib/ruby/gems/1.8
  - GEM PATH:
     - /usr/lib/ruby/gems/1.8
  - REMOTE SOURCES:
     - http://gems.rubyforge.org
---

次に、Railsをインストールします。
このコマンドは処理に結構時間がかかりますので根気よく待ちましょう。

---
# gem install rails --include-dependencies
---

Railsのインストールが終了したらgemでmysqlアダプタをインストールしておきます。

---
# gem install mysql
Select which gem to install for your platform (powerpc-linux)
1. mysql 2.7.1 (mswin32)
2. mysql 2.7 (ruby)
3. mysql 2.6 (ruby)
4. mysql 2.5.1 (ruby)
5. Cancel installation
> 2
---

これで、インストール完了です。
試しにRailsプロジェクトを作ってみましょう。

---
# mkdir rails
# cd rails
# mkdir test
# cd test
# rails test
---

エラーが出なければ正常にプロジェクトが作成されています。

試しにscaffoldで簡単なDB表示を作ってみましたが、思ったよりも軽く動きます。開発環境としてもイケそうな感じがしますね。最近はRailsで開発されたシステムもちらほら見るようになったので、玄箱でミニマムなシステムをパッケージしてしまうのもアリかもしれませんね。

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

2006年10月13日 (金)

玄箱 - MUSASHIをつかってみる

前回、玄箱にMUSASHIをインストールしてみたわけですが、さて玄箱のスペックでMUSASHIが満足に使えるものなのかどうか不安なところです。ということで、ちょっと大きなデータをMUSASHIで処理してみましょう。

まず、データをどうするかですがMUSASHIサイトの人工データのリンクを参考にして、データを生成するというのが有効かと思いましたが、ちょっと興味本位で現実に存在するデータをいじってみたくなりました。で、ここではパッと思いついた郵便番号のデータを使おうと思います。全国一括データ約12万件を利用します。

ken_all.lzhをダウンロードして展開すると、ken_all.csvは121693件のデータでした(2006.10.13現在)動作テストするには十分な量だと思います。このCSVに対してテキストエディタの置換などを使ってダブルクォーテーション(")を削除します。そして、一番先頭に次のヘッダを追加します。

===
全国地方公共団体コード,旧郵便番号,郵便番号,都道府県名,市区町村名,町域名,都道府県名,市区町村名,町域名,一町域が二以上の郵便番号で表される場合の表示,小字毎に番地が起番されている町域の表示,丁目を有する町域の場合の表示,一つの郵便番号で二以上の町域を表す場合の表示,更新の表示,変更理由
===

追加したら、文字コードEUCで上書き保存します。
玄箱はデフォルトでEUCですが、他の文字コードを利用している場合は環境に合わせて変更してください。

データの準備ができたら、FTP等で玄箱にアップロードします。

では、玄箱に接続してみましょう。
とりあえずCSVファイルをみてみます。

---
$ head KEN_ALL.CSV
全国地方公共団体コード,旧郵便番号,郵便番号,都道府県名カナ,市区町村名カナ,町域名カナ,都道府県名,市区町村名,町域名,一町域が二以上の郵便番号で表される場合の表示,小字毎に番地が起番されている町域の表示,丁目を有する町域の場合の表示,一つの郵便番号で二以上の町域を表す場合の表示,更新の表示,変更理由
01101,060  ,0600000,ホツカイドウ,サツポロシチユウオウク,イカニケイサイガナイバアイ,北海道,札幌市中央区,以下に掲載がない場合,0,0,0,0,0,0
01101,064  ,0640941,ホツカイドウ,サツポロシチユウオウク,アサヒガオカ,北海道,札幌市中央区,旭ケ丘,0,0,1,0,0,0
01101,060  ,0600041,ホツカイドウ,サツポロシチユウオウク,オオドオリヒガシ,北海道,札幌市中央区,大通東,0,0,1,0,0,0
01101,060  ,0600042,ホツカイドウ,サツポロシチユウオウク,オオドオリニシ(1-19チヨウメ),北海道,札幌市中央区,大通西(1~19丁目),1,0,1,0,0,0
01101,064  ,0640820,ホツカイドウ,サツポロシチユウオウク,オオドオリニシ(20-28チヨウメ),北海道,札幌市中央区,大通西(20~28丁目),1,0,1,0,0,0
01101,060  ,0600031,ホツカイドウ,サツポロシチユウオウク,キタ1ジヨウヒガシ,北海道,札幌市中央区,北一条東,0,0,1,0,0,0
01101,060  ,0600001,ホツカイドウ,サツポロシチユウオウク,キタ1ジヨウニシ(1-19チヨウメ),北海道,札幌市中央区,北一条西(1~19丁目),1,0,1,0,0,0
01101,064  ,0640821,ホツカイドウ,サツポロシチユウオウク,キタ1ジヨウニシ(20-28チヨウメ),北海道,札幌市中央区,北一条西(20~28丁目),1,0,1,0,0,0
01101,060  ,0600032,ホツカイドウ,サツポロシチユウオウク,キタ2ジヨウヒガシ,北海道,札幌市中央区,北二条東,0,0,1,0,0,0
---

データが正常なのを確認したら、MUSASHIのcsv2xtコマンドでxmlTableに変換します。

---
$ csv2xt -F -i KEN_ALL.CSV -o zip.xt
#END# 27942 2006/10/13 11:17:54 "csv2xt -F -i KEN_ALL.CSV -o zip.xt" in=121692 out=121692
---

csv2xtは、名前のとおりCSVファイルをxmlTable形式に変換するコマンドです。
xmlTableはMUSASHIがデータ処理に使うフォーマットです。

さて、かなり時間がかかるに違いないと思いキー入れたらお茶でも淹れようと席を立ちかけたんですが、この処理は10秒程度で終わってしまいました。思ったよりかなり高速です。これはもしかしたら普通に仕事で使えるかも?と期待が出てきたのでお茶はあとまわしにして、処理を続けてみましょう。

zip.xtの中身は以下のようになっています。

---
$ head -25 zip.xt
<?xml version="1.0" encoding="euc-jp"?>
<xmltbl version="1.1">
<header>
<field no="1" name="全国地方公共団体コード"></field>
<field no="2" name="旧郵便番号"></field>
<field no="3" name="郵便番号"></field>
<field no="4" name="都道府県名カナ"></field>
<field no="5" name="市区町村名カナ"></field>
<field no="6" name="町域名カナ"></field>
<field no="7" name="都道府県名"></field>
<field no="8" name="市区町村名"></field>
<field no="9" name="町域名"></field>
<field no="10" name="一町域が二以上の郵便番号で表される場合の表示"></field>
<field no="11" name="小字毎に番地が起番されている町域の表示"></field>
<field no="12" name="丁目を有する町域の場合の表示"></field>
<field no="13" name="一つの郵便番号で二以上の町域を表す場合の表示"></field>
<field no="14" name="更新の表示"></field>
<field no="15" name="変更理由"></field>
</header>
<body><![CDATA[
01101 060__ 0600000 ホツカイドウ サツポロシチユウオウク イカニケイサイガナイバアイ 北海道 札幌市中央区 以下に掲載がない場合 0 0 0 0 0 0
01101 064__ 0640941 ホツカイドウ サツポロシチユウオウク アサヒガオカ 北海道 札幌市中央区 旭ケ丘 0 0 1 0 0 0
01101 060__ 0600041 ホツカイドウ サツポロシチユウオウク オオドオリヒガシ 北海道 札幌市中央区 大通東 0 0 1 0 0 0
01101 060__ 0600042 ホツカイドウ サツポロシチユウオウク オオドオリニシ(1-19チヨウメ) 北海道 札幌市中央区 大通西(1~19丁目) 1 0 1 0 0 0
01101 064__ 0640820 ホツカイドウ サツポロシチユウオウク オオドオリニシ(20-28チヨウメ) 北海道 札幌市中央区 大通西(20~28丁目) 1 0 1 0 0 0
---

ちゃんと変換されているみたいですね。xmlTable形式については他にドキュメントがあるので調べてみることをおススメします。

では次に、集計に必要な項目を抜き出してみます。項目の選択はxtcutを使います。

---
$ xtcut -f 全国地方公共団体コード,郵便番号,都道府県名 -i zip.xt -o test1.xt
#END# 16235 2006/10/13 11:31:10 "xtcut -f 全国地方公共団体コード,郵便番号,都道府県名 -i zip.xt -o test1.xt" in=121692 out=121692
---

test1.xtを確認します。

---
$ head test1.xt
<?xml version="1.0" encoding="euc-jp"?>
<xmltbl version="1.1">
<header>
<field no="1" name="全国地方公共団体コード"></field>
<field no="2" name="郵便番号"></field>
<field no="3" name="都道府県名"></field>
</header>
<body><![CDATA[
01101 0600000 北海道
01101 0640941 北海道
---

全国地方公共団体コード、郵便番号、都道府県名が切り出されています。
xtcutも2~3秒で終わりました。非常に高速です。

次に、都道府県ごとの郵便番号数を集計してみます。
集計はxtaggで行います。

---
$ xtagg -k 都道府県名 -f 郵便番号:郵便番号数 -c cnt -i test1.xt -o test2.xt
#END# 23059 2006/10/13 11:41:29 "xtagg -k 全国地方公共団体コード -f 郵便番号:郵便番号数 -c sum -i test1.xt -o test2.xt" in=121692 out=1973
---

これも2秒程度で終わりました。
中身は

---
$ head -20 test2.xt
<?xml version="1.0" encoding="euc-jp"?>
<xmltbl version="1.1">
<header>
<field no="1" name="全国地方公共団体コード"></field>
<field no="2" name="郵便番号数"></field>
<field no="3" name="都道府県名" sort="1"></field>
</header>
<body><![CDATA[
23101 6876 愛知県
38201 1734 愛媛県
08201 2818 茨城県
33201 2182 岡山県
47201 790 沖縄県
03201 1934 岩手県
21201 3340 岐阜県
45201 876 宮崎県
04101 3281 宮城県
26101 6657 京都府
43201 1865 熊本県
10201 1502 群馬県
---

こんな感じですね。ちょっとわかりやすくするためにxtsortで郵便番号数で降順ソートしてみましょう。

ソートのついでに全国地方公共団体コードはいらないので削除したいです。xtcutで郵便番号数と都道府県名を切り出します。

これらの処理を一括して行いたい場合はパイプを使って記述します。シェルなどで高度な集計プログラムを作る場合は、このパイプでの一括処理が強力です。

ソートと項目選択の記述は以下のようになります。

---
$ xtsort -k 郵便番号数%nr -i test2.xt | xtcut -f 郵便番号数,都道府県名 -o test3.xt
---

test3.xtは以下のようになります。

---
$ head -20 test3.xt
<?xml version="1.0" encoding="euc-jp"?>
<xmltbl version="1.1">
<header>
<field no="1" name="郵便番号数" sort="1" numeric="1" reverse="1"></field>
<field no="2" name="都道府県名"></field>
</header>
<body><![CDATA[
8205 北海道
6876 愛知県
6657 京都府
5351 新潟県
5200 兵庫県
3909 福島県
3732 大阪府
3529 千葉県
3340 岐阜県
3333 東京都
3281 宮城県
3256 福岡県
3237 富山県
---

これで、「全国郵便番号が多い都道府県ランキング」ができましたw
データをみると、北海道が一位ですね。やはり土地面積が大きいからでしょうか。単純に考えれば面積が大きい県ほど郵便番号が多いと思われますが、面積が小さくても人口密度が高くて居住区画の割り方が細かいところは郵便番号が多くなるはず。大阪や東京が高い順位にきているのはそのせいかもしれません。

都道府県別の土地面積や人口、人口密度などのデータを組み合わせれば、面白い分析ができるかもしれません。単にスピードテストのつもりで郵便番号データを使用しましたが、やってみると発見があるものですな。これがデータ分析の面白いところだと思います。

さて本題に戻すと、玄箱でのMUSASHIは正常に動作し、しかも処理速度は実用に耐えるレベルであるということがわかりました。これはほんとに仕事で使えそうですねえ。でもボク自身MUSASHIは勉強中なのではやくいっちょまえに使えるようになってブログでもMUSASHIを使ったデータマイニングを紹介できればいいなあと思っています。
ガンバルガー!

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

2006年10月 7日 (土)

玄箱 - MUSASHIをインストールしてみる

MUSASHIは、データマイニングで必要なデータ処理を行うためのコマンド群です。
最近データマイニングを勉強しているので、データマイニングツールがほしいと思っているんですが、データマイニングツールってとても高価なのです。もうボクには当然買えませんというような額なんですが、このMUSASHIはオープンソースで、且つボクの好きなコマンドライン操作でもってデータ処理ができるというすばらしいソフトです。

MUSASHIはLinux環境で動作するため、玄箱にインストールしてみようかと思いました。しかし大量データ処理用のソフトなので、果たして玄箱のハードスペックで足りるのかどうか疑問です。

そんなこともあって、最初Cygwinに入れてみたんですが、文字コードの問題等でちょっと使用感が悪いなという感じだったので、まあどれくらい処理してくれるものか気にもなったので試しに玄箱Debian環境にインストールしてみることにしました。

MUSASHIのインストールにはncursesとlibxml2が必要です。

nucursesがない場合はインストールします。

---
# aptitude install ncurses
---

次にlibxml2をインストールします。

---
# aptitude install libxml2 libxml2-dev
---

コンパイルにはC++を使うので、ない場合はインストールしておきましょう。

---
# aptitude install g++
---

http://musashi.sourceforge.jp/
よりMUSASHIとモジュール類の最新版をダウンロード。
現行では

musashi-core-1.0.4.tar.gz
musashi-man-20041206.tar.gz
musashi-module-20041206.tar.gz
musashi-scenario-20041206.tar.gz
musashi-check-20041206-2.tar.gz

となっています。

まず、coreを展開してconfigure make make installします。
---
# tar zxvf musashi-core-1.0.4.tar.gz
# cd musashi-core-1.0.4
# ./configure
# make
# make install
---

setdocenc.shを実行してからconfigure、make、install。
---
$ ./setdocenc.sh
$ ./configure
$ make
$ make install
---

インストール後コマンドヘルプを表示して文字出力を確認します。

---
# xtcut -h
NAME:
xtcut version: 1.2 項目の選択

USAGE:
xtcut -f 抜き出す項目名リスト [-r] [-i 入力ファイル名] [-o 出力ファイル名] [-z] [-t]

SUMMARY:
項目リストで指定した項目を、その順番で選択する

OPTION:
-r: 項目削除
-z: 標準出力の圧縮
-t: plain text

EXAMPLES:
xtcut -f 顧客,数量,金額 -i dat.xt -o rsl.xt
xtcut -f 顧客,数量,金額 -r -i dat.xt -o rsl.xt

INFORMATION: <http://musashi.sourceforge.jp>
BUG  REPORT: <musashi-users@lists.sourceforge.jp>

#
---

次に、manをインストールします。

---
# tar zxvf musashi-man-20041206.tar.gz
# cd musashi-man-20041206
# ./Install.sh
---

次にmoduleをインストールします。

---
# tar zxvf musashi-module-20041206.tar.gz
# cd musashi-module-20041206
# ./Install.sh
---

インストールが終わったらsampleディレクトリのサンプルを実行してみます。

---
# cd sample
# ./abc.sh
# ./mvavg.sh
---

sample/outdatに実行結果が出力されるので、確認します。

次に、scenarioをインストールします。

---
# tar zxvf musashi-scenario-20041206.tar.gz
# cd musashi-scenario-20041206
# ./Install.sh
---

テンプレートスクリプトをsampleにコピー

---
# ./InstallTmp.sh
---

サンプルを実行してみます。

---
# cd sample
# ./mssRFM_tmp.sh
---

最後に各コマンドの動作確認スクリプトmusashi-checkの実行です。

---
# tar zxvf musashi-check-20041206.tar.gz
# cd musashi-check-20041206
---

check.shを実行します。これによりほぼ全てのMUSASHIスクリプトについて動作チェックが行われます。

---
# ./check.sh
---

チェック終了後に同ディレクトリに生成されるlogファイルに対してNGやERRがないか検索します。

---
# cat log | grep -E 'ERR|NG'
---

なければ、コマンドはすべて正常に実行されています。
エラーがあれば、同ディレクトリのdiffListファイル内のエラー内容をチェックしてみてください。

エラーがなければ終了です。

サンプルコマンドを実行したりしてみましたが、思ったより処理速度が速いです。データ保存に十分な空き容量さえあれば玄箱でもデータマイニング作業ができるかもしれません。少なくとも、お勉強のための環境ということなら十分だと思いました。

企画をお客様に提案するときなんかでも、提案の根拠となるデータは必要で、そのためのデータ分析ってのがけっこう成功の鍵になってたりするわけです。データの分析手法も様々あるんですが、分析のためのデータ整理にはけっこう手間がかかるんですよね。

MUSASHIみたいにデータマイニングに特化したソフトで大量のデータを素早く処理できるのは仕事上かなりありがたいです。MUSASHIも触り始めたばかりなのでこれからなんですが、もう少し勉強してから記事にもしていこうと思います。

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

2006年10月 2日 (月)

玄箱 - 日本語環境を構築してみる

さて、今後何かといじったりするのに便利だと思うので日本語の入出力ができるようにしておきましょう。

最近の流行ではUTF-8みたいなんですが、過去の資産とか今後やりたいこととか後からめんどくさいことになったらいやだなとかいろいろありますので、とりあえずスマートに使うためEUCで日本語環境をつくってみます。UTF-8が必要になったら後から考えるということで。

まずは必要なモジュールをインストールします。

---
# aptitude install language-env canna freewnn-jserver skkserv canna-utils
---

Configuring Locales画面ではja_JP.EUC-JPを選択し<ok>します。
defaultもja_JP.EUC-JPを選択して<ok>します。

dpkg-reconfigure で再設定します。

---
# dpkg-reconfigure -plow locales
---

Configuring Locales画面ではja_JP.EUC-JPを選択し<ok>します。
defaultもja_JP.EUC-JPを選択して<ok>します。

ルートからユーザにチェンジし、ユーザの文字コードを設定します。

---
$ user-ja-conf
---

質問にはほとんどデフォルトで答えておきます。
漢字変換はCannnaにしておきます。

ルートに戻って、user-ja-confで指定された推奨パッケージをインストールします。

---
# aptitude install ja-trans, jless, kterm, egg, emacs21, xemacs21-mule-canna-wnn
---

ついでにjvimをインストールしときます。
---
# aptitude install jvim-canna
---

jvimを規定のエディタにしたいので.bashrcに設定を追加します。

.bashrc
===
# 標準エディタを vi にする。Debian Policy Manual 参照
alias vi='/usr/bin/jvim'
EDITOR=vi
export EDITOR
===

いったんログアウトして再接続すると、設定が有効になります。

ボクはemacsよりviが好きなので上記の設定でviコマンドをjvimに代替しておきました。
これでviと打つとjvimが起動し、日本語表示がばっちりなわけです。

とりあえずこれで日本語化は終わりました。
コマンドラインのレベルで日本語を扱うことは少ないかと思いますが、後日何かやってみようと思います。

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

2006年9月25日 (月)

玄箱 - MySQLをインストールしてみる

前回Apacheをインストールしましたが、Apacheを利用してCGIを開発したり、いろいろなWEBサービスをインストールしてみたりする場合に何かとお世話になるMySQLをインストールしてみましょう。

まずはaptでバイナリをインストールします。

---
# aptitude install mysql-server-4.1
---

MySQL Clientバイナリとかは結構大きいのでダウンロードに少し時間がかかるかもしれません。

正常にインストールできたら、rootのパスワードを設定します。

---
# mysqladmin -u root password '[パスワード]'
---

[パスワード]の部分は任意のパスワードと読み替えてください。

次に、mysqlにログインしてroot権限の設定を行います。

---
# mysql -u root -p
Enter Password: [パスワード]
mysql> GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY '[パスワード]'' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY '[パスワード]' WITH GRANT OPTION;
mysql> \q
---

次に、/etc/mysql/my.cnfを編集します。

まずは、以下の箇所(赤字)を追加します。

===
[mysqld]
#
# * Basic Settings
#
user  = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket  = /var/run/mysqld/mysqld.sock
port  = 3306
basedir  = /usr
datadir  = /var/lib/mysql
tmpdir  = /tmp
language = /usr/share/mysql/english
skip-external-locking
default-character-set = ujis
===

===
[mysql]
#no-auto-rehash # faster start of mysql but no tab completition
default-character-set = ujis
===

デフォルトのキャラクターセットをujis(EUC)にすることで、コンソール上での出力がEUCになります。

次にbind-addressの設定

===
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
#bind-address  = 127.0.0.1
===

bind-addressをコメントすることで、外部にMySQLのポートを公開します。
これは、ネットワーク上の端末からMySQL Toolsなどでアクセスする場合に必要で、その必要がない場合はセキュリティ上公開しないほうがいいでしょう。

また、特定の端末のみアクセスを許可したい場合は、端末のIPアドレスをbind-addressに追加することでできます。

ここでは一応bind-addressをコメントアウトします。

変更した/etc/mysql/my.cnfを保存した後、MySQLを再起動します。

---
# /etc/init.d/mysql restart
---

これでOKです。

MySQLをインストールした時点でDBD::MySQL Perlモジュールもインストールされています。これでApache+Perl+MySQLなCGIなんかも開発できる環境になりました。

MySQLの操作はコンソール上で操作する他、前述のMySQL Tools、Webminをインストールしてwebmin-mysqlを入れるなどすれば外部端末でも操作できます。ボクはMySQL Toolsがおススメです。

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

2006年9月14日 (木)

玄箱 - Apacheをインストールしてみる

しばらく玄箱関係やってなかったですね。
ちょっとベタなんですがApacheのインストールをやってみましょう。

まず、普通にaptでインストールします。

---
# aptitude install apache
---

まあ、これでLAN内で使うWEBサーバーとしては普通に動きます。
外部公開用のWEBサーバーにしたい場合は、/etc/httpd.confのServerAdminやServerNameを変更する必要があります。あと、PerlやPHPなどのCGIを利用する場合にもディレクトリエイリアスの設定等が必要ですが、それらは他のサイトに丁寧に書かれた情報がたくさんありますので、そちらを参考にしてください。

これで終わりだなあと思っていたところ、ある日試みにcharsetをutf8にしたHTMLをアップロードして表示してみたところ、見事に文字化けしました。なんでかなあと思っていろいろ調べてみましたが、結局よくわからずじまい。ともかく、UTF-8のサイトくらい表示してもらわないと困るので解決方法を探した結果、mod_html_metaというapacheモジュールがあることがわかりました。

mod_html_metaはHTMLのmeta要素のhttp-equiv属性を解釈し、文字コードをセットするモジュールのようです。これは、WEBサーバとしては当たり前の機能だとばかり思ってたんですが、実際はWEBサーバがそのような振る舞いをしなくてはならないという規定はないそうです。

じゃあとりあえずこれをインストールすればいいのかな。ということでやってみました。
まず、モジュールのmakeにはapxsが必要なのでapache-devをインストールします。

---
# aptitude install apache-dev
---

次に、mod_html_charsetを配布サイトからダウンロードして展開します。

---
# wget http://www.yoshidam.net/mod_xml_charset-0.2.1.tar.gz
# tar xzvf mod_xml_charset-0.2.1.tar.gz
---

展開すると、apache1.3とapache2.0というディレクトリができます。ここではapache1.3系なのでapache1.3ディレクトリに移動します。

---
# cd apache1.3
---

apxsをつかって、モジュールをビルド&インストールします。

---
# /usr/bin/apxs -c mod_html_meta.c
# /usr/bin/apxs -i -a mod_html_meta.so
---

httpd.confを修正します。

---
# vi /etc/apache/httpd.conf
---

apxsによって、mod_html_meta関連の設定が追加されています。その、

AddModule mod_html_meta.c

という記述の下に以下を追加します。

===
<IfModule mod_html_meta.c>
     HTMLMeta on
     AddHTMLMeta html
</IfModule>

===

/usr/lib/apache/1.3/900mod_html_meta.info を作成します。

---
# touch /usr/lib/apache/1.3/900mod_html_meta.info
# vi /usr/lib/apache/1.3/900mod_html_meta.info
---

内容を以下のようにします。

===
LoadModule: html_meta_module /usr/lib/apache/1.3/mod_html_meta.so
===

Apacheを再起動します。

---
# /etc/init.d/apache restart
---

これで、再度UTF-8のページにアクセスしたところ、正常に表示されました。

さて、これでDynamic DNSでも使えば外部にもホームページが公開できてしまうわけですね。もちろんセキュリティには十分配慮する必要がありますが、玄箱+HDDの約3万円程度でサーバーが立てれるというのはとてもありがたい話です。しかも、レンタルサーバではできない機能も実装し放題なんですよね。いい世の中になりましたなあ。

さて、そんなわけで次回からいろいろ趣味の開発向けのものを入れて行きましょう。
MySQLでも入れてみたいと思います。

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

2006年8月23日 (水)

玄箱 - カーネル2.6にしてみる

玄箱Debianはカーネル2.4なんで2.6にしたいところなんですが、普通の方法ではカーネルアップデートはできません。
でもその方法を編み出している方がいらっしゃいます。ほんとすごい人たちですよねえ。

ここでは、http://www.genbako.com/install-new-kernel.sjis.txtの方法に従ってカーネルを2.6にしてみます。カーネル2.6にするにはsargeが必須です。玄箱 - sargeにアップデートしてみるとか参考にしてsargeにしてください。

まずは、wgetでカーネルイメージとモジュールをダウンロードしましょう。

---
# wget http://www.genbako.com/kernelimage-2.6.18-rc2-kuroHG.tgz
# wget http://www.genbako.com/modules-2.6.18-rc2-kuroHG.tgz
---

玄箱と玄箱HGのイメージが違うので注意してください。
ここではHGのやつをダウンロードしています。
2.6.18-rc2は現時点で最新バージョンです。

次に/bootに移動します。

---
# cd /boot
---

ここでカーネルイメージを展開します。

---
# tar xzvf /home/user1/kernelimage-2.6.18-rc2-kuroHG.tgz
---

再起動します。

---
# reboot
---

再起動後接続すると、カーネルバージョンが以下のようになっていることを確認します。

---
Linux ATOLL 2.6.18-rc2-kuroboxHG #10 Fri Jul 21 21:21:35 JST 2006 ppc GNU/Linux
---

module-init-toolsをインストールします。

---
# aptitude install module-init-tools
---

/lib/modulesに移動して、カーネルモジュールを展開します。

---
# cd /lib/modules
# tar xzvf /home/user1/modules-2.6.18-rc2-kuroHG.tgz
---

depmodを実行します。

---
# depmod -a
---

これでカーネル2.6完了です。
イメージを展開するだけなんで簡単ですよねえ。ありがたやありがたや。

次回から玄箱をサーバ用途で使うための構築方法を紹介できたらいいなあくらいに思ってます。

[以下はatab0uさんのコメントをうけて2006.10.3に追記しました]

カーネル2.6化後の玄箱では、EM化するための例のコマンド

---
# echo -n "NGNG" > /dev/fl3
---

は効かなくなるようです。(atab0uさんご指摘ありがとうございます)
いろいろ調べた結果玄箱の覚書さんに手法が掲載されていましたので、参考に実証してみました。(実証環境は本記事で導入したカーネル2.6.18-rc2です)

カーネル2.6化後のEM化は以下のコマンドになります。

---
# echo -n "NGNG" > /dev/mtdblock2
# reboot
---

いつものことですがDHCPのないネットワークでEMモードになった場合、IPアドレスは192.168.11.150などになっていることがありますので注意しましょう。

どうしてもIPアドレスが探れない場合は、玄箱のファームアップデートソフトを起動するとEMモードの自動検出が行われてIPがわかるかもしれません。

EMからの復旧は以下のコマンドになります。

---
# echo -n "OKOK" > /dev/mtdblock2  
# echo -n "OKOK" > /dev/fl3
# reboot
---

EM化コマンドでは意識がなかったんですが、/dev/fl3もいつのまにかNGNGになってたので/dev/mtdblock2への書き込みだけでなく、/dev/fl3への書き込みも必要でした。

rebootコマンド発行後、ハードディスクはスピンダウンしますが、Powerランプが点滅したままで電源がうまく落ちないことがあります。
その場合は、電源長押しやコンセントを抜くなどして落としましょう。

また、玄箱の覚書さんのサイトに紹介されている「リセットボタンを押しながら電源を入れるとLEDが全て点滅してEMモードになる」という手法も試してみましたが、ボクの環境ではLEDは点滅しましたがうまくEMになりませんでした。こちらは環境によって微妙なのかもしれませんね。

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

2006年8月13日 (日)

玄箱 - 通信環境を整える

Debianのアップグレードも終わったので、今度はログイン環境などを整えていきます。

まず、telnetで接続して、tmp-kunアカウントでログインします。

---
Debian GNU/Linux 3.1 KURO-BOX
KURO-BOX login: tmp-kun
Password: tmp-kun
---

rootになります。

---
$ su root
Password: root
# id
uid=0(root) gid=0(root) groups=0(root)
---

idコマンドでもちゃんとrootになっているのが確認できますね。
次に、adduserで新しいユーザーを追加します。
アカウントはここでは user1 としておきますが、好きなアカウントを設定してください。

---
# adduser
Enter a username to add: user1
Adding user `user1'...
Adding new group `user1' (1001).
Adding new user `user1' (1001) with group `user1'.
Creating home directory `/home/user1'.
Copying files from `/etc/skel'
Enter new UNIX password: [パスワード]
Retype new UNIX password: [パスワード]
passwd: password updated successfully
Changing the user information for user1
Enter the new value, or press ENTER for the default
        Full Name []: Default User
        Room Number []:
        Work Phone []:
        Home Phone []:
        Other []:
Is the information correct? [y/N] y
---

passwdコマンドでrootのパスワードも変更しておきます。
rootなのでわかりにくいパスワードがいいですね。

---
# passwd
Enter new UNIX password: [パスワード]
Retype new UNIX password: [パスワード]
passwd: password updated successfully
---

ここで、rootとtelnetをexitしていったん接続を終了します。
そして、ふたたびtelnet接続して、今度は新しく作ったuser1でログインしてみます。

---
Debian GNU/Linux 3.1 KURO-BOX
KURO-BOX login: user1
Password: user1
---

rootになります。

---
$ su root
Password: [パスワード]
# id
uid=0(root) gid=0(root) groups=0(root)
---

tmp-kunを削除します。

---
# deluser tmp-kun
Removing user `tmp-kun'...
done.
# rm -rf /home/tmp-kun
---

現在、ホスト名はKURO-BOXとなっていますが、せっかくなのでこれも好きな名前に変更してみましょう。ごく個人的な趣味でATOLLと名づけます。

---
vi /etc/hostname
---

===
ATOLL  ← KURO-BOXの記述を削除して新しい名前に変更
===

hostsのホスト名も編集します。

---
vi /etc/hosts
---

===
127.0.0.1       localhost
192.168.1.100    ATOLL ← KURO-BOXの記述を削除して新しい名前に変更
===

次にSSHをインストールします。

---
# aptitude install ssh
---

質問にはすべてデフォルトで答えてOKです。

コンパイル環境を整えるためにgccもインストールしておきましょう。

---
# aptitude install gcc
Reading Package Lists... Done
Building Dependency Tree
Reading extended state information
Initializing package states... Done
Reading task descriptions... Done
The following NEW packages will be automatically installed:
  binutils cpp cpp-3.3 gcc-3.3 libc6-dev linux-kernel-headers
The following packages have been kept back:
  dhcp-client
The following NEW packages will be installed:
  binutils cpp cpp-3.3 gcc gcc-3.3 libc6-dev linux-kernel-headers
0 packages upgraded, 7 newly installed, 0 to remove and 1 not upgraded.
Need to get 9980kB of archives. After unpacking 32.2MB will be used.
Do you want to continue? [Y/n/?] Y
---

とても重要なコマンド、sudoもインストールしときます。

---
# aptitude install sudo
---

visudoでsudoユーザを追加します。

---
# visudo
---

===
# /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.
#

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL) ALL
user1   ALL=(ALL) ALL     ← この一行を追加
===

visudoで起動するエディタはviではなくnanoになっています。
nanoはviと違って書き込みは[Ctrl] + oです。

File Name to Write: /etc/sudoers.tmp

と聞かれるので、sudoers.tmpをsudorsに修正してEnter。

File exists, OVERWRITE ?y

とします。

終了は[Ctrl] + x。

次にFTPサーバ環境。
個人的にProFTPdはあんまり使わないので、違うものに入れ替えます。
ここではvsftpdを採用します。

---
# aptitude remove proftpd
# aptitude install vsftpd
---

/etc/vsftpd.confを編集します。

---
# vi /etc/vsftpd.conf
---

以下の部分を変更します。

===
anonymous_enable=NO
local_enable=YES            ← コメントをはずす
write_enable=YES           ← コメントをはずす
local_umask=022             ← コメントをはずす
ascii_upload_enable=YES     ← コメントをはずす
ascii_download_enable=YES   ← コメントをはずす
===

何かとよく使うwgetもインストールしておきましょう。

---
# aptitude install wget
---

ここでいったんexitして、telnetを終了します。
そして今度はSSHで接続してみましょう。

(*TeraTermを使用する場合、規定の文字コードをEUCにして、[setup]->[SSH Authentication] の keybord-interactive(SSH2) をチェックしておかないと正しくログインできない場合があります。)

SSHでログインできたら、以後telnetを開放しておく必要はないと思います。
telnetを止めるには/etc/inetd.confを編集します。

---
$ sudo vi /etc/inetd.conf
---

===
#telnet          stream  tcp     nowait  root    /usr/sbin/tcpd  /usr/sbin/in.telnetd
===

smtpも必要ないならここでコメントアウトしておいてもいいかもしれませんね。

とりあえずここまでで再起動してみましょう。

---
$ sudo reboot
---

再起動後はもうtelnetではログインできなくなってるし、ホスト名も変わっているはずです。

今日はここまで。
次は何しようか考えてませんが、思いついたらやります。

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

2006年8月 3日 (木)

玄箱 - sargeにアップデートしてみる

さて、今日は気になるネタがなかったので玄箱やります。
前回Debianを入れたので今日はアップデートしてみましょう。

ボクはstableで長く使ってたんですが、最近はどこみてもsarge使ってますね。
stableのパッケージリストに慣れてるからな~と思いつつ、ここはsargeでやってみます。

まず、TELNETでログインした後、rootになります。

---
$ su root
Password: root
---

初期のパスワードはrootのようです。
次に、aptをアップデートしてみましょう。

---
# apt-get update
Hit ftp://ftp.dti.ad.jp woody/main Packages
Hit ftp://ftp.dti.ad.jp woody/main Release
Hit ftp://ftp.dti.ad.jp woody/contrib Packages
Hit ftp://ftp.dti.ad.jp woody/contrib Release
Hit ftp://ftp.dti.ad.jp woody/non-US/main Packages
Get:1 http://security.debian.org woody/updates/main Packages [342kB]
Hit ftp://ftp.dti.ad.jp woody/non-US/main Release
Hit ftp://ftp.dti.ad.jp woody/non-US/contrib Packages
Hit ftp://ftp.dti.ad.jp woody/non-US/contrib Release
Hit ftp://ftp.dti.ad.jp woody/main Sources
Hit ftp://ftp.dti.ad.jp woody/main Release
Hit ftp://ftp.dti.ad.jp woody/contrib Sources
Hit ftp://ftp.dti.ad.jp woody/contrib Release
Hit ftp://ftp.dti.ad.jp woody/non-US/main Sources
Hit ftp://ftp.dti.ad.jp woody/non-US/main Release
Hit ftp://ftp.dti.ad.jp woody/non-US/contrib Sources
Hit ftp://ftp.dti.ad.jp woody/non-US/contrib Release
Get:2 http://security.debian.org woody/updates/main Release [116B]
Get:3 http://security.debian.org woody/updates/contrib Packages [2784B]
Get:4 http://security.debian.org woody/updates/contrib Release [119B]
Fetched 345kB in 8s (41.5kB/s)
Reading Package Lists... Done
Building Dependency Tree... Done
#
---

デフォルトではwoodyになってますね。
これをsergeに変更するには、/etc/apt/source.list を修正します。

---
# vi /etc/apt/sources.list
---

===
# See sources.list(5) for more information, especialy
# Remember that you can only use http, ftp or file URIs
# CDROMs are managed through the apt-cdrom tool.

# Security updates for "stable"
deb http://security.debian.org woody/updates main contrib
#deb http://security.debian.org testing/updates main contrib

# Woody
#deb http://ftp2.de.debian.org/pub/debian woody main contrib
#deb http://ftp2.de.debian.org/pub/debian-non-US woody/non-US main contrib

deb ftp://ftp.dti.ad.jp/pub/Linux/debian woody main contrib
deb ftp://ftp.dti.ad.jp/pub/Linux/debian-non-US woody/non-US main contrib

# Sources
#deb-src http://ftp2.de.debian.org/pub/debian woody main contrib
#deb-src http://ftp2.de.debian.org/pub/debian-non-US woody/non-US main contrib
deb-src ftp://ftp.dti.ad.jp/pub/Linux/debian woody main contrib
deb-src ftp://ftp.dti.ad.jp/pub/Linux/debian-non-US woody/non-US main contrib
===

この"woody"というのを"sarge"に変更します。
viで :%s/woody/sarge/g として一括置換してもいいですね。

できたら、もう一度aptをアップデートしてみます。

---
# apt-get update
Get:1 ftp://ftp.dti.ad.jp sarge/main Packages [3276kB]
Get:2 http://security.debian.org sarge/updates/main Packages [342kB]
Get:3 http://security.debian.org sarge/updates/main Release [113B]
Get:4 http://security.debian.org sarge/updates/contrib Packages [623B]
Get:5 http://security.debian.org sarge/updates/contrib Release [116B]
Get:6 ftp://ftp.dti.ad.jp sarge/main Release [98B]
Get:7 ftp://ftp.dti.ad.jp sarge/contrib Packages [48.4kB]
Get:8 ftp://ftp.dti.ad.jp sarge/contrib Release [101B]
Get:9 ftp://ftp.dti.ad.jp sarge/non-US/main Packages [20B]
Get:10 ftp://ftp.dti.ad.jp sarge/non-US/main Release [105B]
Get:11 ftp://ftp.dti.ad.jp sarge/non-US/contrib Packages [20B]
Get:12 ftp://ftp.dti.ad.jp sarge/non-US/contrib Release [108B]
Get:13 ftp://ftp.dti.ad.jp sarge/main Sources [1322kB]
Get:14 ftp://ftp.dti.ad.jp sarge/main Release [97B]
Get:15 ftp://ftp.dti.ad.jp sarge/contrib Sources [24.8kB]
Get:16 ftp://ftp.dti.ad.jp sarge/contrib Release [100B]
Get:17 ftp://ftp.dti.ad.jp sarge/non-US/main Sources [20B]
Get:18 ftp://ftp.dti.ad.jp sarge/non-US/main Release [104B]
Get:19 ftp://ftp.dti.ad.jp sarge/non-US/contrib Sources [20B]
Get:20 ftp://ftp.dti.ad.jp sarge/non-US/contrib Release [107B]
Fetched 5015kB in 23s (211kB/s)
Reading Package Lists... Done
Building Dependency Tree... Done
#
---

では、sargeにアップグレードします。
アップグレードのコマンドは以下になります。

---
# apt-get dist-upgrade
---

質問事項にはすべてデフォルトで答えるのがいいでしょう。
詳しい人は個々に設定するんでしょうが、ボクはめんどいので全部デフォルトです。

途中に

---
Restarting services possibly affected by the upgrade:
  inetd: stopping...starting...done.
  proftpd: stopping...starting...done.
  cron: stopping...starting...done.
  exim: stopping...starting...FAILED! (1)

The following services failed to start: exim
---

こんな感じでeximの終了が失敗するかもしれませんが、気にしないでください。
あと、気になるところは、haltの設定はかならずデフォルトで通過してください。

ちょっと時間がかかりますが、問題なく終了するはずです。
やっぱりaptは便利だなあ。

次回は、ユーザアカウントをつくったりSSHを入れたりと諸々の設定をしてみます。

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

2006年7月30日 (日)

玄箱 - Debian Linuxをインストールしてみる

さて、玄箱不定期連載2回目です。
前回組み立てた玄箱にDebian Linuxをインストールします。
これを解説しているサイトはとても多いんですが、導入の際に玄箱デフォルトのパーティションでやってるところがほとんどです。デフォルトではDebianをインストールするパーティションは2GBほどしかないので、DBやアプリをいっぱいインストールしたい人には不向きかもしれません。そこで、ここではファームアップデートを行わず、自力でパーティションを切ってからDebianをインストールしてみましょう。
パーティションの切り方は、玄箱のファームアップデートスクリプトを参考にさせていただきました。

まずは、玄箱をLANに繋いで電源をいれます。
玄箱が正常に起動したら、IPアドレスを探します。多くの場合は192.168.11.150かもしれません。しかしDHCPルーターなんかを使っている場合はDHCPからIPを取得している可能性があります。コマンドラインから

---
# ping kuro-box
---

とすれば、IPが判明するかもしれません。unknown hostが返ってくるようであれば、玄箱付属のファームアップデートで検出すれば、IPが表示されると思います。
ここでは、192.168.11.150で検出されたとしましょう。

Tera Termなどのソフトを使って、192.168.11.150にtelnetでアクセスします。

---
Kuroutoshikou KURO-BOX/HG (IESHIGE)
Linux/ppc 2.4.17_mvl21

KURO-BOX-EM login:
---

というような表示がされます。
玄箱HGの場合、ログインアカウントは root、パスワードは kuroadminです。

---
BusyBox v0.60.5 (2003.07.30-12:03+0000) Built-in shell (ash)
Enter 'help' for a list of built-in commands.

#
---

このコンソールはEMモードと呼ばれていて、玄箱に内臓されているフラッシュROMのLinuxです。
HDDにインストールしたOSがぐちゃぐちゃになっても、EMモードを立ち上げて復旧させればいいわけですね。
こういうのはとても便利だと思います。

ファームアップデート後の玄箱はEMモードではなく、HDDにインストールされたLinuxから起動しています。
もしファームアップデートを行ってしまった人はEMモードにしてください。
EMモードにするためのコマンドは、(以後、入力は赤字で記載します)

---
# echo -n 'NGNG' > /dev/fl3
# reboot
---

再起動後にtelnet接続すれば、EMモードになってるはずです。
目印は、ログイン画面の表示が「KURO-BOX-EM」になっていること。

では、ここからパーティションを削除します。

---
# /sbin/mfdisk -e /dev/hda
---

と入力してください。

---
# /sbin/mfdisk -e /dev/hda
delete partition 1
delete partition 2
delete partition 3
create partitions...
deleate all partitions.
The partition table has been altered!

Syncing disks.
---

こんな感じになったと思います。これでパーティションが削除されました。

次に新しいパーティションを作ります。
ハードディスクの容量は250GBでやっています。

---
# /sbin/mfdisk -c /dev/hda

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-30401, default 1): [なにも入力せずenter]
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-30401, default 30401): +150000M

Command (m for help):
---

上記の処理で、Debianをインストールするためのパーティションを作成しました。
First cylinderの値はデフォルトの1、そこから150GB分のシリンダーをDebianのために予約しました。

次は同じようにして、スワップパーティションを作成します。

---
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (12750-30401, default 12750): [なにも入力せずenter]
Using default value 12750
Last cylinder or +size or +sizeM or +sizeK (12750-30401, default 30401): +2000M

Command (m for help):
---

スワップは2GB予約しました。

次に、残りの全ての領域をデータ保存用パーティションとして割り当てます。
本来は、このパーティションが玄箱をNASで使う場合のデータ保存領域になります。

---
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (14025-30401, default 14025): [なにも入力せずenter]
Using default value 14025
Last cylinder or +size or +sizeM or +sizeK (14025-30401, default 30401): [なにも入力せずenter]
Using default value 30401

Command (m for help):
---

これで3つのパーティションが予約できました。
次はこの中の第2パーティションをスワップとして予約します。

---
Command (m for help): t
Partition number (1-4): 2
Hex code (type L to list codes): 82
Changed system type of partition 2 to 82 (Linux swap)
---

Hex code 82というのがLinux swapなんですね。
ここまでのコマンドpで設定を確認しましょう。

---
Command (m for help): p

Disk /dev/hda: 255 heads, 63 sectors, 30401 cylinders
Units = cylinders of 16065 * 512 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/hda1             1     19123 153605466   83  Linux
/dev/hda2         19124     19378   2048287+  82  Linux swap
/dev/hda3         19379     30401  88542247+  83  Linux

Command (m for help):
---



次に、予約したパーティションをwriteしてパーティションを書き込みます。

---
Command (m for help): w
The partition table has been altered!

Syncing disks.
#
---

これでパーティションの書き込みが終了しました。
次に各パーティションをフォーマットしていきます。
まずは、Debianをインストールするパーティション。

---
# mke2fs -j /dev/hda1
mke2fs 1.22, 22-Jun-2001 for EXT2 FS 0.5b, 95/08/09
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
19202048 inodes, 38401366 blocks
1920068 blocks (5.00%) reserved for the super user
First data block=0
1172 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424, 20480000, 23887872

Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 24 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
#
---

次にスワップパーティション。

---
# mkswap /dev/hda2
Setting up swapspace version 1, size = 2097438720 bytes
#
---

次にデータ保存領域のパーティション。

---
# /sbin/mke2fs -j -m 0 /dev/hda3
mke2fs 1.22, 22-Jun-2001 for EXT2 FS 0.5b, 95/08/09
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
11075584 inodes, 22135561 blocks
0 blocks (0.00%) reserved for the super user
First data block=0
676 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424, 20480000

Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 26 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
#
---

念のために/hda3のパラメータを調整しておきます。
予約ファイルシステムのオフです。

---
# /sbin/tune2fs -m 0 /dev/hda3
tune2fs 1.22, 22-Jun-2001 for EXT2 FS 0.5b, 95/08/09
Setting reserved blocks percentage to 0 (0 blocks)
#
---

各パーティションをマウントしていきます。
Debianをインストールするパーティションを /mnt とします。

---
# /bin/mount -t ext3 /dev/hda1 /mnt
---

次に、データ保存領域を /mnt2 とします。

---
# /bin/mount -t ext3 /dev/hda3 /mnt2
---

これでDebianをインストールするための領域が作成できました。
dfコマンドで確認すると

---
# df -k
Filesystem           1k-blocks      Used Available Use% Mounted on
/dev/ram0                 9677      5129      4548  53% /
/dev/hda1            100798036     32828  95644896   0% /mnt
/dev/hda3            129483488     32828 129450660   0% /mnt2
---

こんな感じになっていると思います。
/ram0ってのはEMモードの領域ですね。

さて、次にDebianのインストールに入るための準備をします。
まず、

---
# mkdir /mnt2/share
---

として、mnt2にshareディレクトリを作成します。

次に、玄箱うぉううぉう♪からDebianのバイナリをダウンロードします。
現時点では、debian_2006_06_10_dist.tgzが最新バージョンでした。

debian_2006_06_10_dist.tgzを/mnt2/shareにFTPでバイナリ転送します。

転送が完了したら、

---
# cd /mnt
---

として、/mnt ディレクトリに移動し、

---
# tar xvzf /mnt2/share/debian_2006_06_10_dist.tgz
---

として、/mntにDebianを展開します。

展開が完了したら、ネットワークの設定をしときましょう。
まず、

---
# vi /mnt/etc/network/interfaces
---

として、interfacesを以下のように編集します。

===
# Used by ifup(8) and ifdown(8). See the interfaces(5) manpage or
# /usr/share/doc/ifupdown/examples for more information.
iface eth0 inet static
address 192.168.1.100        ← [使用環境に合わせて変更]
network 192.168.1.0           ← [使用環境に合わせて変更]
netmask 255.255.255.0
broadcast 192.168.1.255     ← [使用環境に合わせて変更]
gateway 192.168.1.1           ← [使用環境に合わせて変更]

iface lo inet loopback

auto eth0 lo
===

上記の設定では、192.168.1.0/24のネットワーク内で玄箱を192.168.1.100とするようにしています。
くれぐれも他端末とのIPの競合がないようにしてください。

次に、

---
# vi /mnt/etc/hosts
---

として、hostsを編集します。

===
127.0.0.1       localhost
192.168.1.100   KURO-BOX     ← [使用環境に合わせて変更]
===

次は、hosts.allow

---
# vi /mnt/etc/hosts.allow
---

===
# /etc/hosts.allow: list of hosts that are allowed to access the system.
#                   See the manual pages hosts_access(5), hosts_options(5)
#                   and /usr/doc/netbase/portmapper.txt.gz
#
# Example:    ALL: LOCAL @some_netgroup
#             ALL: .foobar.edu EXCEPT terminalserver.foobar.edu
#
# If you're going to protect the portmapper use the name "portmap" for the
# daemon name. Remember that you can only use the keyword "ALL" and IP
# addresses (NOT host or domain names) for the portmapper. See portmap(8)
# and /usr/doc/portmap/portmapper.txt.gz for further information.
#
#ALL : 192.168.0.0/255.255.255.0
ALL : ALL : ALLOW
===

一応、全ての端末からログインが可能なようにしました。

最後にresolv.confです。

---
# vi /mnt/etc/resolv.conf
---

===
search
nameserver 192.168.1.1     ← [使用環境に合わせて変更]
===

これで、Debian起動の準備ができました。
最後に、EMモードから通常起動に復帰するコマンドを打って再起動します。

---
# echo -n 'OKOK' > /dev/fl3
# reboot
---

再起動が完了したら、telnetで玄箱のIPアドレス(例では192.168.1.100)に接続してください。

---
Debian GNU/Linux 3.0 KURO-BOX
KURO-BOX login:
---

このログイン画面になっていれば成功しています。
ログインアカウントは tmp-kun パスワードも tmp-kun です。
ログインすると、

---
Debian GNU/Linux 3.0 KURO-BOX
KURO-BOX login: tmp-kun
Password: tmp-kun
Last login: Sun May  2 15:10:53 2004 from 192.168.0.32 on pts/0
Linux KURO-BOX 2.4.17_mvl21 #24 2004年 10月 19日 火曜日 17:17:03 JST ppc unknown

Most of the programs included with the Debian GNU/Linux system are
freely redistributable; the exact distribution terms for each program
are described in the individual files in /usr/share/doc/*/copyright

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
tmp-kun@KURO-BOX:~$
---

という感じになるはずです。

とりあえず、今回はここまで。おつかれさまでした。
次回は、インストールできたDebianをアップデートしたりしてみましょう。

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

2006年7月17日 (月)

玄箱 - とりあえず組み立ててみる

さて、玄箱のtipsでもやってみようかしらって前書いたんですが、ほんとにやってみようかと思います。不定期連載で。

しかしベタにインストールとか設定とかやってもなんだかな~と思ってたところ、玄箱のこと書いてあるブログを見ると組み立てがうまくいかないと数件書いてあるのに気づきました。たしかにちょいとコツがいりますね。付属の説明書もけっこうテキトーに書いてあるし。組み立てに関して書いてあるサイトも見ませんし。

つーことで、まず組み立てからいってみましょう。
モノはKURO-BOX HG。ハードディスクは250GBを用意しました。あと用意するものはプラスドライバーとマイナスドライバーが2本くらいあったらうれしいです。一応精密機械なので帯磁していないドライバーを使います。百均のドライバーセットで十分ですよ。

Cimg0809_2

まず、外側のベゼルを外していきましょう。
小さいマイナスドライバーで小さいツメの部分を押しながらベゼルを手前に引きます。
反対側も同様にして外せばベゼルが外れます。

Cimg0810_1
Cimg0811

次に、筐体を開けるんですが、これは結構外しにくいです。
写真のようにマイナスドライバーを2本駆使して、四つあるツメを外して、後面のファンがついてるほうから開けるとうまくいきます。ツメはこじ開けすぎると折れると思うのでだましだましやっていきましょう。

Cimg0812_2

筐体が開いた状態です。

Cimg0821_1

筐体が開いたら、基盤のネジを外していきます。

Cimg0822_2

基盤を持ち上げるときに、前側のランプ用のプラスチックを外しておきましょう。
ボクはうっかりバキっとやって壊しちゃったことがあります。

Cimg0823

基盤を外した状態です。

Cimg0824

ハードディスクの台座を外します。
電源部分の回路を固定しているネジを外して、台座を取り外します。
台座は前面のほうでフックで固定されているので、ネジを外してから、後面側の台座を持ち上げるかっこうで外します。

Cimg0826

台座を外した状態です。

Cimg0828

台座にハードディスクを固定します。
付属の二本の平ネジを使います。

Cimg0830_1

基盤のATAアダプタと電源をハードディスクにつなぎます。

Cimg0832_1

台座をもとの位置に固定します。
その上に電源部分の回路を重ねるようにして、ネジで固定します。

Cimg0834

次に基盤を重ねていきますが、このとき基盤の前面にランプ用のプラスチックをひっかけるようにして設置するのを忘れないでください。いや、よくネジ締めてから気づくことがあるんですよ(笑)

Cimg0836_1

あと、後面のLANアダプタやリセットスイッチの穴を合わせたり、後面の固定位置をしっかり確認しておきましょう。筐体を閉じるときに合わなくなってちょっとゲンナリしないようにね。

Cimg0837_1
Cimg0839

基盤をネジで固定します。

Cimg0841

次に筐体を閉めますが、その前にATAやHDD電源の配線がきっちり箱の中に納まっているか確認しましょう。写真のようにはみ出していたらうまく閉まりませんからね。

Cimg0842

筐体を閉めます。
前面のフックをかけてから、ツメがパチッというまで閉めます。後面のパネルや各配線などに注意しながらしっかり閉めましょう。

Cimg0844

筐体を閉めた状態。

Cimg0846

後面のファンの下のほうにネジ穴が一つあるので、付属の長いネジを締めます。

Cimg0847_1

最後にベゼルを取り付けて完成です。

Cimg0848

最初慣れないうちは難しいかもしれませんが、慣れたらけっこう楽にできますよ。
まあ、そんなに何台も組み立てる人は珍しいかもしれませんけどね。

次回は、この玄箱にDebian Linuxをインストールします。
これはいろんなブログで紹介されてるんですが、まあお約束ということで(笑)

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