RPMで行こう!!
                                                                        http://fedora.jp/




                RP...
これは何の話?
                                                             http://fedora.jp/



      ●   Fedora Coreで使用されているパッケ...
セッションの流れ
                                                             http://fedora.jp/



      ●   RPMって何?
      ●   tar...
このセッションで一番いいたいこと
                                                             http://fedora.jp/



      ●   tarballを直接ビルド...
RPMって何?
                                                             http://fedora.jp/



      ●   Red Hat, Inc.が開発したパッケー...
RPMを使うとどうよくなる?
                                                             http://fedora.jp/



      ●   はじめにSPECファイルという...
RPMみたいなのって他にあるの?
                                                             http://fedora.jp/



      ●   deb – Debian ...
RPMを使わないビルドとインストール
                                                             http://fedora.jp/



      ●   ありがちパターン
  ...
RPMを使ったビルドとインストール
                                                             http://fedora.jp/



      ●   そんなに難しくない
  ...
RPMのフロントエンド
                                                             http://fedora.jp/



      ●   RPMを便利に管理するためのアプリケ...
フロントエンドって何?
                                                             http://fedora.jp/



      ●   リポジトリというRPMを集めたディレ...
フロントエンドって何?
                                                             http://fedora.jp/



      ●   リポジトリ上の更新されたRPMをうま...
RPMにはなにがあるの?
                                                             http://fedora.jp/



      ●   Fedora Coreはyum・u...
yumって何?
                                                             http://fedora.jp/



      ●   Yellow dog Updater, Mo...
apt-rpmって何?
                                                             http://fedora.jp/



      ●   aptはAdvanced Packa...
リポジトリって何?
                                                             http://fedora.jp/



      ●   下記の情報を持つもの
         ...
GUIないの?
                                                             http://fedora.jp/



      ●   あります
      ●   yum
   ...
gyumを使う
                                                             http://fedora.jp/




                               ...
yumとapt-rpmどっちがいいの?
                                                             http://fedora.jp/



      ●   yumのメリット
 ...
yumとapt-rpmどっちがいいの?
                                                             http://fedora.jp/



      ●   apt-rpmのメリ...
さてさて少し難しくなります
                                                             http://fedora.jp/



      ●   そろそろRPMを作ってみましょう...
RPMってどうやって作るの?
                                                             http://fedora.jp/



      ●   必要なソースファイルなどを用意...
SPECファイル
                                                             http://fedora.jp/



      ●   RPMのビルド手順を記述したファイル
  ...
セクションって何よ?
                                                             http://fedora.jp/



      ●   目的に応じた作業を記述する場所
   ...
グローバル関連セクション
                                                             http://fedora.jp/



      ●   RPMについての全体的な情報を記述...
グローバル関連セクション
                                                             http://fedora.jp/



      ●   Packageセクション
    ...
パッケージグループ
                                                                                   http://fedora.jp/



      ● ...
ビルド関連セクション
                                                             http://fedora.jp/



      ●   prepセクション
         ...
パッケージ構築関連セクション
                                                             http://fedora.jp/



      ●   installセクション
  ...
パッケージ構成関連
                                                             http://fedora.jp/



      ●   filesセクション
         ...
インストール関連セクション
                                                             http://fedora.jp/



      ●   pre・post
       ...
インストール関連セクション
                                                             http://fedora.jp/



      ●   preun・postun
   ...
インストール関連セクション
                                                             http://fedora.jp/



      ●   アップデートとは実はアンインスト...
変更履歴関連
                                                             http://fedora.jp/



      ●   読んで字のごとく
      ●   いわゆる...
RPMを作りましょう
                                                             http://fedora.jp/



      ●   とりあえず何か作りましょう
     ...
skfって何?
                                                             http://fedora.jp/



      ●   nkf互換の漢字フィルター
        ...
簡単なSPECファイル
                                                             http://fedora.jp/



      ●   グローバル関連セクション
     ...
簡単なSPECファイル
                                                             http://fedora.jp/



      ●   ビルド関連セクション
      ●...
簡単なSPECファイル
                                                             http://fedora.jp/



      ●   パッケージ構築関連セクション
   ...
簡単なSPECファイル
                                                             http://fedora.jp/



      ●   パッケージ構成関連セクション
   ...
SPECからRPMを作ってみる
                                                                    http://fedora.jp/



      ●   変更履歴関連セ...
