
|
[バックナンバーのトップへ] [Linux システム管理のトップへ] いますぐ実践! Linux システム管理 / Vol.131 / 読者数:1290名こんばんは、うすだです。
当メルマガは、3年前の2月末に、第1号を発行しました。
読みにくい文章や読みづらい構成、ときには誰もついてきていないかも的なネタで、
みなさまを当惑させ続けてきたように思います。 これからも、持てる能力をフル活動させて、なるべくわかりやすく、 かつ役に立つ内容をお送りしたいと思いますので、よろしくお願いします。 そうそう、これを機会に、みなさまに、 あらためてお知らせしておきたいことがあります。 それは、実際に試してみる、ということの大切さです。
所詮、本などを読んで得た知識は、そのときはなるほどと思っても、
時がたつにつれて、記憶が薄れていってしまうものです。 わたしも、最初入った会社で、システム管理を任されたときは、 あちこちのマシンの設定を試しては失敗する、ということをやらかしていました。
たとえば、NIS とか NFS の設定を間違えてしまいますと、OS ごと固まることがあり、
周囲のひとみんなに迷惑がかかります。 …ああ、ちょっと意識しただけで、脳ミソから失敗が、いくつも出てきてしまいます。 (他に、書けない失敗や、思い出になってない失敗も…。)
ひとさまに迷惑をかけることは、もちろんよいことではありません。 …と、原点をかえりみたところで、今回も、はりきってまいりましょう! 今回のお題 - deb パッケージを作成する前回、RPM パッケージを手抜きで作成する方法を、ご紹介しました。
Vol.130 - RPM パッケージを作成する 使ってるのは Debian 系だからなぁとか、RPM ばっかりずるいぞ! とか、 厳しい意見がわんさか…なんてことはなく、いつも通り反響がなかったのですが、 読めない空気を読み取って、今回は、 deb パッケージの作成方法を取り上げてみたいと思います。 本質的には、RPM も deb も大差ないと、わたしは思っているのですが、 もちろん、使用するコマンドや、ファイルの構成はかなり異なります。 Debian 系のかたはもちろんですが、そうでないかたも、 となりの芝生が青いかどうかを確認する材料として、読んでいただけますと幸いです。
さて、今回の目標ですが、前回と同様、
パッケージ化したいファイル一式がすでにわかっていて、
それらを deb パッケージにすること、にしたいと思います。 というわけで、deb パッケージ化の手順は、以下の通りです。
今回は、環境の用意が間に合わず、
Ubuntu 7.10ja と 6.10ja でのみ確認しました。 まずは、deb パッケージを作成するために必要なものをそろえます。
具体的には、dh-make, fakeroot, dpkg-dev といったところのパッケージが、
必要となります。 # apt-get install dh-make fakeroot dpkg-dev
そして、作業用の適当なディレクトリを作成します。 別に、ホームディレクトリ直下などででも、パッケージを作成することは可能です。 ただ、パッケージ作成の際に、いくつかのファイルができますので、 どのファイルが作られたのかがわかるように、 特定のディレクトリで行うようにしたほうが、無難です。 名前はなんでも構いませんが、ここでは、 ~/debu というディレクトリにしておきます。(…と、特に理由はありません。) % mkdir ~/debu では次に、前回使用したファイルを、お取り寄せします。 http://www.usupi.org/sysad/130_usudigest.tgz ↑を、ブラウザや wget コマンドなどを使って、入手しましょう。 そして、先ほどの ~/debu に、アーカイブだけを展開します。 % tar xvfz 130_usudigest.tgz -C ~/debu usudigest-0.1.tgz さらに、アーカイブを展開し、展開した先へ移動します。 % tar xvfz ~/debu/usudigest-0.1.tgz -C ~/debu % cd ~/debu/usudigest-0.1 ここで、dh_make コマンドを実行し、必要なファイルを自動的に生成してもらいます。 % dh_make -e usu@usupi.org -f ../usudigest-0.1.tgz Type of package: single binary, multiple binary, library, kernel \ module or cdbs? [s/m/l/k/b]
-e オプションには、あなたのメールアドレスを指定してください。
すると、最終確認の末、debian というディレクトリが作成されます。 さて、そうしましたら、パッケージを作成…の前に、debian 以下にあるファイルを、 編集する必要があります。
まずは、debian/control ファイルです。 ...前略... Section: admin Priority: optional ...中略... Description: calculate digest usuDigest is a perl script for calculating digest. This is very small, simple and experimental.
Section には、パッケージの種別を指定します。
そして、debian/copyright および debian/changelog のうち、
<> などで記述されているところを、それらしき記述に書き換えます。 他に、debian/rules や debian/docs なども、 本来は編集する必要があることもありますが、今回はそのままでも問題ありません。 さあ、いよいよお待ちかね、deb パッケージの作成です。
作成には、dpkg-buildpackage コマンドを用います。 % dpkg-buildpackage -rfakeroot すると、~/debu の下に、以下のファイルが作成されます。
公開する場合は、いくつかのファイルが必要になりますが、 個人や組織の中だけで使用するなら、deb パッケージだけ使えばよいと思います。
まずは、中身を確認してみましょう。 % dpkg -I usudigest_0.1-1_i386.deb また、-c オプションつきで実行しますと、 パッケージ内のファイル一覧を出力してくれます。 正しいかどうかチェックしてください。 % dpkg -c usudigest_0.1-1_i386.deb 問題がなさそうでしたら、-i オプションをつけて、インストールを行います。 (root の権限が必要です。) # dpkg -i usudigest_0.1-1_i386.deb
どうでしょうか。問題ないでしょうか。 # dpkg -r usudigest
dpkg コマンドにつきましては、初期のころにご紹介しております。
Vol.033 - パッケージを管理する 〜 deb 編
これは余談ですが、deb パッケージは ar 形式ですので、 ar コマンドで中身を見ることもできます。 % ar t usudigest_0.1-1_i386.deb debian-binary control.tar.gz data.tar.gz それぞれのファイルの内容については、各自でご確認くださいまし。 以上、なんちゃって deb パッケージの作成方法を、ご紹介しました。
これは、あくまでも、
ありもののファイルを簡単にパッケージ化するための方法です。 ちなみに、deb パッケージの作成や公開に関しては、以下が参考になると思います。
Debian 新メンテナガイド
今回のように、個人や組織内でのみ使用し、公開する予定はない、という場合は、
ある程度読み飛ばせます。 宿題の答え前回の宿題は、 今回のファイルを使用して、実際に RPMパッケージを作成しましょう。 でした。 今度は、実際にある Perl モジュールを対象にしてみたいと思います。
どれがふさわしいのか悩むところですが、Vine Linux4.2 にはなかった、
Digest::SHA2 の RPM パッケージを、簡易作成してみようと思います。 まずは、以下から、ソースコードを取り寄せます。
Digest::SHA2 これを展開して、とある場所にインストールします。 % tar xvfz Digest-SHA2-1.1.1.tar.gz % cd Digest-SHA2-1.1.1 % perl Makefile.pl % make % make test % mkdir /tmp/dest-usu % make DESTDIR=/tmp/dest-usu install
手順は、INSTALL ファイルに書いてある方法と、ほぼ同じです。
次に、前回使用した以下のファイルを、入手してください。 http://www.usupi.org/sysad/130_usudigest.tgz これを、適当な場所で展開します。 % tar xvfz 130_usudigest.tgz % ls usudigest-0.1.tgz usudigest.spec さらに usudigest-0.1.tgz を展開し、ディレクトリ名を変更します。 % tar xvfz usudigest-0.1.tgz % mv usudigest-0.1 perl-Digest-SHA2-1.1.1 まずは、README ファイルを、Digest::SHA2 のものに変更します。 % cp -p ~/Digest-SHA2-1.1.1/README perl-Digest-SHA2-1.1.1/
もちろん、インストール内容も差し替えます。 % rm -rf perl-Digest-SHA2-1.1.1/dest % mv /tmp/dest-usu perl-Digest-SHA2-1.1.1/dest これを tar+gzip で圧縮し直せば、(偽の)ソースアーカイブは完成です。 % tar cvfz ~/rpm/SOURCES/perl-Digest-SHA2-1.1.1.tgz \ perl-Digest-SHA2-1.1.1
あと、忘れてはいけないのが、肝心の SPEC ファイルですよね。 % mv usudigest.spec ~/rpm/SPECS/perl-Digest-SHA2.spec
よくわからないという貴兄は、以下を参考にしてください。 http://www.usupi.org/sysad/131_digest_sha2_spec.txt ここまでたどり着きましたら、あとはパッケージを作成するだけです。 % rpmbuild -bb ~/rpm/SPECS/perl-Digest-SHA2.spec 以上で、RPM パッケージが完成します。(するはず…です。)
ただ、先ほども書きましたが、これはあくまでも、邪道なやりかたです。 今回の宿題今回の宿題は、 今回のファイルを使用して、実際に debパッケージを作成しましょう。 です。
前回の宿題と同様、ホンモノを deb パッケージにしてみます。 あとがきみなさまの中には、システム管理を専業とされているかたもいらっしゃると思いますが、 SE やプログラマー、あるいはサポート業務などの合間に管理しているかたも、 大勢いらっしゃるのではないかと思います。 いずれにしましても、大半のかたがたが、朝から夜中まで、 平日だけではなく土日も出勤して、納期などと戦われていることと思います。 そんな生活をしていますと、結婚してもすれちがい的な生活になったり、 それ以前に出会いがなかったりして、いろいろと悩まれているのではないでしょうか。
さて、本題に入りましょう。 7年間ほったらかしの彼女は、SEの彼氏に何を求める? SE200人への緊急アンケート調査を公開します。 http://www.searchman.info/repo.html 理論的なことも大事だと思いますが、似たような境遇に置かれているひとたちが、 どのように考えているのか、生の声を聞くことも大事ではないでしょうか。 わたしも拝見させていただきましたが、どちらか両極端に二分されるのかと思いきや、 思った以上にさまざまな意見があって、既婚者からみても、 いろいろと参考になりました。 もちろん、これから結婚する(かもしれない)というひとにとっても、参考になります。 メールアドレスを登録するだけで読めますので、是非読んでみてください。
今日は、珍しく昼間ひとりでしたので、いつもよりゆったりと書くことができました。
だからでしょうか、とうとう400行を越えてしまいました。
あ、次回は、2週間後ではなく、その次の3月9日にさせていただきます。
今回も、ここまで読んでいただき、ありがとうございました。
「いますぐ実践! Linux システム管理」の解除は、以下からできます。
バックナンバーは、こちらにほぼ全部そろっています。
「栗日記」− 栗ネタに数時間悩むのをやめにしたい…でも楽しいです。 |
▼ トップ ▼ プロフィール ▼ リンク
▼ 作ってみました
▼ せんでん
▼ 最近読んだ本 [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の創りかた」 渡波 郁 「非常識な成功法則」 神田 昌典 …これ以前は記録してません…
▼ 気に入ってる本
| ||||||||||||||||||||||||||||||||||||||||