linuxではアプリケーションをインストールする際にはwindowsとは違った形式のファイルを使います。また、リポジトリなどwindowsでは聞き馴染みの薄い用語が登場します。Linuxはディストリビューションによる違いがあるので形式も異なります。
今回はこの辺りをまとめて解説します。
キーワード
- パッケージ
- リポジトリ
- yumとapt
- rpmとdeb形式
- rpmとdpkg
- RedHat系とDebian系
パッケージとは?
アプリケーションをインストールするにはアプリケーション本体だけでなくライブラリなどが必要であったり、ユーザーのためにReadmeやヘルプファイルなどを入れておく必要かもしれません。
パッケージはこれらのファイルをまとめて一つの箱にいれたフォルダのようなものです。
windowsではあまり意識しないと思いますが、Linuxでは
- コマンドラインでアプリをインストールすることが多いこと
- ディストリビューションの違いによるファイル形式や入力コマンドの違い
があるため、理解しておくと役立つでしょう。
ちなみにwindowsでは.msi形式がインストールパッケージファイルです。
今回はサーバーとして良く使用されるLinuxディストリビューションであるCentOS とUbuntuを例に解説していきます。
rpm形式とdeb形式
Redhat系(CentOS)とDebian系(Ubuntu)とではパッケージのファイル形式が異なります。
- CentOSではrpm形式が採用されています。
- Ubuntuではdeb形式が採用されています。
ディストリビューションの種類によってファイルの形式が違うというのを覚えておきましょう。
パッケージをインストールするコマンドrpmとdpkg
パッケージのファイル形式だけでなく、パッケージをインストールするのに使うコマンドも違います。
ネット上から拾ってきたパッケージに対してCentOSではrpm、Ubuntuではdpkgコマンドを使用すればインストールができます。
例えば
sudo dpkg -i example.deb
のコマンドを入力すればインストール
sudo dpkg -r example.deb
-rを指定すればアンインストールができます。
リポジトリを利用 – yumとapt
Windowsでアプリケーションをインストールする時は、ソフトウエアをダウンロードした.exeファイルなどをクリックして指示に従ってインストールを完了する。
というのがよくある流れだと思います。
一方で、Linuxは有名なソフトウエアはわざわざネットで探してインストールファイルをダウンロードしなくても、コマンドラインでインストールしたいアプリの名前を入力すれば勝手にダウンロード、インストールしてくれる機能がついています。
ネット上にリポジトリと呼ばれるたくさんのパッケージを集めたパッケージ置き場があります。このリポジトリ上からダウンロード・インストールします。
このリポジトリからインストールする際もLinuxディストリビューション間でコマンドが違います。
例えばWebサーバーのApache(パッケージ名httpd)をリポジトリからインストールしてみます。
CentOSの場合
sudo yum -y install httpd
とやるとApache Httpdがリポジトリからインストールできます。
Ubuntuの場合は、
sudo apt install apache2
となります。パッケージ名がyumとaptとではリポジトリ中で異なるため、httpdがapache2になっています。またオプションは指定しなくてもインストールできます。
いちいちダウンロードしてからファイル指定してインストールなどをしなくても良いのでリポジトリは便利です。
yumからdnfに移行
RedHat系で利用されているパッケージ管理コマンドはyumでしたが、現在はFedraやCentOS8ではyumからdnfに移行しています。
yum (Yellowdog updater Modified)はデューク大学のセス・ヴィダルらによって開発されたメタパッケージ管理システムですが、開発から時がたっているため、いくつかの欠点が発見されています。
開発はpython2と古いバージョンで書かれているため、現行バージョンのpython3に対応した新しい管理システムとしてdnfが採用されています。
2015年にはFedraの正式なパッケージマネージャとしてdnfがyumに代わって採用されています。CentOSでもdnfに対応しています。
Fedraではyumを入力した場合、dnfにリダイレクトされるようになっているようです。