SlideShare a Scribd company logo

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

1 of 67
Download to read offline
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
これは何の話?
                                                             http://fedora.jp/



      ●   Fedora Coreで使用されているパッケージ管理
          システムRPMとそのメリット・デメリットと、RPM
          の作り方などのセミナーです。




                                                       2005年3月26日
Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project                             2
セッションの流れ
                                                             http://fedora.jp/



      ●   RPMって何?
      ●   tarballから直接ビルド・インストールとの違い
          やメリット・デメリット
      ●   RPMフロントエンドについて(yum他)
      ●   自分でRPMを作ろう
      ●   自分でリポジトリを作ろう(yum)




                                                       2005年3月26日
Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project                             3
このセッションで一番いいたいこと
                                                             http://fedora.jp/



      ●   tarballを直接ビルドしてインストールするな
      ●   RPMを作ってインストールしろ!!
           –   なので他が薄いですがあしからず;-)




                                                       2005年3月26日
Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project                             4
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
RPMを使うとどうよくなる?
                                                             http://fedora.jp/



      ●   はじめにSPECファイルという形式でビルド手
          順を記述するので、二度目以降のビルドが楽
          になる
      ●   インストールされるファイルを把握できる
      ●   基本的に依存関係を正しく保ってくれる
           –   正しく処理できない場合、多くはユーザーが悪い
      ●   ファイルのインストールだけではなくシステム
          の制御も同時に行える
      ●   パッケージの正当性を調べることができる
                                                       2005年3月26日
Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project                             6

Recommended

KEONとPEAKが無くてもFirefox OS開発出来る
KEONとPEAKが無くてもFirefox OS開発出来るKEONとPEAKが無くてもFirefox OS開発出来る
KEONとPEAKが無くてもFirefox OS開発出来るandroid sola
 
バージョン管理のワークフロー
バージョン管理のワークフローバージョン管理のワークフロー
バージョン管理のワークフローadd20
 
PF部2012年3月勉強会.androidsola
PF部2012年3月勉強会.androidsolaPF部2012年3月勉強会.androidsola
PF部2012年3月勉強会.androidsolaandroid sola
 
意外と知らない?Yumパッケージ管理
意外と知らない?Yumパッケージ管理意外と知らない?Yumパッケージ管理
意外と知らない?Yumパッケージ管理denet1999
 
Modest02 freetype2 on fx-3.6 win32
Modest02 freetype2 on fx-3.6 win32Modest02 freetype2 on fx-3.6 win32
Modest02 freetype2 on fx-3.6 win32hATrayflood
 
BPStudy#54 そろそろPython3
BPStudy#54 そろそろPython3BPStudy#54 そろそろPython3
BPStudy#54 そろそろPython3Atsushi Odagiri
 
Firefox OSのカスタムROM開発を始めてみた
Firefox OSのカスタムROM開発を始めてみたFirefox OSのカスタムROM開発を始めてみた
Firefox OSのカスタムROM開発を始めてみたandroid sola
 

More Related Content

What's hot

Python3 プログラミング勉強会
Python3 プログラミング勉強会Python3 プログラミング勉強会
Python3 プログラミング勉強会Tetsuya Morimoto
 
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?Developers Summit
 
Let's get ready for next Ruby
Let's get ready for next RubyLet's get ready for next Ruby
Let's get ready for next RubyKoichi ITO
 
Linux kernelのbspとupstream
Linux kernelのbspとupstreamLinux kernelのbspとupstream
Linux kernelのbspとupstreamwata2ki
 
マネージャーやコンポーネントのコンポジット化
マネージャーやコンポーネントのコンポジット化マネージャーやコンポーネントのコンポジット化
マネージャーやコンポーネントのコンポジット化openrtm
 

What's hot (6)

Python3 プログラミング勉強会
Python3 プログラミング勉強会Python3 プログラミング勉強会
Python3 プログラミング勉強会
 
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
 
Let's get ready for next Ruby
Let's get ready for next RubyLet's get ready for next Ruby
Let's get ready for next Ruby
 
Linux kernelのbspとupstream
Linux kernelのbspとupstreamLinux kernelのbspとupstream
Linux kernelのbspとupstream
 
