はじめに
yum, rpm。使えるし、何となく分かる。
よくわからないエラーもstack over flowのQAを見たら何となくうまくいった。
そんな状況になってませんか?
何を隠そう、それが私です。
そろそろ理解しておかないとまずいし、意外と同士が多いんじゃないかと思い、
この記事を書くことになりました。
パッケージってなんだ?
yumやrpmは所謂パッケージ管理ツールです。
パッケージは今と昔で少し異なります。
昔のパッケージ
- ソースコードだけ提供
- コンパイルは自分でやって使う
最近のパッケージ
- コンパイル済みのバイナリ・依存関係のあるファイルを提供
- インストールしたらすぐ使える
色んな変化を遂げてきた訳ですが、これらをひとまとめにしたものをパッケージと呼びます。
rpmとyum
パッケージ管理ツールには2大勢力があります。
それがrpmとyumです。
rpm
- redhat package managerの略
- パッケージ間の依存関係は分かってるが、自動的に解決はしない
yum
- Yellow Down Updater Modifiedの略
- パッケージの依存関係を自動解決
- 依存するパッケージも一緒にダウンロードしてくれる
- これはrpmにはない嬉しい機能
リポジトリってなんだ?
yumを使ってると、remiとか、epelとかいろんなリポジトリ
という言葉がよく出てきます。
簡単に言えば、リポジトリはパッケージの置き場所です。
OS上には/etc/yum.repos.d/
というディレクトリがあり、ここのリポジトリの情報を参照して、インストールしている。
基本的には、/etc/yum.repos.d/CentOS-Base.repo
ここに書かれている設定を参照するため、
yum search等で探しに行くときは、ここの書かれたリポジトリを探しに行ってます。
次の章で話しますが、よくyumでパッケージをインストールしようとした時に、見つからなかったり、
古いものしかなかったりします。
そんな時はリポジトリを変更したりしてインストールします。
別のリポジトリを使う
yumでは、他にもepelやremi等のリポジトリがあり、そっちのリポジトリにはソフトウェアが存在してる場合があります。
その際には、下記のように--enablerepo
オプションをつけて、使うリポジトリを明示的に指定します。
yum install --enablerepo=remi,epel php
yumでよく使うコマンド一覧
- インストールする
yum install ソフトウェア名
- 今までダウンロードしたパッケージを削除
yum clean packages
- ソフトウェアを更新する
yum update ソフトウェア名
- ソフトウェアをアンインストールする
yum remove ソフトウェア名
- すでにインストール済みのソフトウェア一覧を確認する
yum list installed
- インストール可能なソフトウェア一覧を表示
yum list
- インストールしたソフトウェアでアップデートが出来る一覧を表示
yum list uddates
- ソフトウェアの詳細情報を表示
yum info {ソフトウェア名}