いますぐ実践! Linuxシステム管理

[バックナンバーのトップへ] [Linux システム管理のトップへ]


いますぐ実践! Linux システム管理 / Vol.135 / 読者数:1323名

こんばんは、うすだです。

新年度に入ってから少し経ちましたが、みなさまのお仕事の状態などは、 いかがでしょうか。順調でしょうか。
早くも修羅場に…となっていないことを、祈っております。

わたくしの場合は、いろいろテンパっていたお仕事が、 なぜかほぼ終焉をむかえてくださり、 新しい仕事をいくつか始めることができております。

その中のうちのひとつは、コテコテの組込みな OS のポーティングです。
いままでの Linux 的なお仕事とは違うため、 新鮮な気持ちでとりかかることができています。

同じ仕事をずっと続けていますと、やりがいがあっても、 やはりどこかでマンネリを感じてくるように思います。
そんなときは、新しい言語の勉強をしてみたり、 新しいお仕事に率先して手を挙げてみるなど、ちょっとした変化を作り出してみると、 マンネリを打破できるかもしれませんよ。

…なんて、自分ではやってないことを、エラそうに書いてしまいました。
でも、書いたからには、わたしも変化をひねり出してみたいと思います。

またしても微妙な決意をしたところで、今回も、はりきってまいります。

今回のお題 - Mercurial で設定ファイルを管理する

昔々その昔、設定ファイルの履歴を RCS や CVS で管理する、 というネタをご紹介したことがあります。

Vol.061 - 設定ファイルをリビジョン管理する
http://www.usupi.org/sysad/061.html
Vol.062 - 設定ファイルをもっとリビジョン管理する
http://www.usupi.org/sysad/062.html
Vol.063 - 設定ファイルをまとめてリビジョン管理する
http://www.usupi.org/sysad/063.html

もともとは、ソースコードの履歴の管理や、 大勢でよってかかって開発を行う際などに使うものですが、 これを設定ファイルの管理にも用いると、変更履歴が残りますし、 設定を戻すこともできて便利ですよ、というお話でした。

ただ、個人的には、別の場所にリポジトリを作成して、 出し入れして使うというやりかたにあまり馴染めず、積極的に使っていませんでした。

もう少しすっきりしたバージョン管理ツールはないものか、 などと常日頃思っていたのですが、最近、 Mercurial という分散バージョン管理ツールが、ちまたで話題になっていましたので、 早速使ってみました。

試してみたところ、たしかに、ウワサ通り、シンプルで使いやすいです。
いままで、ツールの導入にやや躊躇していたわたしも、重い腰を上げて、 各所で Mercurial を使うようになりました。

というわけで前置きが長くなりましたが、今回は、Mercurial を使って、 なにかの設定ファイルを管理してみたいと思います。


まずは、なにはともあれ、Mercurial の入手から始めましょう。
以下の、Mercurial のサイトから、各種が入手できます。

Mercurial
http://www.selenic.com/mercurial

ソースコードはもちろん、 主要なディストリビューションのパッケージが各種取り揃えてあります。
また、Fedora や Ubuntu などでは、上記サイトを探索せずとも、 yum や apt でもれなく入手できます。

もしパッケージがなくても、ソースコードに SPEC ファイルが含まれますので、 RPM 系のかたなら、自力でパッケージを作ることができます。
(もちろん、ソースコードをコンパイルして使うことも可能です。)

そんなこんなで、Mercurial を入手してみてください。
そして、石橋を叩いて渡る貴兄は、今回使用する hg コマンドの存在を、 which などで確認しておくとよろしいかと思います。

  % rpm -qf `which hg`

ところで、試す管理対象ですが、 今回は /etc/httpd 以下の設定ファイルにしたいと思います。基本的には、 他の設定ファイルなどでも、やりかたは同じです。お好きなところ、 お好きなものでお試しくださいませ。


さて、まずは、最初の設定を行ってみましょう。

管理対象のトップ・ディレクトリに移動して、以下のように、 hg init と実行してください。

  % cd /etc/httpd
  % hg init

すると、直下に、.hg というディレクトリが作成されます。

  % ls .hg/
  00changelog.i  requires  store/

ここに、対象となるファイルの履歴や、さまざまな情報が記録されます。
ですので、別の場所にリポジトリを作成したり、環境変数などを設定する必要は、 これっぽっちもありません。

また、使用するコマンドも、基本的には hg コマンドだけです。
hg コマンドの引数に、行いたい操作を指定します。

 