osc_tokyo20100226
osc_tokyo20100226osc_tokyo20100226
osc_tokyo20100226
 
マネージャーやコンポーネントのコンポジット化
マネージャーやコンポーネントのコンポジット化マネージャーやコンポーネントのコンポジット化
マネージャーやコンポーネントのコンポジット化
 

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

今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo Linuxについて今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo LinuxについてTakuto Matsuu
 
Dockerのディスクについて ~ファイルシステム・マウント方法など~
Dockerのディスクについて ~ファイルシステム・マウント方法など~Dockerのディスクについて ~ファイルシステム・マウント方法など~
Dockerのディスクについて ~ファイルシステム・マウント方法など~HommasSlide
 
つながるロボット 〜分散協調ロボットの開発を加速化するROSの紹介〜
つながるロボット 〜分散協調ロボットの開発を加速化するROSの紹介〜つながるロボット 〜分散協調ロボットの開発を加速化するROSの紹介〜
つながるロボット 〜分散協調ロボットの開発を加速化するROSの紹介〜Hideki Takase
 
Djangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込むDjangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込む2bo 2bo
 
Getting started raspberry pi osc hamamatsu
Getting started raspberry pi osc hamamatsuGetting started raspberry pi osc hamamatsu
Getting started raspberry pi osc hamamatsuMasafumi Ohta
 
2009年のPHPフレームワーク
2009年のPHPフレームワーク2009年のPHPフレームワーク
2009年のPHPフレームワークTakuya Sato
 
Rubyで創るOpenFlowネットワーク - LLまつり
Rubyで創るOpenFlowネットワーク - LLまつりRubyで創るOpenFlowネットワーク - LLまつり
Rubyで創るOpenFlowネットワーク - LLまつりYuya Rin
 
Polidog に RPM の作り方を教える
Polidog に RPM の作り方を教えるPolidog に RPM の作り方を教える
Polidog に RPM の作り方を教えるftnk
 
2012/03/31 Apacheスタートスクリプト読書会発表資料
2012/03/31 Apacheスタートスクリプト読書会発表資料2012/03/31 Apacheスタートスクリプト読書会発表資料
2012/03/31 Apacheスタートスクリプト読書会発表資料Yasutaka Hamada
 
GPD WINでStretchを動かす
GPD WINでStretchを動かすGPD WINでStretchを動かす
GPD WINでStretchを動かすYuma Ohgami
 
FreeBSDで行こう for small server
FreeBSDで行こう for small serverFreeBSDで行こう for small server
FreeBSDで行こう for small serverTatsumi Naganuma
 
NVIDIA GPUで作るHeadless X11 Linux
NVIDIA GPUで作るHeadless X11 LinuxNVIDIA GPUで作るHeadless X11 Linux
NVIDIA GPUで作るHeadless X11 LinuxTomoki SHISHIKURA
 
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜Hideki Takase
 
プロセスの永続化でコスト削減 #perlbeginners
プロセスの永続化でコスト削減 #perlbeginnersプロセスの永続化でコスト削減 #perlbeginners
プロセスの永続化でコスト削減 #perlbeginners鉄次 尾形
 
ElixirをIoTボードで動かしてみた ~ラズパイ・big.LITTLE・Zynq編~
ElixirをIoTボードで動かしてみた ~ラズパイ・big.LITTLE・Zynq編~ElixirをIoTボードで動かしてみた ~ラズパイ・big.LITTLE・Zynq編~
ElixirをIoTボードで動かしてみた ~ラズパイ・big.LITTLE・Zynq編~Hideki Takase
 

Similar to RPMで行こう!! RPMを使いたくなるといいなというお話 (20)

今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo Linuxについて今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo Linuxについて
 
Dockerのディスクについて ~ファイルシステム・マウント方法など~
Dockerのディスクについて ~ファイルシステム・マウント方法など~Dockerのディスクについて ~ファイルシステム・マウント方法など~
Dockerのディスクについて ~ファイルシステム・マウント方法など~
 
FMU4FOAM
FMU4FOAMFMU4FOAM
FMU4FOAM
 
