Linuxのディストリビューションをざっくりわけると、RedHat系、Debian系、Slackware系にわかれるようです。僕がSlackware系になじみがないので、ここではRedHat系とDebian系について書いてみます。
RedHat系とDebian系の代表的なOSと、パッケージ管理方法をまとめると以下の表のようになります。
系列 | OS | パッケージ形式 | 管理コマンド |
RedHat系 | Fedora RHEL CentOS |
RPM形式 | rpm yum dnf |
Debian系 | Debian ubuntu |
deb形式 | dpkg apt |
RedHat系のOSのRHELは「RedHat Enterprise Linux」の略です。FedoraとRHELとCentOSの関係ですが以下のようになっています。
Fedora → RHEL → CentOS
まずFedoraで新機能をいち早く搭載し安定稼働が確認できたらRHELにそれを組み込みます。RHELはRedHat社が有償で商用サポートを行っています。CentOSはRHELのクローンで無償で利用できますがRHELに比べると機能の実装が遅くなります。僕の感覚ですが、企業で利用しているLinuxのOSはRHELかCentOSが多いですね。Fedoraは実験的な取り組みでもあるので個人でLinuxの新機能をいち早く勉強したい方には良いかもしれません。なお、FedoraとCentOSは有志の団体が無償で開発を行っていますがRedHat社とは提携関係にあるようです。
Debian系のOSにはDebianとubuntuがあります。日本ではubuntuのほうが人気があるように思えるのですが、世界的にはDebianのほうがメジャーみたいです(あくまで個人的な感想です)。
ちなみにFreeBSDというOSがあるのですが、こちらはLinuxではないようです。LinuxはそもそもUnixからわかれてきたOSですが、FreeBSDはUnixです。Unixの中でオープンソース化され無償で利用できるOSとしてFreeBSDがあるようです。
ここからはパッケージ管理のコマンドについて書いてみます。
RedHat系のパッケージ管理コマンドは以前はrpmが使われていましたが最近はyumが一般的に使われています。yumはrpmより高機能ですが状況によってはyumでは対応できずrpmでしか対応できない場面もあります。Fedoraではdnfというパッケージ管理コマンドを搭載しているようですがまだそんなには使われていない感じはします。
Debian系についても同様に、以前はdpkgを使用していましたが最近はaptのパッケージ管理コマンドが一般的になっています。dpkgはRedHat系のrpmに該当する感じでしょうか。
rpm/dpkg・・・システムコールに近い(低水準)
yum/apt・・・rpmやdpkgをラップした関数みたいなもの(高水準)
次回はyumとaptのリポジトリ管理について書いてみようと思います。