実際に作成してみよう
                                                             http://fedora.jp/



      ●   SOURCESディレクトリにソースを保...
作成したRPMをインストール
                                                             http://fedora.jp/




         # rpm -ihv skf-...
とりあえず作るだけなら簡単
                                                             http://fedora.jp/



      ●   さっきのSPECファイルを雛形に...
もうちょっとちゃんと作る
                                                             http://fedora.jp/



      ●   ちゃんと作るとfilesセクション...
覚えておきたいデフォルトマクロ
                                                             http://fedora.jp/



      ●   マクロコマンド
      ...
覚えておきたいデフォルトマクロ
                                                             http://fedora.jp/



      ●   マクロ定数
        ...
覚えておきたいデフォルトマクロ
                                                             http://fedora.jp/



      ●   マクロ定数
        ...
自分でリポジトリを作ろう
                                                             http://fedora.jp/



      ●   ここではyumのリポジトリを作りま...
っで、そんなもの必要なの?
                                                             http://fedora.jp/



      ●   こういう人はあると便利
    ...
それでは作ります
                                                             http://fedora.jp/



      ●   作るのは簡単
           –  ...
作業ディレクトリを用意
                                                             http://fedora.jp/




         $ mkdir -p /var/ww...
RPMをコピーしまくる
                                                             http://fedora.jp/




         $ cp -a *.rpm 
   ...
データベースを作る
                                                             http://fedora.jp/




         $ cd /var/www/html/r...
それだけ?
                                                             http://fedora.jp/



      ●   リポジトリ作成それだけなのです
      ● ...
本当に使えるか試してみよう
                                                             http://fedora.jp/



      ●   先ほどのskfをyum経由でイン...
yumの指定
                                                             http://fedora.jp/



      ●   /etc/yum.repo.d/にmyrepo...
ローカルのデータベースを更新
                                                             http://fedora.jp/




         # yum list




...
yumでインストール
                                                             http://fedora.jp/




         # yum install skf

...
時間あるかな?
                                                             http://fedora.jp/



      ●   これ位はRPMを使うなら覚えておこう!!

...
インストール・アップデート・アンイン
 ストール                                                        http://fedora.jp/



      ●   インストール
    ...
インストール前
                                                             http://fedora.jp/



      ●   RPMの情報
           –   ...
インストール前
                                                             http://fedora.jp/



      ●   RPMの情報を整形出力
          ...
インストール後
                                                             http://fedora.jp/



      ●   基本的に「インストール前」から「-p」を抜く...
インストール後
                                                             http://fedora.jp/



      ●   ファイルを保持するRPM名
        ...
終り
                                                             http://fedora.jp/



      ●   わざわざRPMを作るとここが便利ですよ
       ...
http://fedora.jp/




                  ご清聴ありがとうございました。




                                                       2005年3月...
Upcoming SlideShare
Loading in …5
×

RPMで行こう!! RPMを使いたくなるといいなというお話

2,403 views

Published on

Published in: Technology
  • Be the first to comment