つながるロボット 〜分散協調ロボットの開発を加速化するROSの紹介〜
つながるロボット 〜分散協調ロボットの開発を加速化するROSの紹介〜つながるロボット 〜分散協調ロボットの開発を加速化するROSの紹介〜
つながるロボット 〜分散協調ロボットの開発を加速化するROSの紹介〜
 
MeeGo won't die
MeeGo won't dieMeeGo won't die
MeeGo won't die
 
Djangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込むDjangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込む
 
Getting started raspberry pi osc hamamatsu
Getting started raspberry pi osc hamamatsuGetting started raspberry pi osc hamamatsu
Getting started raspberry pi osc hamamatsu
 
Pdp11 on-fpga
Pdp11 on-fpgaPdp11 on-fpga
Pdp11 on-fpga
 
2009年のPHPフレームワーク
2009年のPHPフレームワーク2009年のPHPフレームワーク
2009年のPHPフレームワーク
 
Rubyで創るOpenFlowネットワーク - LLまつり
Rubyで創るOpenFlowネットワーク - LLまつりRubyで創るOpenFlowネットワーク - LLまつり
Rubyで創るOpenFlowネットワーク - LLまつり
 
Yesod on Heroku
Yesod on HerokuYesod on Heroku
Yesod on Heroku
 
Polidog に RPM の作り方を教える
Polidog に RPM の作り方を教えるPolidog に RPM の作り方を教える
Polidog に RPM の作り方を教える
 
2012/03/31 Apacheスタートスクリプト読書会発表資料
2012/03/31 Apacheスタートスクリプト読書会発表資料2012/03/31 Apacheスタートスクリプト読書会発表資料
2012/03/31 Apacheスタートスクリプト読書会発表資料
 
GPD WINでStretchを動かす
GPD WINでStretchを動かすGPD WINでStretchを動かす
GPD WINでStretchを動かす
 
FreeBSDで行こう for small server
FreeBSDで行こう for small serverFreeBSDで行こう for small server
FreeBSDで行こう for small server
 
NVIDIA GPUで作るHeadless X11 Linux
NVIDIA GPUで作るHeadless X11 LinuxNVIDIA GPUで作るHeadless X11 Linux
NVIDIA GPUで作るHeadless X11 Linux
 
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
 
プロセスの永続化でコスト削減 #perlbeginners
プロセスの永続化でコスト削減 #perlbeginnersプロセスの永続化でコスト削減 #perlbeginners
プロセスの永続化でコスト削減 #perlbeginners
 
mruby for embedded systems
mruby for embedded systemsmruby for embedded systems
mruby for embedded systems
 
ElixirをIoTボードで動かしてみた ~ラズパイ・big.LITTLE・Zynq編~
ElixirをIoTボードで動かしてみた ~ラズパイ・big.LITTLE・Zynq編~ElixirをIoTボードで動かしてみた ~ラズパイ・big.LITTLE・Zynq編~
ElixirをIoTボードで動かしてみた ~ラズパイ・big.LITTLE・Zynq編~
 

Recently uploaded

AWS (Amazon Web Services) を勉強してみる おさらい 2024/02/16の勉強会で発表されたものです。
AWS (Amazon Web Services) を勉強してみる おさらい 2024/02/16の勉強会で発表されたものです。AWS (Amazon Web Services) を勉強してみる おさらい 2024/02/16の勉強会で発表されたものです。
AWS (Amazon Web Services) を勉強してみる おさらい 2024/02/16の勉強会で発表されたものです。iPride Co., Ltd.
 
00001_test_automation_portfolio_20240227
00001_test_automation_portfolio_2024022700001_test_automation_portfolio_20240227
00001_test_automation_portfolio_20240227ssuserf8ea02
 
scikit-learn以外の分類器でpipelineを作ってみた! いずみん
scikit-learn以外の分類器でpipelineを作ってみた! いずみんscikit-learn以外の分類器でpipelineを作ってみた! いずみん
scikit-learn以外の分類器でpipelineを作ってみた! いずみんtoshinori622
 
