hiranoyumとかリポジトリとかとりまとめTwitterFacebookGoogle+はてブPocketyumコマンドを用いてよく新しいモジュールをインストールすることって多いと思います。このコマンド、あまり細部まで理解していなくても検索して出てきたコマンドをそのまま実行してだまってyをタイプしておけば大体の場合動くと思います。ここで「よし動いた大丈夫」って思っている方は多分この記事を見る必要はないと思います。実際内部でどういうことが起こっているのか、レポジトリってなに?(epel?remi?)なぜいっぱいあるの?とか結構疑問はいっぱい出てきます。今日はその辺のyumを取り巻く環境について調べたいと思います。Modifiedの略であり(それはどうでもいいか)パッケージを管理するメタパッケージ管理システムである。FedoraやCentOSなどRPMベースのディストリビューションの多くでよく利用されている。Wikipediaから抜粋レポジトリとは動作の確認できているコンパイル済みのバイナリファイルを集めたストレージのことで、自分でわざわざソースコードの入手・コンパイルなどを行わなくても簡単に導入できます。ソフトウェアが必要としているソフトウェアの依存性も自動的に検出して、必要な物も一緒にインストールしてくれます。レポジトリを理解するCentOSでよくみるレポジトリepelやらremiについて調べましょう。(RHEL)向けのパッケージであり、RHELから分岐したディストリビューション(CentOSもここに含まれます)と互換性のあるパッケージです。目的はFedoraで提供されているパッケージをRHEL系のディストリビューションでも互換性を提供することにあるようです。Fedoraで提供されている高品質なパッケージをそのまま互換性をのと同時に、プロジェクトに関してもFedoraプロジェクトと同じガイドライン、ルール、ポリシーに従うことを順守しているようです。remiについても同様に、有志によって管理されているプロジェクトになります。公式ページを参照するとremiの目的ですが、最新バージョンのPHPモジュールをFedoraやRHEL系のディストリビューションに提供することとあります。それぞれ目的が異なるんですね。yumコマンドを理解するyumでのよく使うコマンドの一例を紹介します。パッケージの情報を表示するリポジトリの追加の仕方を理解するremiリポジトリを例に順をおって説明していきます。rpmファイルをダウンロードするネットで検索したりしてremiレポジトリのrpmファイルをダウンロードします。rpmファイルのパスは頻繁に更新されるようなので注意が必要です。http://rpms.famillecollet.com/enterprise/remi-release-6.rpmここでrpmファイルとは。Manager)とよばれ、Redhatにより開発されたこれまたパッケージ管理システムになります。yumは実際にはrpmのラッパーとして動作しており、実際にパッケージのインストールに関してはrpmにより行われます。rpmはパッケージをcpio形式で圧縮し、その中にspecファイル・バイナリまたはソースコードが含まれます。DBを採用していて、これによりローカルのパッケージ情報の管理がなされる。specファイルにはパッケージの名前や、概要、依存するパッケージ、バイナリパッケージのインストールパス、インストール前後に実行するスクリプトなどが書かれていて、これによってユーザが意識しなくてもインストールを円滑に行うことができます。rpmでは依存するパッケージは提供されますが、その実行はユーザに任せています。この辺りを自動的に解決するのがyumということになります。remi-release-6.rpmインストールされたかどうかを確認するためには下記のコマンドを利用します。remi-release-6remi-release-6.5-1.el6.remi.noarch実際にリポジトリを使用するにはenablerepoと明示的にオプションに指定することや、設定ファイルに優先順位などを記述することで可能になります。ここでは試しにremiリポジトリが提供しているphpに関するパッケージをかくにしてみましょう。@remi...結局内部で何をしているかを理解する(つもりだったがまたの機会に)大雑把なことわかったんですが、中身が気になりますので追っていきます。確認環境はCentOS6.6になります。sys.exit(1)python。ちなみにですがpythonは結構コマンドラインと親和性が高いように思っています。デプロイツールの一種にもpythonを拡張したfabricというライブラリがあり、コマンドラインなんかを用意に実行できます。yumスクリプトを見ると実態はpythonのラッパーとして動作していることがわかります。この続きについてはまた機会があるときに追跡しようと思います。本日はyumの周りをざっくり理解してもらえたでしょうか。epalやremiがなんなのかわからない方は、下記を参考にして下さい。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。preg_replaceのパフォーマンス検証と呼び出しの最適化RECOMMENDこちらの記事も人気です。