次に、管理の対象にするファイルを登録します。

hg add のあとに、管理対象となるファイルを指定します。
以下では、/etc/httpd/conf/httpd.conf と、 /etc/httpd/conf.d/*.conf を指定しています。

  % hg add conf/httpd.conf conf.d/*.conf

ディレクトリを指定した場合は、そのディレクトリ以下のファイルすべてが、 根こそぎ登録されます。
ですので、もし、/etc/httpd 以下のファイルすべてを対象にしたい場合は、 * を指定すればよいです。

  % hg add *

 

そして、初期の状態をコミットして、残しておきましょう。
コミットしますと、今の状態が .hg 以下に保存されますので、 ファイルを変更したり、うっかり消してしまっても、 コミットした状態に戻すことができます。

  % hg commit -m "initial version"

-m オプションで、メッセージを指定します。
とりあえず最初の状態ということで、initial version と指定していますが、 もっと気の利いた、素敵な言葉を指定していただいて構いません。


最初の設定が終わりましたので、ここからは、 じゃんじゃんと使い込んでみたいと思います。

まずは、なにも気にせずに、設定ファイルを編集してください。

そして、いろいろと変更して、その状態をとっておきたくなったら、 再度コミットを行います。方法は前述の通りです。

  % hg commit -m "change log format"

もし、複数のファイルを変更していて、そのうちいくつかだけをコミットしたい場合は、 コミットしたいファイルを指定します。
たとえば、conf/httpd.conf だけコミットしたければ、以下のように実行します。 ("add foo.jp" の部分は、お好きな文言に変更してください。)

  % hg commit -m "add foo.jp" conf/httpd.conf

 

いろいろこねくり回していて、どのファイルを変更したのか、 わからなくなったときには、hg diff と実行してください。 一番最近にコミットした状態と、いまの状態との差分を、 diff の形式で出力してくれます。

  % hg diff

たくさん出力されてさらに困った場合は、hg diff の後にファイルを指定しますと、 指定したファイルの差分だけを出力してくれます。

  % hg diff conf/httpd.conf

 

新たにファイルを対象としたいときは、hg add で行えます。 hg add の後にそのファイルを指定してください。
たとえば、/etc/httpd/conf.d/foo.jp.conf を追加したいときは、 以下のように実行します。

  % hg add conf.d/foo.jp.conf

ただし、これだけでは、ファイルの内容が .hg 以下に記録されません。
次にコミットしたときに、はじめて記録されます。ご注意ください。

逆に、対象から外したいときは、hg remove で行えます。
ただし、そのファイルも消えてしまいます。これまたご注意ください。

  % ls conf.d/test.conf
  conf.d/test.conf
  % hg remove conf.d/test.conf
  % ls conf.d/test.conf
  /bin/ls: conf.d/test.conf: No such file or directory

 

それから、ファイルを編集中に、コミットした状態に戻したくなったら、 hg revert で戻すことができます。

  % ls -l conf/httpd.conf
  -rw-r--r-- 1 root root 40735 Apr 12 20:54 conf/httpd.conf
  % hg revert conf/httpd.conf
  % ls -l conf/httpd.conf
  -rw-r--r-- 1 root root 42641 Mar 25 23:28 conf/httpd.conf

 

ちなみに、hg log と実行しますと、履歴の一覧が出力されます。

  % hg log

さて、これまでご紹介したコマンドは、 最新の状態との比較などを行っていたと思います。
もし、最新ではなく、過去のリビジョンとの比較などを行いたい場合は、 -r オプションを使用します。
たとえば、リビジョン 2 の log を出力するには、以下のように実行してください。

  % hg log -r 2

また、リビジョン 1 と 2 の差分を出力するには、以下のように実行してください。

  % hg diff -r 1:2

 

それから、コミットしますと、リビジョン番号が一意に決まると思いますが、 番号という無機質な数値ではなく、名前で参照できるように、 タグというものをつけることができます。
タグをつけるには、hg tag を、タグ名を指定して実行します。
たとえば、最近コミットした状態に bar という名前をつけたい場合は、 以下のように実行します。

  % hg tag bar

もちろん、過去のリビジョンにタグをつけることもできます。
たとえば、リビジョン 3 に third というタグをつけたい場合は、 以下のように実行します。

  % hg tag -r 3 third

 

ちなみに、もし操作がわからなくなったときは、hg help と実行してみてください。 コマンド一覧が出力されます。

  % hg help

また、hg help の後にコマンドを指定すると、そのコマンドの使いかたが出力されます。

  % hg help commit

もちろん、オンラインマニュアル(man hg)にも、詳細な説明が記載されています。 hg help だけで解決できないときなどに、活用してみましょう。


以上、Mercurial の使いかたを、駆け足で簡単にご紹介しました。

いきなり本番で使うのは、勇気が百倍ほど必要かと思いますので、 まずは設定ファイルをごっそりコピーして、試してみてください。

冒頭で、新しいことをやってみましょう的なことを書きましたけれども、 Mercurial を導入して活用するなんて、まさにうってつけですね。(強引)
ですので、読むだけでなく、ぜひ、トライしてみてください!

宿題の答え

前回の宿題は、

  GnuPG を使って、ログを暗号化し、メールで送信してみましょう。

でした。

まず、gpg --gen-key を実行して、鍵を作成しましょう。
手順は以下にばっちり載っていますが、 パスフレーズには何も入力しないようにして…も入力しても構いません。 (あいまいですみません。)

Vol.087 - ファイルを暗号化する
http://www.usupi.org/sysad/087.html

わたしは、以下のように、logwatcher という適当な名前を用いて、作成しました。

  % gpg --list-keys
  /root/.gnupg/pubring.gpg
  ------------------------
  pub   1024D/01234567 2008-04-10
  uid                  logwatcher (for test) <uso@uso.usupi.org>
  sub   2048g/DEADBEEF 2008-04-10

そして、公開鍵を logwatcher.pub というファイルに書き出して、 これをサーバのログが読めるひと(root)に渡します。

  % gpg -o logwatcher.pub --export logwatcher

ログの読めるひと(root)に、公開鍵を登録してもらい、 さらに鍵署名なるものをしてもらいます。
あ、その前に、ログの読めるひと(root)に鍵がなければ、作っておく必要があります。 鍵がない場合は、以下を行う前に、gpg --gen-key で作っておいてください。

  # gpg --import logwatcher.pub
  # gpg --lsign-key logwatcher

では、試しに、適当なファイル(/root/.bashrc)を暗号化してみます。

  # gpg -q -r logwatcher -o /tmp/bashrc_root -e /root/.bashrc

暗号化したファイル /tmp/bashrc_root を手元に持ってきて、 復号化できるかどうか試します。
もしサーバ上にいるなら、以下のように、直接復号化できます。
特に問題がなければ、中身がどばっと出力されるはずです。

  % gpg -d /tmp/bashrc_root
  ...(/root/.bashrc の内容)...

それでは、いつものスクリプトを、以下に差し替えてみましょう。

  #!/bin/bash
  WORKPATH=/tmp/sysad_134
  cd $WORKPATH
  while [ 1 ]; do
      allmessages=""
      while read -t 60 message; do
          allmessages="${allmessages}${message}@RET@"
      done < /var/log/authpriv
      if [ "z`echo $allmessages | grep -i fail`" != z ]; then
          TXTFILE=`mktemp syslog_auth_messages-XXXXX`
          echo $allmessages | sed 's/@RET@/\n/g' >> $TXTFILE
          gpg -q -r logwatcher -o - -ea $TXTFILE |
              /usr/bin/Mail -s 'syslog authpriv' root
          rm -f $TXTFILE
      fi
  done

前回のスクリプトと、基本的には変わりません。
ログの内容 $allmessages を $TXTFILE に出力したあと、gpg コマンドで暗号化を行い、 パイプに渡して Mail コマンドで root 宛にメールを送信しております。

だれかがログインに失敗などすると、うまくいけば、root 宛に、 以下のようなメールが届きます。

  From: root@hoge.usupi.org
  To: root@hoge.usupi.org
  Subject: syslog authpriv

  -----BEGIN PGP MESSAGE-----
  Version: GnuPG v1.4.6 (GNU/Linux)

  hQIOA0kqpmTi/jFyEAf/QSJ/boigkPasY7zfMz0ZzYYhSbYWw6BPtpH9+RlHPrkT
  8pDTgkxn5zYaXBkYc2TGYGriNqxvWu63WsOP0kXk0IdlHPXn9HKXtoQH27qSqDVT
  ...中略...
  -----END PGP MESSAGE-----

このメールをファイルに出力すれば、gpg コマンドで復号化できます。

  % gpg -d mail.txt
  ...ログの内容...

…長々と申し訳ありません。

ちなみに、わたくし、勘違いをしておりまして、暗号化を行う側は、 公開鍵を使って暗号化を行うため、 パスフレーズを入力する必要はありませんでした。
ただ、パスフレーズなしにしておくと、復号化が自動で行えます。
スクリプトなどに直接処理させる際には、便利ではないかと思います。
(もちろん、推奨されるべき行為ではありませんが…。)

今回の宿題

今回の宿題は、

  Mercurial によるバージョン管理を、最初からあらためて始めたいとき
  には、どうすればよいでしょうか?

です。

いままでの履歴を全部捨て、今の状態を起点として、最初から管理を行いたい場合、 どうすればよいでしょうか? …という意味です。

使いはじめのうちは、手順を間違えて、 最初からやり直したくなることがあるのではないかと思います。

どこの場所で管理しているのかがわかっていれば、あとはもうご想像通りです。 お試しディレクトリなどで、試してみてください。

あとがき

ここだけの話ですが、最近、めきめきと痩せることができました。

というのも、以前ご紹介した、「夢をかなえるゾウ」に書かれていた、

  食事を腹八分におさえる

を忘れないで実践しているから、ではないかと思っています。

人間、努力すればそれなりの成果をあげることができると思います。
しかし、そうそう四六時中努力しつづけられるものではないですよね。
そこでわたしは、同じく「夢をかなえるゾウ」に書かれていた、

  食べすぎると体に悪いし、眠くなるし、集中力も下がる

という理由にいたく納得して、自分の中でパラダイムシフトを起こすことで、 努力することなく、守りつづけられるようにしました。
(パラダイムシフト、はおおげさですね…すみません。)

そんなことでできるんかいな、という気もしますが、人間、 納得のできる理由があると、意外に守れてしまうようです。

また、それだけではなく、ちょっとした時間のあるときに、 腕たてふせや腹筋をしています。やせてきたな、がんばってやっているな、 という実感があると、これまた意外に楽しく行えます。
これも、実は、「その日頑張れた自分をホメる」という課題を、 無意識に行っていたようです。(最近気がつきましたので…)

…ええっと、さすがに、みなさんも是非お試しください、 と言えるような内容ではないと思います。世の中にはこんな変なひともいるんだなあ、 とでも思ってくださいまし。

 

さて、次回は、2週間後が黄金週間まっただ中になりますので、日曜日ではなく、 5月6日(火) に発行したいと思っております。
黄金週間が終わって、エンジンのかからないときにでも、読んでいただけますと、 幸いです。

 

今回も、ここまで読んでいただき、ありがとうございました。
それでは、次回は 5月6日 頃に、お会いしましょう!

 

「いますぐ実践! Linux システム管理」の解除は、以下からできます。
http://www.usupi.org/sysad/ (まぐまぐ ID:149633)

バックナンバーは、こちらにほぼ全部そろっています。
http://www.usupi.org/sysad/backno.html

「栗日記」− 好調の波がやってきたかも…毎日栗の絵描いてます!
http://www.usupi.org/kuri/ (まぐまぐ ID:126454)
http://usupi.seesaa.net/ (栗日記ブログ)


[バックナンバーのトップへ] [Linux システム管理のトップへ]

トップ

バックナンバー
    [日付順] [目的別]

プロフィール

▼ リンク

独学Linux
Linuxデスクトップ環境に関する情報が満載です。 メルマガもありますよ。
LINUXで自宅サーバーを構築・導入
(Fedora8)

Fedora8のインストールの仕方から管理方法まで、詳しく載っています。 SearchManには情報がもりだくさんです。
マロンくん.NET
〜サーバ管理者への道〜
Linuxをサーバとして使用するための、いろいろな設定方法が載っています。 マロンくんもかわいいです。 なんといっても、マロンくんという名前がいいですね!!
日本の Linux 情報
日本の、Linux 総本山的なところです。
Linux Square − @IT
@ITが提供する、Linux の情報が満載。 載っていない設定方法はないんじゃないでしょうか。
Open Tech Press
Linux に限らず、オープンソース関連の記事が網羅されています。
ITmediaエンタープライズ:Linux Tips 一覧
Tips というより FAQ 集でしょうか。わからないことがあれば覗きましょう。
IBM developerWorks : Linux
開発者向けですが、勉強になりますよ。
Yahoo!ニュース - Linux
Yahoo!のLinuxに関するニュース一覧です。
栗日記
システム管理とかと全然関係ありませんが、毎日栗の絵を描いています。
システム管理につかれちゃったとき、癒されたいときに、ご覧ください。:-)
WEB RANKING - PC関連
ランキングに参加してみました。押してやってください。

▼ 作ってみました

Add to Google

▼ せんでん





▼ 最近読んだ本

ハリー・ポッターと炎のゴブレット ハリー・ポッターと炎のゴブレット
J.K.Rowling
  ハリポ月刊なので読み直してます
ハリー・ポッターとアズカバンの囚人 ハリー・ポッターとアズカバンの囚人
J.K.Rowling
  ハリポ月刊なので読み直してます
ハリー・ポッターと秘密の部屋 ハリー・ポッターと秘密の部屋
J.K.Rowling
  ハリポ月刊なので読み直してます
ハリー・ポッターと賢者の石 ハリー・ポッターと賢者の石
J.K.Rowling
  ハリポ月刊なので読み直してます
アルケミスト アルケミスト
パウロ・コエーリョ
  また読んだ
賢者の書 賢者の書
喜多川 泰
  違った視点から見られてよかった
セキュリティウォリア セキュリティウォリア
Cyrus Peikari, Anton Chuvakin
  やや冗長…ためにはなりました
CORE MEMORY CORE MEMORY
John Alderman, Mark Richards
  この筐体でPC作ってほしい!
新訳 星の王子さま 新訳 星の王子さま
サン=テグジュベリ
倉橋 由美子
  つまらない大人になったのか…
センネン画報 センネン画報
今日 マチ子
  長編マンガがとてもよかった
.....

[X]
「粟津潔 デザインする言葉」 粟津潔
「Binary Hacks」 高林 哲,鵜飼 文敏,佐藤 祐介,浜地 慎一郎,首藤 一幸
「Make: Volume01」 オライリー・ジャパン
「セーラが町にやってきた」 清野 由実
「手紙屋」 喜多川 泰
「Linuxカーネル2.6解読室」 高橋 浩和,小田 逸郎,山幡 為佐久
「人蕩し術」 無能 唱元
「子育てハッピーアドバイス2」 明橋 大二, 太田 知子
「ラッセル幸福論」 B. Russell
「それでも人生にイエスと言う」 Viktor Emil Frankl
「子育てハッピーアドバイス」 明橋 大二, 太田 知子
「考具」 加藤 昌治
「北欧デザイン<3>」 渡部 千春
「北斎の謎を解く」 諏訪 春雄
「体感美術館」 平野 暁臣
「チベット永遠の書」 Theodore Illion
「リナックスの革命」 Pekka Himanen
「人月の神話」 Frederick Phillips,Jr. Brooks
「ヤバい経済学」 Steven D. Levitt, Stephen J. Dubner
「小布施ッション<2001-2002>」 セーラ・マリ カミングス
「アンパンマン伝説」 やなせ たかし
「夢をかなえるゾウ」 水野 敬也
「ゲーム開発者のためのAI入門」 David M. Bourg, Glenn Seemann
「北欧デザイン<2>」 渡部 千春
「北欧デザイン<1>」 渡部 千春
「ヒューマン2.0」 渡辺 千賀
「中国・ロシア同盟がアメリカを滅ぼす日」 北野 幸伯
「超ロング・セラー 絶滅寸前商品」 湯浅 豊彦
「The BUG(ザ・バグ)」 すずき ひろのぶ,かとう みつあき
「デザインのデザイン」 原 研哉
「マキアヴェッリ語録」 塩野 七生
「ハンバーガーを待つ3分間の値段」 斎藤 由多加
「星の旅人-スペイン「奥の細道」-」 黛 まどか
「食品の裏側」 安部 司
「On Lisp」 Paul Graham
「ぼくが医者をやめた理由 つづき」 永井 明
「あなたならどうする?」 Jack Nikolaschka
「セキュアプログラミング−失敗から学ぶ設計・実装・運用・管理」
      Mark G. Graff, Kenneth R. van Wyk
「「左利き」は天才?−利き手をめぐる脳と進化の謎
      David Wolman
「自分の中に毒を持て」 岡本 太郎
「アトピーの薬を減らす本」 田中 貴子
「岡本太郎「明日の神話」修復960日間の記録」 吉村 絵美留
「X51.ORG THE ODYSSEY」 佐藤 健寿
「アレルギーっ子の暮らし応援BOOK」 佐藤 のり子
「沖縄文化論」 岡本 太郎
「「伝説の社員」になれ!」 土井 英司
「コンピュータの構成と設計(上)」 Patterson & Hennessy
「カラスのジョンソン」 明川 哲也
「ドリルを売るには穴を売れ」 佐藤 義典
「頭がよくなる照明術」 結城 未来
「クロフォードのインタラクティブデザイン論」 Chris Crawford
「いじめの根を絶ち子どもを守るガイド」 Barbara Coloroso
「非常識のすすめ―逆発想の仏教論」 ひろさちや
「Linuxアドバンストネットワーク構築ガイド - HAサーバ構築編」
      デージーネット
「イノベーションの達人!」 Tom Kelly, Jonathan Littman
「クリエーター50人が語る創造の原点」 小原 啓渡
「欺術 - 史上最強のハッカーが明かす禁断の技法」 Kevin Mitnick
「楽しい気象観察図鑑」 武田 康男
「入門 Ajax」 高橋 登史朗
「リリカルな自画像」 岡本 太郎
「やぎの目ゴールデンベスト」 林 雄司
「初めてのPython 第2版」 Mark Lutz,David Ascher
「鼻兎」 小林 賢太郎
「なぜ、これがアートなの?」 Amelia Arenas
「芸術起業論」 村上 隆
「まほう色の瞳」 Enrique Barrios
「ラーメンズつくるひとデコ」 ラーメンズ
「R25 つきぬけた男たち」 R25編集部
「美の呪力」 岡本 太郎
「しろのあお」 上大岡 トメ
「ザ・ゴール」 Eliyahu M. Goldratt
「ハッカーと画家」 Paul Graham
「岡本太郎に乾杯」 岡本 敏子
「Fedore Core Expert」 Software Design
「誰も知らない男」 ブルース・バートン
「子どもが育つ魔法の言葉」 ドロシー・ロー・ノルト
「国家の罠」 佐藤 優
「夜回り先生」 水谷 修
「やぎの目絵日記」 林 雄司
「7つの習慣」 スティーブン・R. コヴィー
「まろ、ん?−大掴源氏物語」 小泉 吉宏
「ザ・サーチ グーグルが世界を変えた」 ジョン・バッテル
「ポストモダン・マーケティング」 スティーブン ブラウン
「機動戦士ガンダムさん」 大和田 秀樹
「小エロのひみつ - Webやぎの目研究発表」 林 雄司
「これ、誰がデザインしたの?」 渡部千春
「60分間・企業ダントツ化プロジェクト」 神田 昌典
「ガルシアへの手紙」 エルバート ハバード
「人生は素晴らしいものだ」 オグ・マンディーノ
「ザ・マインドマップ」 トニー・ブザン,バリー・ブザン
「ワインバーグのシステム思考法」 G.M.ワインバーグ
「渋谷ではたらく社長の告白」 藤田 晋
「渋井真帆の日経新聞読みこなし隊」 渋井 真帆
「コラム息切れ」 小野 法師丸
「早朝起業」 松山 真之介
「変な人が書いた驚くほどツイてる話」 斎藤 一人
「35歳から仕事で大切にしたいこと」 村井 勉
「金融広告を読め」 吉本 佳生
「発想する会社!」 トム・ケリー,ジョナサン・リットマン
「エハイク」 吉田 戦車
「人生の旋律」 神田 昌典
「仕事の思想」 田坂 広志
「CPUの創りかた」 渡波 郁
「非常識な成功法則」 神田 昌典
…これ以前は記録してません…

▼ 気に入ってる本

夢をかなえるゾウ 夢をかなえるゾウ
水野 敬也
  いままでで最高の「笑える」成功本
Linuxデバイスドライバ Linuxデバイスドライバ
Alessandro Rubini,
Jonathan Corbet
  ドライバ作らなくてもためになる
Firefoxの改造テクニック! Firefoxの改造テクニック!
大浦 淳
  いま栗日記拡張を考えてます
Apacheモジュール プログラミングガイド Apacheモジュール プログラミングガイド
小山 浩之
  Apacheの中身もわかるよ
図解 実戦マーケティング戦略 図解 実戦マーケティング戦略
佐藤 義典
  栗日記も戦略的に行こう!
やぎの目ゴールデンベスト やぎの目ゴールデンベスト
林 雄司
  よめも爆笑してました
アルケミスト アルケミスト
パウロ・コエーリョ
  ヘコみそうなとき読みます
X51.ORG THE ODYSSEY X51.ORG THE ODYSSEY
佐藤 健寿
  X51.ORGの集大成
チベット永遠の書 チベット永遠の書
Theodore Illion
  いろんな意味ですごい!!
影響力の武器 影響力の武器
ロバート・B・チャルディーニ
  思わず納得します