Linuxでソフトウェアインストールするにはどうするの?
yumって何?リポジトリってなに?
エンジニア1年目の時、僕はこんな感じでした。
数年前の僕と同じ状況の方もいると思うのでLinuxのパッケージ管理についてわかりやすく解説していきます。
ソフトウェアパッケージ
Linuxディストリビューションにはさまざまなソフトウェアがインストールされており、初期状態でも多くの作業が行えるようになっています。
しかし、何かの目的で新しくソフトウェアをインストールすることが起きます。
LinuxではWindowsなどと違い、インストーラがソフトウェアに付属していることはありません。
Linuxでソフトウェアをインストールするには、以下の二つの手法が主に用いられます。
- ソースコードを自分でコンパイルして、指定のディレクトリにコピーしてインストールする
- パッケージと呼ばれるコンパイル済みのバイナリファイルのアーカイブを、パッケージ管理システムを利用してインストールする
今回は、後者のパッケージ管理システムを利用したインストール方法を解説します。
ここではRed Hat系のLinuxディストリビューションでパッケージを扱う方法について解説します。
パッケージとリポジトリ
パッケージ管理システムでは「パッケージ」を単位としてインストールやアンインストールの管理を行います。
パッケージとは、ソフトウェアの実行ファイル、ドキュメントファイル、設定ファイル、インストール時に必要なスクリプトなどをアーカイブした1つのファイルです。
CentOSなどのRed Hat系ではrpmというパッケージ形式が扱われる。
パッケージファイルを集めて配布しているサイトを、リポジトリと呼びます。
パッケージ管理システムはリポジトリを指定することでパッケージを取得し、インストールを行います。
ディストリビューションごとにデフォルトで指定された公式リポジトリがあります。
各ディストリビューション自身がパッケージを配布しているということですね。
yumコマンドでパッケージを管理する
Red Hat系のLinuxディストリビューションでは、rpmというパッケージ形式が採用されています。
このrpmファイルを管理しているシステムがRPM(Redhat Package Manager)です。
RPMシステムの基本となるrpmコマンドというのがありますが、単純な操作しかできず、実際の運用管理で使うには不便です。
そこで現在は、rpmコマンドを内包したより高機能な仕組みを提供するyumコマンドがよく使われています。
yumコマンドの使い方
yumコマンドを以下のような書式で実行します。
yum [オプション] [コマンド] [パッケージ名]
パッケージのインストール
yumコマンドでパッケージのインストールを行うにはinstallコマンドを利用してパッケージ名を指定します。
yum install <パッケージ名>
なお、インストール作業にはroot権限が必要です。
次の例では、vimエディタをインストールするときの記述です。
# yum install vim
途中でインストールの確認プロンプトが表示されますが、y入力すればインストールされます。
確認をせずにインストールしたい場合は-yオプションを利用します。
# yum -y install vim
パッケージの依存性
パッケージの多くは「先にインストールしておかなければならない別のパッケージ」があります。
例えば、何かのライブラリが必要となるパッケージはそのライブラリのパッケージをインストールしないと実行できません。
このように、パッケージ単体では機能しない、別のパッケージを利用しなければならない状態を「依存性がある」と表現します。
yumコマンドはこの依存性を解決してくれる機能を持っています。
rpmコマンドでは、これらの依存性の解決も手動で行う必要があるため手間がかかります。
特に理由がない場合はyumコマンドでパッケージをインストールすることをお勧めします。
パッケージの削除
パッケージをアンインストールするにはremoveコマンドもしくはeraseコマンドを利用します。
yum remove <パッケージ名>
もしくは
yum erase <パッケージ名>
yumでアンインストールをすれば依存性の解決も自動で行ってくれます。
パッケージを探す
パッケージ名はコマンド名と同じではないケースがほとんどです。
なのでパッケージ名を調べる必要が出てきます。
リポジトリからパッケージ名を調べるにはsearchコマンドを利用します。
yum search <検索ワード>
searchコマンドではパッケージ名とその要約のみが検索対象になります。
パッケージの説明文も検索対象としたい場合はsearch allコマンドを使用します。
yum search all <検索ワード>
なお、searchコマンドで指定する検索ワードは大文字と小文字を区別しません。
パッケージの詳細情報を表示する
infoコマンドを使えばパッケージの詳細情報を表示することができます。
yum info <パッケージ名>
次の例は、httpdパッケージの詳細情報を表示させたものです。
Linuxのソフトウェアパッケージまとめ
- パッケージとは?
ソフトウェアのさまざまなファイルをアーカイブした一つのファイル - リポジトリとは?
パッケージファイルを集めて配布しているサイト
公式リポジトリ / サードパーティリポジトリ / 個人用リポジトリ - yumコマンドとは?
パッケージを管理する機能をもつコマンド
パッケージの依存性を解決してくれる
ここで紹介したのはパッケージ管理システムのほんの一部です。
より詳しく知りたい方はディストリビューション提供の公式ドキュメントを参考にしてください。
コメント