
|
[バックナンバーのトップへ] [Linux システム管理のトップへ] いますぐ実践! Linux システム管理 / Vol.130 / 読者数:1275名こんばんは、うすだです。 最近、我が家では、「デルトラクエスト」の小説が大人気です。
デルトラクエスト (小説) 最初は、子どもが読みはじめ、よめがつられて読みはじめて、母子の会話には、 デルトラクエストがしばしば出てくるようになりました。 …ただ、わたしは、今のところまったく読んでいません。
「どう森」ブームのときも、母子間では盛り上がっていたものの、
わたしは会話についていけませんでした。ですので、今回は乗り遅れないぞ!
と思ってましたが、残念ながら、乗り遅れてしまっております。 うーん、なんだか悔しいので、 今年の目標は「デルトラクエストを読む」にしたいと思います。 微妙な結論に達したところで、今回も、はりきってまいりましょう! 今回のお題 - RPM パッケージを作成する最近は、新しいモノでも、はじめから、 RPM や deb 形式のパッケージで提供されることが、 かなり当り前になってきたように思います。
ソース・アーカイブを伸長して、
configure とか make とかしていたころから比べますと、
ずいぶん便利な世の中になりました。
しかし、すべてが RPM パッケージ化されているわけではありません。 それが逆に、システム管理者の腕の見せ所だったりするのかもしれませんが、 とはいえ、システム管理者も人の子です。楽できるなら、楽をしたいと思うのが、 人情というものでしょう。 というわけで、今週は、自力で RPM パッケージに仕立てあげる方法を、 なるべく簡単にご紹介したいと思います。
RPM パッケージと書いている以上、
RedHat 系のディストリビューションに限られてしまうということは、
ご理解いただけると思います。
さて、今回の目標は、パッケージ化したいファイル一式がすでにわかっていて、
それらを RPM パッケージにすること、にしたいと思います。 というわけで、RPM パッケージ化の手順は、以下の通りです。
この順番で、ご説明していきたいと思います。 まずは、RPM パッケージを作成するための環境を準備します。
一般ユーザの権限で行うほうがよいそうですので、ホームディレクトリの直下に、
rpm というディレクトリを用意します。
% mkdir -p ~/rpm/{SPECS,SOURCES,BUILD,SRPMS,RPMS}
そして、~/.rpmmacros にその旨を記述します。
%_topdir ${HOME}/rpm
ただ、Fedora さんの場合、${HOME} を解釈してくれないようですので、 以下のように直接指定してください。(ホームが /home/usu の場合) %_topdir /home/usu/rpm ちなみに、Vine のかたは、すでにそうなっていますので、何もしなくて結構です。 次に、「SPECファイル」というものを用意します。 SPECファイルには、ライセンスや提供元から、コンパイルやインストール方法まで、 さまざまな情報を記述する必要があります。 SPECファイルの記述方法を一からご紹介しますと、とっても膨大になってしまいます。 当メルマガは、「習うより慣れろ」をモットーとしていますので、今回は、 パッケージの作成に重点を置くことにして、SPECファイルの説明は、 ごっそり割愛させていただきます。 というわけで、まずは、以下のSPECファイルをご覧ください。 http://www.usupi.org/sysad/130_usudigest_spec.txt
これが、今回使用する SPECファイルです。
最初に申し上げた、usuDigest というツールの SPECファイルです。
ただ、今回は、usuDigest の RPM パッケージを作成しますので、 これをそのまま使用します。 それでは次に、ソース・アーカイブを用意します。 中身は、Makefile と、説明が書いてある README ファイル、そして肝心の、 パッケージにするファイル群です。 Makefile は、以下のように、dest ディレクトリ以下にあるファイルを、 $(DESTDIR) 以下へ、ごっそりコピーするだけのものです。 install: @[ -d $(DESTDIR) ] || mkdir -p $(DESTDIR) @tar cf - -C dest . | tar xfp - -C $(DESTDIR) ですので、dest という名前のディレクトリを作成し、 パッケージに必要なファイルすべてを、dest ディレクトリにコピーします。 そして、Makefile, README と dest を、 "パッケージ名-バージョン" というディレクトリの下に置き、 tar+gzip のアーカイブにします。 % ls usudigest-0.1 Makefile README dest/ % tar cvfz usudigest-0.1.tgz usudigest-0.1 ...
そして最後に、rpmbuild コマンドで、パッケージに仕立てあげます。 SPECファイルを ~/rpm/SPECS に、ソース・アーカイブを ~/rpm/SOURCES に置きます。 % ls ~/rpm/SPECS/usudigest.spec ~/rpm/SOURCES/usudigest-0.1.tgz /home/usu/rpm/SOURCES/usudigest-0.1.tgz /home/usu/rpm/SPECS/usudigest.spec そして、rpmbuild コマンドを実行します。 % rpmbuild -bb ~/rpm/SPECS/usudigest.spec
引数には、SPECファイルを指定します。 すると、うまくいけば、RPM パッケージが作成されます。 % rpm -qlp ~/rpm/RPMS/noarch/usudigest-0.1-usu0.noarch.rpm /etc/usudigest.conf /etc/usudigest.d /etc/usudigest.d/hosts /etc/usudigest.d/passwd /usr/sbin/usudigest.pl /usr/share/doc/usudigest-0.1 /usr/share/doc/usudigest-0.1/README
README ファイルは、/usr/share/doc/パッケージ名-バージョン/
の下に置いてくれます。 BuildArch: noarch
さて、これで RPM パッケージが完成しました。 # rpm -i usudigest-0.1-usu0.noarch.rpm もちろん、要らなくなったら、rpm -e で一発消去できます。(便利〜) # rpm -e usudigest 以上、簡易的な RPM パッケージ化の方法を、ご紹介しました。
今回使用したファイルを、以下にまとめておきました。 http://www.usupi.org/sysad/130_usudigest.tgz また、RPM パッケージの作成方法に関しては、以下の本が、とても参考になりました。
Inside Linux Software オープンソースソフトウェアのからくりとしくみ RPM パッケージだけでなく、autoconf や libtool, 国際化等についても詳細な説明があり、かゆいところに手が届く、便利な本です。
今回、パッケージの依存関係がなく、インストール前後に必要な作業などもない、
という簡単なケースでご説明しました。 宿題の答え前回の宿題は、 Cygwin で xinetd を起動してみましょう。 でした。
まず、当然ですが、xinetd が必要です。 追加しましたら、xinetd-config を起動します。 $ xinetd-config -y
-y オプションは、ssh-host-config と同様、
すべての問いに「はい」と答えるための呪文です。 $ xinetd 素の状態でも、echo とか daytime とか chargen が動きます。 % telnet Cygwinが動いているマシン daytime Trying 192.168.1.222... Connected to Cygwinが動いているマシン. Escape character is '^]'. 24 JAN 2008 01:54:28 ^] telnet> close Connection closed.
これにより、xinetd を試すための環境ができたことになります。
Vol.006 - うそうそWWWサーバを作る
また、Windows の起動時に xinetd を自動起動させるには、
initscripts と chkconfig が必要です。
その手順を書くとまた長くなってしまいますので、超大雑把に説明しますと、
init をサービスに登録して、init 経由で xinetd が起動するように設定します。 今回の宿題今回の宿題は、 今回のファイルを使用して、実際に RPM パッケージを作成しましょう です。
http://www.usupi.org/sysad/130_usudigest.tgz ご説明した手順で、SPECファイルの一部を書き換え、 ソース・アーカイブの dest/ 以下を変更するだけでできます。 是非トライしてみましょう。 あとがき正直に申し上げますと、Inside Linux Software という本は、今年の1月に、 図書館で借りてきました。(正式に延長して、まだ借りています。) 簡単に RPM パッケージ化できることがわかってからは、 いろいろなものをパッケージにして、将来に備えて(?)います。 最近、勝手に RPM パッケージにしたのは、IPAフォントです。
IPAフォント
最近、無償で利用できるようになった TrueType フォントです。
本業と直接関係ないところに情熱を注ぐのは、今も昔も変わりません。
いやしかし、今日は寒いですね。
今回も、ここまで読んでいただき、ありがとうございました。
「いますぐ実践! 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の創りかた」 渡波 郁 「非常識な成功法則」 神田 昌典 …これ以前は記録してません…
▼ 気に入ってる本
| ||||||||||||||||||||||||||||||||||||||||