logo header
logo header
logo header
logo header
  • 2016.07.01
  • インフラ技術ブログ

RPMパッケージを作ってみよう①RPMパッケージとは?

rpm logo

最近ようやく暖かくなってきた札幌市ですが、夜はまだまだ急に冷え込む事もあり、ジャンパーが手放せないkirksenchoです、こんにちは。

 

前回までは、ZABBIXについての記事を連載してきましたが、今回から話題を変えて、RPM関連の記事を連載していきたいと思います。

 

最終的には簡単なRPMパッケージを自作できるところまで書きたいと思いますが、いきなり作り方に入るのも急なので、RPMパッケージとは何ぞや? という基礎から入っていきたいと思います。

RPMとは?

もともとは、「Redhat Package Manager」という名前の、Redhat Linuxのパッケージを管理するシステムですが、現在は「RPM Package Manager」という名前に変わっていて、さまざまなLinuxディストリビューションのパッケージ管理に利用されています。

 

RPM公式サイト

 

apacheやPHP等、Linuxサーバには様々なミドルウェアがありますが、それら全てをソースコードからビルドしてインストールしていくのは大変な作業で、その後の管理も大変です。

 

そこで、パッケージ化することで、誰がインストールしても同じ状態で入るように自動化するパッケージ管理システムのひとつがRPMです。

 

Linuxの各ディストリビューションは、カーネルも含めてパッケージの集合体ともいえます。 debian系で有名なUbuntuなどでは、パッケージ管理システムにdpkgやAPTが使われています。

 

私が携わっているクラウドでは、Redhat系OSのCentOSを利用しているので、RPMを使用していますが、通常はYUMを通してRPMパッケージを入れたり消したりしています。

YUMとは?

「Yellowdog Updater Modified」の略でYUM(ヤム)と呼んでいますが、RPMパッケージを管理するためのシステムです。

 

 YUM公式サイト

 

もともとは、Yellowdog Linuxのパッケージを管理するためのYUPが前身ですが、アメリカのデューク大学物理学科によってYUMに生まれ変わりました。

YUMでRPMを使うとどうなる?

RPMにはいろいろなパッケージがありますが、それぞれ複雑な依存関係を持っている事が多いです。 「●●パッケージのverXXを入れる為には◆◆パッケージのverXXが先に入ってないとダメ」などです。

 

RPMコマンドでRPMパッケージをインストールすると、依存関係のチェックが行われ、条件を満たしていなければエラーになってインストールできません。

 

それをひとつひとつ人間が解決していく作業はけっこう骨が折れるものがあります。 YUMは、その依存関係を自動で解決してくれて、人間が入れたいパッケージを入れるために必要なパッケージがあれば、勝手に追加インストールしてくれるという有り難いシステムです。

RPMコマンドとYUMコマンドの違いは?

RPMコマンドの場合、拡張子がrpmになっているパッケージファイルをローカルにダウンロードし、それを引数にしてインストールを実行します。

 

ローカルに一度ダウンロードしなくてもWEBのRPMパッケージのリンクから直接インストールすることも可能です。 アンインストールするときは、そのパッケージの名称をフルネームで指定する必要があります。

 

YUMコマンドの場合、ローカルからではなくて、OSに設定されているYUMリポジトリからインターネット経由でパッケージを探してインストールします。なので、まだインストールしていないパッケージでも、名前の一部がわかっていれば、コマンドで検索することが可能です。

 

パッケージ名の指定にはワイルドカードも使用できますので、まとめて指定したい場合などは便利です。 検索対象は、そのリポジトリが持っているパッケージに限られますので、見つからない場合は、ほしいパッケージがある他のリポジトリを設定して利用できるようにする必要があります。

YUMリポジトリとは

YUMを利用する上で重要なのがYUMリポジトリの存在です。

CentOSの場合、ディストリビューション自身がリポジトリを用意してくれていますが、安定バージョンのパッケージがメインで、新しいバージョンのPHPが使いたい! などという場合は、そもそも無い事が多いです。

 

そういう場合は、サードパーティ的なパッケージャーの提供するYUMリポジトリを導入することになります。

 

というわけで、次回はさまざまなYUMリポジトリの利用方法などについて書いてみたいと思います。

ともに世界をアップグレードできる、そんな日を夢見て。
Upgrade the World!