RPMで行こう!! RPMを使いたくなるといいなというお話

  1. 1. RPMで行こう!! http://fedora.jp/ RPMを使いたくなるといいなというお話 Fedora JP Project Tadashi Jokagi <jokagi@fedora.jp> 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 1
  2. 2. これは何の話? http://fedora.jp/ ● Fedora Coreで使用されているパッケージ管理 システムRPMとそのメリット・デメリットと、RPM の作り方などのセミナーです。 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 2
  3. 3. セッションの流れ http://fedora.jp/ ● RPMって何? ● tarballから直接ビルド・インストールとの違い やメリット・デメリット ● RPMフロントエンドについて(yum他) ● 自分でRPMを作ろう ● 自分でリポジトリを作ろう(yum) 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 3
  4. 4. このセッションで一番いいたいこと http://fedora.jp/ ● tarballを直接ビルドしてインストールするな ● RPMを作ってインストールしろ!! – なので他が薄いですがあしからず;-) 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 4
  5. 5. RPMって何? http://fedora.jp/ ● Red Hat, Inc.が開発したパッケージ管理システ ム ● RPM Package Managerの略 ● 昔はRedhat Package Managerの略 ● Red Hat, Inc. のjbjという人が現在のメンテ ナー ● システムのパッケージ構成の管理とパッケー ジファイルのメンテナンスを行う 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 5
  6. 6. RPMを使うとどうよくなる? http://fedora.jp/ ● はじめにSPECファイルという形式でビルド手 順を記述するので、二度目以降のビルドが楽 になる ● インストールされるファイルを把握できる ● 基本的に依存関係を正しく保ってくれる – 正しく処理できない場合、多くはユーザーが悪い ● ファイルのインストールだけではなくシステム の制御も同時に行える ● パッケージの正当性を調べることができる 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 6
  7. 7. RPMみたいなのって他にあるの? http://fedora.jp/ ● deb – Debian GNU/Linuxで用いられている形 式 ● Portage – Gentoo GNU/Linuxで用いられる形 式 ● Ports/Package – FreeBSDで用いられる形式 ● Fink – Mac OS Xで用いられる形式(Apple製で はない) ● pkg - Solarisで用いられる形式 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 7
  8. 8. RPMを使わないビルドとインストール http://fedora.jp/ ● ありがちパターン $ gzip -dc foo-1.0.0.tar.gz | tar zxf - $ cd foo-1.0.0 $ ./configure –prefix=/usr/local $ make $ su - # cd .../foo-1.0.0 # make install 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 8
  9. 9. RPMを使ったビルドとインストール http://fedora.jp/ ● そんなに難しくない $ rpmbuild --rebuild foo-1.0.0-1.src.rpm (case1) $ rpmbuild -ta foo-1.0.0-tar.gz (case2) $ rpmbuild -ba foo.spec (case3) $ su - # rpm -ihv .../foo-1.0.0-1.i386.rpm ●そもそもバイナリが既にあればビルドすら要らない 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 9
  10. 10. RPMのフロントエンド http://fedora.jp/ ● RPMを便利に管理するためのアプリケーション ● 一度使い出すと、なくては困る人間が退化す るアプリケーション 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 10
  11. 11. フロントエンドって何? http://fedora.jp/ ● リポジトリというRPMを集めたディレクトリから 必要なRPMを入手できる – リモートサーバーでもOK – 複数のリポジトリを同時に処理できる ● 依存関係もまとめて管理してくれる 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 11
  12. 12. フロントエンドって何? http://fedora.jp/ ● リポジトリ上の更新されたRPMをうまくアップ デートしてくれる ● 自動実行しておくと勝手に最新になっていく – サーバー用途ではまったくすすめないが 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 12
  13. 13. RPMにはなにがあるの? http://fedora.jp/ ● Fedora Coreはyum・up2dateが標準パッケージ 管理システム – Up2dateは元々Red Hat Linux・Red Hat Enterprise Linux用 ● Fedora Core標準ではないがapt-rpmも有名 – ただし事実上標準ともいえる ● その他のディストリビューション – turbopkg(zabon) - Turbolinux – YAST – SuSE 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 13
  14. 14. yumって何? http://fedora.jp/ ● Yellow dog Updater, Modifiedの略 ● 公式サイトは http://linux.duke.edu/projects/yum/ ● 元々Yellowdog Linuxのアプリケーション ● pythonで記述されている ● CentOSもyumが使える(らしい) 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 14
  15. 15. apt-rpmって何? http://fedora.jp/ ● aptはAdvanced Package Toolの略 ● 元々Debian GNU/Linuxのアプリケーション – RPM管理なのでapt-rpmに名前が変わった ● apt-rpmの公式サイトは http://apt4rpm.sourceforge.net/ ● Vine Linuxのパッケージ管理システム ● 私はかたくなに使っていない(苦笑) 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 15
  16. 16. リポジトリって何? http://fedora.jp/ ● 下記の情報を持つもの – RPMを集めたディレクトリ – RPM毎の固有情報 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 16
  17. 17. GUIないの? http://fedora.jp/ ● あります ● yum – gyumが有名 – 私はそもそもLinuxでGUIを使わないのであまり知 らない ● apt-rpm – Synapticが有名 – apt-rpmもGUIも使わないのでさらに知らない 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 17
  18. 18. gyumを使う http://fedora.jp/ 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 18
  19. 19. yumとapt-rpmどっちがいいの? http://fedora.jp/ ● yumのメリット – 標準でついてくる – 標準で基本的な設定がされている ● yumのデメリット – メモリを多く消費する – 若干重い – 最低限の機能しかない 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 19
  20. 20. yumとapt-rpmどっちがいいの? http://fedora.jp/ ● apt-rpmのメリット(yumと比較して) – 多機能。とにかく必要なことはおおむねできる。 – yumに比べ、少メモリの消費と高速である ● apt-rpmのデメリット – Vine Linux以外はapt-rpm自体の配布元が複数あ り、衝突の発生がしやすい ● 問題が発生すると、「どのapt-rpm使ってるの?」から始 まる – 同じくディストリビューションに特化したリポジトリで ない場合が多く、ディストリビューションのRPMとの 衝突が起こることがある 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 20
  21. 21. さてさて少し難しくなります http://fedora.jp/ ● そろそろRPMを作ってみましょう… 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 21
  22. 22. RPMってどうやって作るの? http://fedora.jp/ ● 必要なソースファイルなどを用意する ● SPECファイルを用意する ● rpmbuildコマンドでビルドを行う 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 22
  23. 23. SPECファイル http://fedora.jp/ ● RPMのビルド手順を記述したファイル ● 内部でいくつかのセクションを持つ 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 23
  24. 24. セクションって何よ? http://fedora.jp/ ● 目的に応じた作業を記述する場所 – グローバル関連(ID・packageセクション) – ビルド関連(prep・buildセクション) – パッケージ構築関連(clean・installセクション) – パッケージ構成関連(filesセクション) – インストール関連(pre・post・preun・postunセクショ ン) – 変更履歴関連(changelogセクション) 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 24
  25. 25. グローバル関連セクション http://fedora.jp/ ● RPMについての全体的な情報を記述する ● IDセクション – パッケージ名(Name)グループ(Group) – バージョン番号(Version)リリース番号(Release) – ソースファイル(Sources)パッチファイル(Patch) – 依存関係(Requires) – その他もろもろ ● Description – RPMの説明 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 25
  26. 26. グローバル関連セクション http://fedora.jp/ ● Packageセクション – サブパッケージの情報 – IDセクションとdescriptionセクションをいくつか記述 する 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 26
  27. 27. パッケージグループ http://fedora.jp/ ● /usr/share/doc/rpm-<version>/GROUPSに 記述されている ● Amusements/Games Applications/Multimedia Documentation Amusements/Graphics Applications/Productivity System Environment/Base Applications/Archiving Applications/Publishing System Environment/Daemons Applications/Communications Applications/System System Environment/Kernel Applications/Databases Applications/Text System Environment/Libraries Applications/Editors Development/Debuggers System Environment/Shells Applications/Emulators Development/Languages User Interface/Desktops Applications/Engineering Development/Libraries User Interface/X Applications/File Development/System User Interface/X Hardware Support Applications/Internet Development/Tools 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 27
  28. 28. ビルド関連セクション http://fedora.jp/ ● prepセクション – ビルドの準備を行う – 大体はtarballの展開とパッチ当て ● buildセクション – 実際のビルドを行う – 大体は./configure && make 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 28
  29. 29. パッケージ構築関連セクション http://fedora.jp/ ● installセクション – 環境変数RPM_BUILD_ROOTの下に仮想ディレクト リを構築する – 仮想ディレクトリはほぼ実際にインストールされる 環境に近い状態を作る – 大体はmake install DESTDIR=$ {RPM_BUILD_ROOT} ● cleanセクション – 仮想ディレクトリを掃除 – 大体はrm -rf ${RPM_BUILD_ROOT} 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 29
  30. 30. パッケージ構成関連 http://fedora.jp/ ● filesセクション – デフォルトとファイル・ディレクトリ毎にパーミッショ ンやオーナーを指定できる – 設定ファイルとしてマーキングできる – サブパッケージが存在する場合、サブパッケージ 毎にfilesセクションを記述する 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 30
  31. 31. インストール関連セクション http://fedora.jp/ ● pre・post – インストール・アップデート時に行う処理を記述す る – preはファイルがインストール処理される前に実行 する処理 – postはファイルがインストール処理された後に実 行する処理 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 31
  32. 32. インストール関連セクション http://fedora.jp/ ● preun・postun – アンインストール・アップデート時に行う処理を記 述する – preはファイルがアンインストール処理される前に 実行する処理 – postはファイルがアンインストール処理された後に 実行する処理 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 32
  33. 33. インストール関連セクション http://fedora.jp/ ● アップデートとは実はアンインストールとインス トールの組み合わせ – $1の値によってインストール・アンインストール・ アップデートを識別する 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 33
  34. 34. 変更履歴関連 http://fedora.jp/ ● 読んで字のごとく ● いわゆるChangeLogを記述する 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 34
  35. 35. RPMを作りましょう http://fedora.jp/ ● とりあえず何か作りましょう – 何にしようかな… – … – zzz – – skfのRPMでも作りましょう 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 35
  36. 36. skfって何? http://fedora.jp/ ● nkf互換の漢字フィルター – 中国の文字コードも一部処理できるらしい – 題材にするために使っただけであまり詳しく知りま せん(すみません…) 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 36
  37. 37. 簡単なSPECファイル http://fedora.jp/ ● グローバル関連セクション Summary: skf is kanji filter and compatible nkf. Name: skf Version: 1.93b2 Release: 1 License: BSD Group: Applications/Text URL: http://skf.sourceforge.jp/ Source0: %{name}-%{version}b-1.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}- root %description skf is kanji filter and compatible nkf. 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 37
  38. 38. 簡単なSPECファイル http://fedora.jp/ ● ビルド関連セクション ● %prep %setup -q %build ./configure --prefix=%{_prefix} make 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 38
  39. 39. 簡単なSPECファイル http://fedora.jp/ ● パッケージ構築関連セクション %install rm -rf ${RPM_BUILD_ROOT} make install DESTDIR=${RPM_BUILD_ROOT} rm -rf ${RPM_BUILD_ROOT}%{_docdir}/%{name} rm -rf ${RPM_BUILD_ROOT}%{_prefix}/man # file list without man find ${RPM_BUILD_ROOT} -type f | sed "s;$ {RPM_BUILD_ROOT};;g" | grep -v "%{_mandir}" > filelist # file list with man(gzipped) find ${RPM_BUILD_ROOT}%{_mandir} -type f -exec echo {}. gz ; | sed "s;${RPM_BUILD_ROOT};;g" >> filelist 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 39
  40. 40. 簡単なSPECファイル http://fedora.jp/ ● パッケージ構成関連セクション %files -f filelist %defattr(-,root,root,-) %doc *txt 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 40
  41. 41. SPECからRPMを作ってみる http://fedora.jp/ ● 変更履歴関連セクション %changelog * Sat Mar 26 2005 <jokagi@fedora.jp> - - Initial build. 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 41
  42. 42. 実際に作成してみよう http://fedora.jp/ ● SOURCESディレクトリにソースを保存 ● SPECSディレクトリに先ほどのSPECを保存 ● rpmbuild -ba skf.specでビルドを開始 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 42
  43. 43. 作成したRPMをインストール http://fedora.jp/ # rpm -ihv skf-1.92b-1.i386.rpm 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 43
  44. 44. とりあえず作るだけなら簡単 http://fedora.jp/ ● さっきのSPECファイルを雛形にすれば簡単な ものはすぐにRPMにできる ● この程度なら実はchkinstallというものを使え ば似たようなものが作れる ● 手を抜かずにfilesセクションを書くこと – 特に設定ファイルがあったり、サービスdaemon だったり共有ライブラリなどの場合 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 44
  45. 45. もうちょっとちゃんと作る http://fedora.jp/ ● ちゃんと作るとfilesセクションは手を抜けない ● 必要なファイルを列挙します – 設定ファイルは%configなどでマーキングすること %{_bindir}/skf %{_mandir}/ja/man1/skf.1j.gz %{_datadir}/skf/lib/*.stb %{_datadir}/skf/lib/*.txt 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 45
  46. 46. 覚えておきたいデフォルトマクロ http://fedora.jp/ ● マクロコマンド – %__rm %__mv %__cp – ファイルを操作するコマンドの 擬似マクロコマンド – %setup – tarballの展開と、展開先への移動をする 擬似マクロコマンド – %patch - パッチを適用する擬似マクロコマンド – %configure – ./configureにありがちな引数を付加 した擬似マクロコマンド – %makeinstall - makeコマンドにありがちなインス トール用引数を付加した擬似マクロコマンド 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 46
  47. 47. 覚えておきたいデフォルトマクロ http://fedora.jp/ ● マクロ定数 – %{_prefix} – ベースになるインストール先(一般的に /usr) – %{_sysconfdir} – 設定ファイルのディレクトリ(一般 的に/etc) – %{_bindir}・%{_sbindir} - 実行ファイルのインストール 先(一般的に%{_prefix}/{bin,sbin}) – %{_datadir} データを保存するディレクトリ(一般的 に%{_prefix}/{share}) – %{_mandir} マニュアルを保存するディレクトリ(一般 的に%{_prefix}/{share}/man) 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 47
  48. 48. 覚えておきたいデフォルトマクロ http://fedora.jp/ ● マクロ定数 – %{SOURCE<NUMBER>} - ソースタグで指定した ファイルのパス 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 48
  49. 49. 自分でリポジトリを作ろう http://fedora.jp/ ● ここではyumのリポジトリを作ります ● apt-rpmは使ってないのでパス!! – 時間もないしね…(言い訳ですか 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 49
  50. 50. っで、そんなもの必要なの? http://fedora.jp/ ● こういう人はあると便利 – 自作RPMを、複数台サーバーに適応している人 (例えばサーバー業者) – 自作RPMをたくさんインターネットに公開している 人 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 50
  51. 51. それでは作ります http://fedora.jp/ ● 作るのは簡単 – RPMを一つのディレクトリに集めて – データベースを作るだけ 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 51
  52. 52. 作業ディレクトリを用意 http://fedora.jp/ $ mkdir -p /var/www/html/repos/RPMS/i386/ 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 52
  53. 53. RPMをコピーしまくる http://fedora.jp/ $ cp -a *.rpm /var/www/html/repos/RPMS/i386/. 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 53
  54. 54. データベースを作る http://fedora.jp/ $ cd /var/www/html/repos/ $ createrepo RPMS 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 54
  55. 55. それだけ? http://fedora.jp/ ● リポジトリ作成それだけなのです ● 後はyumにそのリポジトリを指定するだけです ぐに使えます 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 55
  56. 56. 本当に使えるか試してみよう http://fedora.jp/ ● 先ほどのskfをyum経由でインストール – あらかじめrpm -e skfで削除しておく 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 56
  57. 57. yumの指定 http://fedora.jp/ ● /etc/yum.repo.d/にmyrepos.repoとして作成 name=Fedora Core My Repository baseurl=http://example.com/repos/ enabled=1 gpgcheck=0 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 57
  58. 58. ローカルのデータベースを更新 http://fedora.jp/ # yum list 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 58
  59. 59. yumでインストール http://fedora.jp/ # yum install skf 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 59
  60. 60. 時間あるかな? http://fedora.jp/ ● これ位はRPMを使うなら覚えておこう!! 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 60
  61. 61. インストール・アップデート・アンイン ストール http://fedora.jp/ ● インストール – rpm -i <rpm-filename> – rpm -U <rpm-filename> ● アップデート – rpm -F <rpm-filename> – rpm -U <rpm-filename> ● アンインストール – rpm -e <package-name> ● -i・-U・-Fは-hvを同時に指定するのが一般的 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 61
  62. 62. インストール前 http://fedora.jp/ ● RPMの情報 – rpm -qip <rpm-file> ● RPMに含まれるファイル – rpm -qlp <rpm-file> ● RPMが提供するもの – rpm -qp –-provides <rpm-file> ● RPMの依存関係 – rpm -qp –-requires <rpm-file> 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 62
  63. 63. インストール前 http://fedora.jp/ ● RPMの情報を整形出力 – rpm -qp –-queryformat “<format>” <rpm-file> ● 変更履歴出力 – rpm -qp –changelog <rpm-file> 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 63
  64. 64. インストール後 http://fedora.jp/ ● 基本的に「インストール前」から「-p」を抜くとイ ンストール済みRPMが対象になる – ファイル名ではなくパッケージ名を指定すること ● ex)rpm -ql httpd 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 64
  65. 65. インストール後 http://fedora.jp/ ● ファイルを保持するRPM名 – rpm -qf </dir/to/file> ● インストール済みRPM一覧 – rpm -qa <wildcard> – rpm -qa –-last <wildcard> インストール順表示 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 65
  66. 66. 終り http://fedora.jp/ ● わざわざRPMを作るとここが便利ですよ – 共通言語的な作業手順書の作成(SPECファイル) – インストール済みバージョンの管理 – 共有ライブラリ他との依存性の管理 – ファイルからインストールしたソフトウェアの逆引き – 正確なアンインストール – 単にファイルのコピー以上の処理 – RPMのインストール先ホストにgccがいらない 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 66
  67. 67. http://fedora.jp/ ご清聴ありがとうございました。 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 67

×