オリジナルNFTを発行するブロックチェーン開発ハンズオン(NFTの発行に必要なツールから実装まで)
オリジナルNFTを発行するブロックチェーン開発ハンズオン(NFTの発行に必要なツールから実装まで)オリジナルNFTを発行するブロックチェーン開発ハンズオン(NFTの発行に必要なツールから実装まで)
オリジナルNFTを発行するブロックチェーン開発ハンズオン(NFTの発行に必要なツールから実装まで)Kanta Sasaki
 
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
20240222_Neko_IoTLT_vol9_kitazaki_v1.pdf
20240222_Neko_IoTLT_vol9_kitazaki_v1.pdf20240222_Neko_IoTLT_vol9_kitazaki_v1.pdf
20240222_Neko_IoTLT_vol9_kitazaki_v1.pdfAyachika Kitazaki
 
HarukiShinkawa_果樹農家が期待する行動への変容を促す仕掛け設計のための収穫作業体験者の行動観察とモデル化_仕掛学2024.pdf
HarukiShinkawa_果樹農家が期待する行動への変容を促す仕掛け設計のための収穫作業体験者の行動観察とモデル化_仕掛学2024.pdfHarukiShinkawa_果樹農家が期待する行動への変容を促す仕掛け設計のための収穫作業体験者の行動観察とモデル化_仕掛学2024.pdf
HarukiShinkawa_果樹農家が期待する行動への変容を促す仕掛け設計のための収穫作業体験者の行動観察とモデル化_仕掛学2024.pdfMatsushita Laboratory
 
解説: Token Extensions - Solana Developer Hub Online #SolDevHub
解説: Token Extensions - Solana Developer Hub Online #SolDevHub解説: Token Extensions - Solana Developer Hub Online #SolDevHub
解説: Token Extensions - Solana Developer Hub Online #SolDevHubK Kinzal
 

Recently uploaded (8)

AWS (Amazon Web Services) を勉強してみる おさらい 2024/02/16の勉強会で発表されたものです。
AWS (Amazon Web Services) を勉強してみる おさらい 2024/02/16の勉強会で発表されたものです。AWS (Amazon Web Services) を勉強してみる おさらい 2024/02/16の勉強会で発表されたものです。
AWS (Amazon Web Services) を勉強してみる おさらい 2024/02/16の勉強会で発表されたものです。
 
00001_test_automation_portfolio_20240227
00001_test_automation_portfolio_2024022700001_test_automation_portfolio_20240227
00001_test_automation_portfolio_20240227
 
scikit-learn以外の分類器でpipelineを作ってみた! いずみん
scikit-learn以外の分類器でpipelineを作ってみた! いずみんscikit-learn以外の分類器でpipelineを作ってみた! いずみん
scikit-learn以外の分類器でpipelineを作ってみた! いずみん
 
オリジナルNFTを発行するブロックチェーン開発ハンズオン(NFTの発行に必要なツールから実装まで)
オリジナルNFTを発行するブロックチェーン開発ハンズオン(NFTの発行に必要なツールから実装まで)オリジナルNFTを発行するブロックチェーン開発ハンズオン(NFTの発行に必要なツールから実装まで)
オリジナルNFTを発行するブロックチェーン開発ハンズオン(NFTの発行に必要なツールから実装まで)
 
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
 
20240222_Neko_IoTLT_vol9_kitazaki_v1.pdf
20240222_Neko_IoTLT_vol9_kitazaki_v1.pdf20240222_Neko_IoTLT_vol9_kitazaki_v1.pdf
20240222_Neko_IoTLT_vol9_kitazaki_v1.pdf
 
HarukiShinkawa_果樹農家が期待する行動への変容を促す仕掛け設計のための収穫作業体験者の行動観察とモデル化_仕掛学2024.pdf
HarukiShinkawa_果樹農家が期待する行動への変容を促す仕掛け設計のための収穫作業体験者の行動観察とモデル化_仕掛学2024.pdfHarukiShinkawa_果樹農家が期待する行動への変容を促す仕掛け設計のための収穫作業体験者の行動観察とモデル化_仕掛学2024.pdf
HarukiShinkawa_果樹農家が期待する行動への変容を促す仕掛け設計のための収穫作業体験者の行動観察とモデル化_仕掛学2024.pdf
 
