ソシム 様のご厚意により,
書籍 "らぶらぶLinux3 「もっと知りたい」人のための パッケージ管理&構築入門" を
ブックレビューコーナー にご献本いただきました.
この本のレビューをして頂くべく,
Linux Users ML
や本サイトにおいて
公募
を行い,
これにご希望頂いた方々より感想などをレビュー記事にまとめていただきました.
ここに, レビューアの方々から寄せられたレビュー記事を公開します. (原稿到着順)
ソシム 様および レビューアの皆様のご厚意に感謝いたします.
なお, 以下のレビューは初版を対象としています.
初心者が最初から最後まで理解しながら通読するのは, 非常に困難な本では ありますが, 「もっと知りたい」と思う探求心があれば, 一冊手元にあっても良い 本だと思います.
ディストリビューションに関しては主にVine Linuxで説明されていますが, RedHat系, Debian系, SlackWare系それぞれの説明があり, さらにDebianでRPMを 扱う等の境界線を超えた内容も多くあるため, 対象ディストリビューションも選 ばないとは思います.
私は新しいソフトをインストールする際, マニュアル通りにRPMを実行したり, 「./configure」「make」「make install」 というお決まりの呪文を唱え, 無事インストールできればバンバンザイ. できな ければ諦める. ということを日々繰り返しています. そんなことを繰り返してい るうちに「結局, make って何をしてるの?」とか「だらだら出てくるエラーメッ セージだけでも読めればなー」なんて思うようになってきたのです. それに答え てくれるのがこの本だと思います.
この本は各項目で概要→詳細となるように構成されているようです. ですか ら, 私にとっては各章の概要部分を拾い読みするだけでも, かなりの勉強になりま した. そこから興味を持てた内容に突っ込んで読んでいくと, 今までメーリング リストや他の書籍で得た断片的な知識が, なんとなく整理されていったような気 もしました.
またこの本の特徴として, 関連項目のリンクが非常にたくさん張 り付けられていることが挙げられます. 例えば, 本文中に「tarパッケージを使っ た…」という内容があるとすると, すぐ横に「tarパッケージ: P. 148」という ようなリンクが張ってあります. このリンクは, 完全な理解をしないまま最初か ら読み進めた私にとって, 非常に重宝しました.
その他の特徴としては, Column の興味深さというのが挙げられると思います. ちょっとした基礎知識や, 素朴な疑問等がふんだんに盛り込まれています. しか も今回からは Column も目次に掲載されました. さらに充実したものになったの ではないでしょうか.
他の章は他のレビューアの方に任せて, 私は特に第 2 章について述べたいと 思います. この章は「ソースパッケージと make」について書かれているのですが, 非常に分かりやすかったと思います.
「トラブルに備える」の所では, ログの取り方や, テスト環境の取り方等が 懇切丁寧に書かれており, Linux を管理するということが, いかに重要かという ことを痛感しました.
またこの章では私がずっと疑問に感じていた「結局 make って何をしてるの?」 という疑問にも答えてくれました. 「./configure」 「make」「make install」という一連の流れが, 実際に どういう処理を行っているのかが理解できたと思います.
この章の最後「パッチとCVSによる最新版ソースの活用」では,初心者にも大 事なことが書かれていると思います. 各ディストリビューションのサイト等に行 くと「○○のパッチが公開されました」等のメッセージが載っていますが, 私に とってパッチを当てるというのは, 非常に避けたい作業の1つでした. 例えば Bash にセキュリティーホールが発見され, そのパッチが公開されたとしましょ う. しかし初心者としては「失敗して Bash が動かなくなったらどうしよう」と まず考え, なかなか踏み切れないのです. 確かにこの本を読んだだけで完全に理 解はしてませんが, それはパッチを当てた経験がないからだと思います. この本 をたよりにいくつかのパッチを当て, ソフトのバージョンアップにチャレンジす ることができました.
この本を読むきっかけがブックレビューでなければ, はっきり言って最後ま では読めなかったでしょう……. というのもやはり初心者には難しいです. しかし 最初にも書いた通り一家に一冊あればパッケージ管理につまずいた時や, 初心者 を卒業できた時には必ず役に立つ本だと思います. 買って損はないはずです.
ふと, 雑誌やWebを見ると, あ〜んな便利そうなツールや, こ〜んな面白そう なアプリが紹介されている. 「ひとつ, うちの Linux Box にインストールして みるか!」と意気込んでみたものの, 現実は甘くない. パッケージ管理でハネら れる. コンパイルでエラーが出る. 苦労して英語の付属ドキュメントは読んだも のの, 操作そのものの原理が今ひとつ判っていないのでエラーに対処できない. だから, 入門書の解説より, 一歩突っ込んだ説明が欲しい.
……これ, 全部, 私のことです. 本書のタイトルにある『「もっと知りた い」人』って, きっと私みたいな人のことだと思ったんです. この本, はたして, 日頃の私の疑問や問題を解いてくれるのでしょうか.
説明は平易で, 読みやすい文章と感じました. また, 例示も豊富で, 細かい ノウハウや注意点が盛り込まれています. 例えば, インストールしたソースパッ ケージからバイナリパッケージを構築するコマンド"rpm -bb"の解説 では, 通常の実行例の他に, 一部のソースがない場合の構築例も掲載されていま す. そうそう. 立ち往生する時って, 結構, 細かい部分で引っかかってるものな んですよね. 著者の実践経験と丁寧さが伝わってきます.
ただし, 内容そのものは, 必ずしも簡単ではありません. 基本的にコマンド ラインによる解説で, コマンドそのものについての基本知識を持っていることが 前提です. 電車の中で本書を読んでいて, あるコマンドのオプションの意味が分 からないことがあったのですが, 家に帰って man を見るまで解決しませんでし た. コマンドそのものの解説も欲しいところですが, そうすると本が2倍の厚さ になってしまうので, 難しいところです.
一通り読んだあと, 自宅のモニターの脇に本書を置いておきました. 何かを インストールする度に, 使ったコマンドの意味を本書で確認したり, 逆に本書で 紹介されているコマンドを試してみたりするためです.
実は, 一回目に読んだ時, 「細部は良くわかるが, 操作の流れが把握しにく い」本, という印象を持っていました. ですが, この印象は, 本書が手に馴染む につれ, 徐々に変わっていきました.
実際のインストールなどでは, 作業の流れは, 付属ドキュメントや雑誌の紹 介記事でおおよそ把握できます. で, その通りやってみて, うまくいけば問題な いわけです. 問題が発生し, 本書を読んでコマンドの意味やエラーの原因を探ろ うとする時点では, 流れよりも細部の情報が知りたいのです.
そうした場面で, 本書は真の力を発揮しました. makefile
の読
み方や修正のヒントなどが実例で紹介されていて参考になります. また, 「なぜ
make までは通常ユーザーでインストールだけスーパーユーザーになるのか」と
いったノウハウの理由も, ひっそりと?書かれています.
とにかく, 色々な状況について良く調べてあり, 「知りたいことは, どこか に出ている」という信頼感を持つに至ったほどです.
実践で使い込むほどに味が出てくる……その装丁やサブタイトル (なんてっ たって「らぶらぶ Linux 3」ですもん), 一読した時の文章のトーンから受ける 印象とは逆で, 疑問が浮かんだときや, 困難にぶつかったときにこそ, 本書を見 る価値があると感じています. また, 説明の丁寧さや, 冗長とも思えるほどふん だんな実行結果の解説は, そんな苦境にこそ役立つのだと認識を新たにしました.
欲を言えば, カーネルの再構築とアップグレード (第 4 章, 第 5 章) は, 紙数 切れの感があり, もう少し深く説明した方が良い気もします. また, 必要以上に! (RPMとdeb両パッケージとも深い知識が必要な人って, どれくらいいるのだろう) 幅広い範囲を網羅するために本が分厚くなってしまっている感もあります.
しかし, 「良くここまで調べた」と思える多岐にわたった例示, 相互に関連 する項目が別ページにある場合は, そのページ数を必ず示す工夫(例えば, rpm コマンドで, 依存関係を無視するオプション"--nodeps"の解説 ページ (P52)には, 『依存ファイルを探す: rpmfind による例 P20』という脚注がちゃんとある) など, きめ細かな仕上がりは, 繰り返し読むほどに好印象を与えます.
私のような「もっと知りたい」人よりも, 「もっと知っている」人が, ちょ こっと知識をおさらいする時に必要部分だけ見返す, というのが, 実は, 本書の 最も有効な活用法なのではないでしょうか.
Linux と関係のある書籍は数多く存在するが, そのほとんどが何らかのディ ストリビューションを取り上げているもので, インストール本としては役に立つ のだが, その後の使い方はどれもがせいぜいメールや Web のブラウジング程度であっ た. しかし本書はその次のステップを踏み出したくなる, そんな感じにさせてくれる, 今までにありそうでなかった本といえる.
本書の半分以上は, 現在多くの Linux で使用されている主要パッケージ, RPM・deb・tgz についてパッケージの構造・構築からインストール, 管理の仕方 までをわかりやすくまとめてある. 一冊でまとめているのでさすがに各パッケー ジに対して, あまり深いところまで掘り下げた話はないが, 普段使用するうえで は十分な情報量がある.
また make や, CVS, パッチの利用の方法など基本的なことでありながら意外 と初心者向けの書籍では触れられることが少ない事に関しても一つの章を立てて わかりやすく解説している.
第 4 章ではカーネルの再構築とアップグレード, 第 5 章でディストリビュー ションのアップグレードについて述べられているが個人的には何か急ぎ足で語ら れているよう気がしてならなかった. またこれはどの章でも見られることなのだ が, スクリプトの実行例や手順の表の幅がページによってまちまちなので若干見 づらい感があった.
全体を通して説明はとてもやわらかく, 親切丁寧に書かれているが, Linux 初心者にとっては, 少々難しい内容かもしれない. 書名にもあるように「もっと 知りたい」人, ある程度 Linux を使えるようになったが, もっと使いこなした い人に向けた本といえる.
この本は, Linux を使いはじめてそろそろ物足りなさを感じ, 自分用にカス タマイズしていきたいと感じはじめた脱初心者の方や, 一つのディストリビュー ションだけでは満足できない方, 急に使用した事のないディストリビューション の管理をまかされてしまった方に特にお勧めしたい良著だと思う.
表や図に分かりやすいものが多かった. 私としては, 各コマンドの実行例が 便利だった. 何故なら, 本当に興味のあるコマンドは実際に実行してみて, それ 以外のコマンドは読むことだけで済ませられるからだ.
章立てが適切であると思った. (本書の目次)
本書は, 各ディストリビューションの管理ツールで, パッケージを一元管理 できるようにする目的・思想の下に書かれている. パッチを当てる目的なら, パッ ケージングしないで make installによって使える状態にできるが, パッケージングによって一元管理した方が, 依存関係の把握やアンインストー ルなどに便利なのだそうだ.
本書はタイトルの通り, 「パッケージ管理」と「パッケージ構築入 門」に関する本である. 「パッケージ管理」については, ほぼ完結して いると私は考える.
「パッケージ構築」に関しては, 本書は, 基本的には「カスタムパッケージ」 を作ることに慣れるための本のようだ. カスタムパッケージとは, 「既存のパッ ケージ」を利用して, パッチを当てるなどしてカスタマイズしたパッケージのこ とである. このようなパッケージ構築の入門で満足できず, 入門以上のことをす るためには, 特定のパッケージやディストリビューションなどのシステムのより 深い部分について理解しなければならないだろう. また, 特定のパッケージやディ ストリビューションには, それぞれの著作者やグループの思想があるはずなので, それを理解する必要もあるだろう.
損は無いと私は考える.
RPM, deb, tgz の各パッケージについて, 一通りの知識を得ることができた. 私は Debian を使用しており, 他のパッケージの知識については, なかなか得る 機会がなかったので, 良い勉強になった.
インストールに際して, 調べるべき情報として, 本書ではディストリビュー ションを始めとした各種のバージョン情報について言及している. さりげなく使 われている「主なディストリビューションとシステムのバージョン」という一覧 表が便利だった.
libc の話が興味深かった.
60 頁コラムの「RPM のテスト環境」が便利だった. 私もさっそく (Debian 環 境で) rpm コマンドを使ってみた.
本書の図による解説に刺激され, dselect を初めて使用してみた. (これは便 利なツールですね)
make や patch(diff)などについての「使い方」や「ヒント」を得ることがで きた. (開発ツールの解説は Linux プログラミングの第 8 章にもあったが, gcc や patch 等のツールの解説に関しては 本書の方が詳しい説明である, と私は感じ た).
本章の知識は, 次章(第 3 章「パッケージを作る」)で役立った.
この章が本書の中心であると思う. 内容も面白かった.
この節では, 以降の第 3 節「RPM パッケージを作る」と第 4 節「deb パッ ケージを作る」の骨格となる
という基本のパッケージングを行なっていた.
「一般ユーザのホームディレクトリ下でパッケージの構築作業を行なう方法」 は便利だった. 私もさっそく本書に追随して, 「パッチを修正してみる」まで実 際にやってみて, (Debian 環境で) RPM パッケージを作ってみた.
さりげなく書かれているが, 「man ファイルの名前」というコラムが興味深 かった.
私は試しに blender の最新版 (Linux x86 用の blender2.12-linux-glibc2.1.2-i386-static.tar.gz)を個人用 に Debianize (deb パッケージ化)してみた. 具体的には, この tarball を展開 して, 既存の blender パッケージのパッケージ用差分ファイルでパッチ当てし, debchange し(バージョンは2.12-local.1.0とした), dpkg-buildpackageした.
alien については, SRPM パッケージと Debian パッケージソースの活用につ いても言及しているので, 有用だろう.
序章・第 1 節はもう少し簡潔にまとめてしまって良い, と私は考える.
Debian ユーザが RPM についての解説を読んだとき, やはり「実際にやって みたくなる」のが人情だろう. だから, 本書 60 頁のコラム「RPM のテスト環境 を作る」は, Debian ユーザのことを考慮し, 始めの方で取り上げるか, 45頁の Tips で 60 頁を参照しておいて欲しかった.
これまでパッケージなどは全く意識せず, 行き当たりばったりで使ってきた ので, これを機会に勉強してみようと思っていました. この本の中では, 主要パッ ケージに関してまとめられてますが, 3種類のパッケージのどれがいいのか, と いうことがわからなかったので使うとなるとかなり迷う気がします.
パッケージ管理の必要性も今一感じる事ができなかったので, じっくり勉強 して……という意識にはいたりませんでした.
この本を持っていれば, いろいろと試して見るとは思うのですが, 無いから と言って何か困るわけでもなさそうな印象で, 絶対持つべきと言える本ではない と思います. パッケージ管理そのものがそういうものなのかもしれませんが. た だ, システムを開発すると言う面から考えるとパッケージを作るという章が使え そうだとは思います.
構成としては, コラムやTipsが充実していて初心者にとっては痒いところに 手が届くようになっておりそういう意味では親切な本だと思います.
細かい情報がまとめられていても, 必要な情報にたどり着くのに時間がかかっ てしまうのが多い中では非常に読み手のことを意識して構成をされたのではない かと思います.
必要性が無いような事を書きましたが, 初心者のわたしとしてはという意味 で, 使いこなしている人たちにとって, パッケージ管理は非常に大切なものなの かもしれません. 折角手に入れた本ですので, これを機に参考にしながらパッケー ジ管理を学んでみたいと思っています.