解説: Token Extensions - Solana Developer Hub Online #SolDevHub
解説: Token Extensions - Solana Developer Hub Online #SolDevHub解説: Token Extensions - Solana Developer Hub Online #SolDevHub
解説: Token Extensions - Solana Developer Hub Online #SolDevHub
 

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

  • 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. これは何の話? http://fedora.jp/ ● Fedora Coreで使用されているパッケージ管理 システムRPMとそのメリット・デメリットと、RPM の作り方などのセミナーです。 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 2
  • 3. セッションの流れ http://fedora.jp/ ● RPMって何? ● tarballから直接ビルド・インストールとの違い やメリット・デメリット ● RPMフロントエンドについて(yum他) ● 自分でRPMを作ろう ● 自分でリポジトリを作ろう(yum) 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 3
  • 4. このセッションで一番いいたいこと http://fedora.jp/ ● tarballを直接ビルドしてインストールするな ● RPMを作ってインストールしろ!! – なので他が薄いですがあしからず;-) 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 4
  • 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. RPMを使うとどうよくなる? http://fedora.jp/ ● はじめにSPECファイルという形式でビルド手 順を記述するので、二度目以降のビルドが楽 になる ● インストールされるファイルを把握できる ● 基本的に依存関係を正しく保ってくれる – 正しく処理できない場合、多くはユーザーが悪い ● ファイルのインストールだけではなくシステム の制御も同時に行える ● パッケージの正当性を調べることができる 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 6
  • 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. 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. 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. RPMのフロントエンド http://fedora.jp/ ● RPMを便利に管理するためのアプリケーション ● 一度使い出すと、なくては困る人間が退化す るアプリケーション 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 10
  • 11. フロントエンドって何? http://fedora.jp/ ● リポジトリというRPMを集めたディレクトリから 必要なRPMを入手できる – リモートサーバーでもOK – 複数のリポジトリを同時に処理できる ● 依存関係もまとめて管理してくれる 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 11
  • 12. フロントエンドって何? http://fedora.jp/ ● リポジトリ上の更新されたRPMをうまくアップ デートしてくれる ● 自動実行しておくと勝手に最新になっていく – サーバー用途ではまったくすすめないが 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 12
  • 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. 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. 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. リポジトリって何? http://fedora.jp/ ● 下記の情報を持つもの – RPMを集めたディレクトリ – RPM毎の固有情報 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 16
  • 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. gyumを使う http://fedora.jp/ 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 18
  • 19. yumとapt-rpmどっちがいいの? http://fedora.jp/ ● yumのメリット – 標準でついてくる – 標準で基本的な設定がされている ● yumのデメリット – メモリを多く消費する – 若干重い – 最低限の機能しかない 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 19
  • 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. さてさて少し難しくなります http://fedora.jp/ ● そろそろRPMを作ってみましょう… 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 21
  • 22. RPMってどうやって作るの? http://fedora.jp/ ● 必要なソースファイルなどを用意する ● SPECファイルを用意する ● rpmbuildコマンドでビルドを行う 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 22
  • 23. SPECファイル http://fedora.jp/ ● RPMのビルド手順を記述したファイル ● 内部でいくつかのセクションを持つ 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 23
  • 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. グローバル関連セクション 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. グローバル関連セクション http://fedora.jp/ ● Packageセクション – サブパッケージの情報 – IDセクションとdescriptionセクションをいくつか記述 する 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 26
  • 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. ビルド関連セクション http://fedora.jp/ ● prepセクション – ビルドの準備を行う – 大体はtarballの展開とパッチ当て ● buildセクション – 実際のビルドを行う – 大体は./configure && make 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 28
  • 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. パッケージ構成関連 http://fedora.jp/ ● filesセクション – デフォルトとファイル・ディレクトリ毎にパーミッショ ンやオーナーを指定できる – 設定ファイルとしてマーキングできる – サブパッケージが存在する場合、サブパッケージ 毎にfilesセクションを記述する 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 30
  • 31. インストール関連セクション http://fedora.jp/ ● pre・post – インストール・アップデート時に行う処理を記述す る – preはファイルがインストール処理される前に実行 する処理 – postはファイルがインストール処理された後に実 行する処理 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 31
  • 32. インストール関連セクション http://fedora.jp/ ● preun・postun – アンインストール・アップデート時に行う処理を記 述する – preはファイルがアンインストール処理される前に 実行する処理 – postはファイルがアンインストール処理された後に 実行する処理 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 32
  • 33. インストール関連セクション http://fedora.jp/ ● アップデートとは実はアンインストールとインス トールの組み合わせ – $1の値によってインストール・アンインストール・ アップデートを識別する 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 33
  • 34. 変更履歴関連 http://fedora.jp/ ● 読んで字のごとく ● いわゆるChangeLogを記述する 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 34
  • 35. RPMを作りましょう http://fedora.jp/ ● とりあえず何か作りましょう – 何にしようかな… – … – zzz – – skfのRPMでも作りましょう 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 35
  • 36. skfって何? http://fedora.jp/ ● nkf互換の漢字フィルター – 中国の文字コードも一部処理できるらしい – 題材にするために使っただけであまり詳しく知りま せん(すみません…) 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 36
  • 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. 簡単な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. 簡単な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. 簡単な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. 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. 実際に作成してみよう http://fedora.jp/ ● SOURCESディレクトリにソースを保存 ● SPECSディレクトリに先ほどのSPECを保存 ● rpmbuild -ba skf.specでビルドを開始 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 42
  • 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. とりあえず作るだけなら簡単 http://fedora.jp/ ● さっきのSPECファイルを雛形にすれば簡単な ものはすぐにRPMにできる ● この程度なら実はchkinstallというものを使え ば似たようなものが作れる ● 手を抜かずにfilesセクションを書くこと – 特に設定ファイルがあったり、サービスdaemon だったり共有ライブラリなどの場合 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 44
  • 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. 覚えておきたいデフォルトマクロ 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. 覚えておきたいデフォルトマクロ 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. 覚えておきたいデフォルトマクロ http://fedora.jp/ ● マクロ定数 – %{SOURCE<NUMBER>} - ソースタグで指定した ファイルのパス 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 48
  • 49. 自分でリポジトリを作ろう http://fedora.jp/ ● ここではyumのリポジトリを作ります ● apt-rpmは使ってないのでパス!! – 時間もないしね…(言い訳ですか 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 49
  • 50. っで、そんなもの必要なの? http://fedora.jp/ ● こういう人はあると便利 – 自作RPMを、複数台サーバーに適応している人 (例えばサーバー業者) – 自作RPMをたくさんインターネットに公開している 人 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 50
  • 51. それでは作ります http://fedora.jp/ ● 作るのは簡単 – RPMを一つのディレクトリに集めて – データベースを作るだけ 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 51
  • 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. 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. データベースを作る http://fedora.jp/ $ cd /var/www/html/repos/ $ createrepo RPMS 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 54
  • 55. それだけ? http://fedora.jp/ ● リポジトリ作成それだけなのです ● 後はyumにそのリポジトリを指定するだけです ぐに使えます 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 55
  • 56. 本当に使えるか試してみよう http://fedora.jp/ ● 先ほどのskfをyum経由でインストール – あらかじめrpm -e skfで削除しておく 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 56
  • 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. ローカルのデータベースを更新 http://fedora.jp/ # yum list 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 58
  • 59. yumでインストール http://fedora.jp/ # yum install skf 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 59
  • 60. 時間あるかな? http://fedora.jp/ ● これ位はRPMを使うなら覚えておこう!! 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 60
  • 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. インストール前 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. インストール前 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. インストール後 http://fedora.jp/ ● 基本的に「インストール前」から「-p」を抜くとイ ンストール済みRPMが対象になる – ファイル名ではなくパッケージ名を指定すること ● ex)rpm -ql httpd 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 64
  • 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. 終り http://fedora.jp/ ● わざわざRPMを作るとここが便利ですよ – 共通言語的な作業手順書の作成(SPECファイル) – インストール済みバージョンの管理 – 共有ライブラリ他との依存性の管理 – ファイルからインストールしたソフトウェアの逆引き – 正確なアンインストール – 単にファイルのコピー以上の処理 – RPMのインストール先ホストにgccがいらない 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 66
  • 67. http://fedora.jp/ ご清聴ありがとうございました。 2005年3月26日 Tadashi Jokagi <jokagi@fedora.jp>, Fedora JP Project 67