Assyのリベラル文学研究所もご覧ください。

Red Hat

長所

RHELの場合、会社が作っているディストリビューションなので、Debianと違いきちんと会社のサポートサービスが受けられる。企業サーバ向け。
Linuxの事実上の標準構成。仕事で使うために勉強する場合、Red Hatが分かっていれば、どんな場合にも対応できる。
Fedoraは最先端で、さまざまな技術を最速で取りいれる。このため、最新の技術を試すことが出来る。思い切ってRawhideにしても良いだろう。
Fedoraは開発者・オタク向け。率先してLinuxの開発を行い、オープンソースを「開拓」していく人に向けられたディストリビューションだ。

短所

まず、RHELは無料ではない。金がかかる。
そして、RHELオープンソースなため、無料版を配布しようと思えばできる。そのために、CentOSというRHELクローンがある。だが、このビジネスモデルは明らかにおかしい。
Fedoraは最近はきちんと動いているバージョンが多いが、昔は不安定で動くわけがないバージョンが多かった。いつ動かなくなるか分からない。メインマシンにすることは出来ないだろう。

個人の開発者が少なくなった今でも、Red HatLinux Kernelへの貢献度で上位

Linuxカーネルは最近、無償のボランティアは8.2%(2017年)で、多くが個人ではなくもっぱら企業で開発されていますが、それでも、Red HatLinuxカーネルへの貢献度で高い位置を保っています。

これを見ると、Red HatIntelに次いで二位(2017年)。正確にはIntelの次にnone(無し)があり、その次である。
Linuxカーネル開発のトップ企業は、IntelRed Hat、Linaro、IBMSamsungSUSEGoogleAMDRenesas Electronics、Mellanoxとなっている。Microsoftが一社で作っているWindowsとは違い、Linuxカーネルすらオープンにさまざまな企業が開発している。
また、最近は「MicrosoftLinuxカーネルの統制権を得て乗っ取ろうとしている」などというアンチMS的な意見もあったりして、どうなるかは危ういが、Red Hatなどと協力している分野もあり、今後が予測できない。ただし、先に言ったようにLinuxカーネルはオープンな開発体制を取っており、仮にMicrosoftLinuxカーネルに参入したとしても、他の会社と同じ道を歩むだけである、と楽観視する向きが大きい。

Linuxと商売

Linuxにはまだビジネスモデルが確立していない

実際のところ、Linuxで金を儲けるためのビジネスモデルはまだ確立していない。
Linuxカーネルや多くのオープンソースソフトウェア(フリーソフトウェア)は、GPLの下でライセンスされている。GPLでは、フリーソフトウェア自体を販売することは制限されないが、フリーソフトウェアを提供するものにはソースコードを開示する義務があり、また、その開示したソースコードフリーソフトウェアを自由にコピーしたり再配布したりする自由を禁止してはならない。
よって、Linuxをもし販売したとしても、その販売したソフトウェアがすぐにコピーされてしまう。Microsoft Windowsのように、コピーを禁止して、Microsoft以外のものが配布してはならないようにすることはできない。
だが、Red Hatはそんな中で、どうにかしてオープンソースのライセンスを採用したままで、ビジネスモデルを確立しようとしている。それを今から見ていこう。

Red Hatのビジネスモデル

そもそも、Linuxディストリビューションとは、インターネット上にあるフリーソフトウェアを寄せ集めて、「きちんと動くぐらい高品質に安定させたひとつのOS」を提供することである。
Red Hatは、その取りまとめを企業が利益を得て行うことで、エンタープライズでも使用することができるぐらいの高品質なOSを、Linuxカーネルオープンソースソフトウェアをベースに作り上げている。
Red Hatの主力製品はRHELRed Hat Enterprise Linux)である。これは10万円ぐらいで購入することができる。
RHELは企業の基幹システムなどで採用されることが多く、Linuxでお仕事をする時の事実上の標準になっている。また、スーパーコンピュータでLinuxクラスターを作る時にも採用されることが多い。ほかには、クラウド仮想サーバーのコンテナ向けのOSとしても良く採用される。Red Hatは、こうしたエンタープライズ向けの分野で、RHELを販売して儲けている。
だが、そもそも、10万円も出してRHELを購入するメリットは何だろうか。
Red Hatのビジネスモデルは、「長期のサポート」と「動作の保証」が重要な位置づけにある。
ここで言うサポートとは、要するにセキュリティパッチやバグの修正である。Debian GNU/Linuxのようなコミュニティ向けの無料のディストリビューションでも、セキュリティパッチのサポートは受けられるが、RHELに比べてサポートされる期間が短い。Debianでは、最新の安定バージョンとその前のバージョンぐらいしか、サポートされていない。Red Hatはそれより長い間、商用のサポートが受けられる。
長期のサポートを実現するためには、古いバージョンまでさかのぼってバグを直さなければならない。Red Hatサブスクリプション形式(期間契約)での契約を結ぶことで、古いバージョンを使っているユーザーでも、常に最新のバージョンを利用することもできる。もちろん、サポート期間が続く間は、既存のシステムをできる限り変更なく保守し続けることができる。
だが、先にも言ったように、LinuxGPLでライセンスされている。Red Hatも例外ではなく、自由な再配布とコピーを許さなければならない。このため、Red HatSRPM形式でソースパッケージを配布しており、これをリビルドしたCentOSというRHELクローンもある。
CentOSRHELの違いは、「動作の保証」である。CentOSは確かにRHELと製品の内容は同じだが、サポート契約を結んでいないため、動作に支障があっても文句は言えない。RHELを購入した場合は、Red Hatが動作を保証するため、Red Hatにはシステムに問題があった時は責任がある。
Red Hatは、そうした「保守と責任」で儲けているのである。
逆に言えば、Red Hatからの動作の保証がなくても、自社で責任を取れる場合には、CentOSを使って一向に構わない。Red Hatに金を払わず無料でCentOSを使うことに罪悪感を感じる必要はない。そもそも、無料のフリーソフトウェアを販売して儲けているRed Hatが悪い。

Fedoraという無料版もある

Red HatRHELエンタープライズ向けに販売している代わり、デスクトップユーザー向けのFedoraという無料版も提供しています。
このFedoraは、旧Red Hat Linuxの後継版にあたるもので、これは「マニア向け」あるいは「Geek向け」(Geekとはオタクという意味)とされています。
Fedoraは非常に短いスパンでリリースされて、最新のLinuxの開発情勢が反映されています。多くのソフトウェアが、動くかどうかにかかわらず最新バージョンです。Red Hatは、「使うだけではなく開発に貢献して欲しい」とし、Fedoraを上級者向けのディストリビューションだと位置づけています。
FedoraRed Hatだけではなく、コミュニティによって開発されています。このFedoraの成果が、RHELに反映されるようになっています。
Red HatFedoraだけではなく、Linuxカーネルなどとても多数のプロジェクトに開発者を参加させたり、あるいはスポンサーになったりしています。今のLinux業界は、Red Hatが牽引しています。そのため、Red Hatは自らのことを「オープンソースのリーダー企業」と宣言しています。

Googleのビジネスモデル

また、最近はGoogleLinuxカーネルをベースにしたAndroidというオープンソースのモバイル向けのOSを作っている。
モバイルはLinuxにとってとても重要な市場で、Linuxが稼働する台数としてはパソコンよりもモバイルや組み込みシステムの方がはるかに多いとされている。
Googleは、カーネルやOSはオープンソースにしながら、自社のGoogleサービスの広告と、アプリを配布するGoogle Play Storeの利益で儲けている。
まさにGoogleオープンソースを変えた。オープンソースにしながら儲けられるビジネスモデルを作っているのは、Googleぐらいである。
だが、Red HatGoogleと同じことをやることはおそらくないだろう。なぜなら、Googleが儲けられるのは、サーバー側の運営システムを公開していないからに過ぎない。こうしたサーバー側でも公開を義務付ける「アフェロGPL」という新しいライセンスも考案されている。

Red Hatの商売領域

中小のサーバー

Red Hatは、中小企業のサーバーに良く使われている。UNIXWindowsなどを含め、もっとも新しく、機能があり、安定性と信頼性が高いのはRed Hat
LinuxにはDockerなどの最新技術があるため、単なるWebサーバーだけではなく、クラウドにおける仮想コンテナOSとしても、Red Hatが使われることが多い。
こうした分野で、高額なRed Hatの代替となるのはCentOS。コミュニティによるディストリビューションを使いたいならUbuntuDebianも選択肢になる。また、本当に安定性が必要ならLinuxを使わず、FreeBSDOpenBSDを使う場合もある。

UNIXシステムのリプレース

古くなったUNIXを使ったシステムやワークステーションは、そのままRed Hatにリプレースされることが多い。
Red Hatの主な事業はこうした「UNIXからの移行」であり、コストを削減した上でOSやシステムを最新のものに変えることができる。

ミッションクリティカルな領域

また、政府や軍のような「絶対に漏れてはならない機密情報の管理」や、あるいは通信インフラのような「絶対にストップしてはならないインフラ」に使われることもある。
最近では、スパコンメインフレームでもRed Hatが使われる。
また、特殊な現場としてはアニメーションスタジオでもLinuxが使われている。アニメーションスタジオでは3DCGの複雑な合成や計算が必要であり、従来Macなどが使われていた分野で、新しいOSとしてLinuxが使われている。

コミュニティと企業の架け橋

また、Red Hatの独自のオープンソース企業としての特徴として、「コミュニティと企業との間の架け橋となる」というのが挙げられる。
たとえば、GoogleとともにKubernetesを開発したり、Kubernetesを応用したOpenShiftを開発する。Googleのような一部の大企業だけではなく、IBMや日本企業などさまざまな企業と提携し、「オープン化への対応・対策」を行っている。コンサルタント企業のようなものでもあるが、実際の開発とコミュニティ・エコシステムの形成までを行う。

Red Hatの作ったソフトウェア

Red Hat系設定ツール

Red Hat系の設定ツールは、パッケージ管理システムとは個別に配布されている。Pythonで書かれた単純なGUIツールが多い。

libvirt

仮想化管理用の共通API

Anaconda

FedoraCentOSで使われているGUIインストーラー。

JBoss

高機能なオープンソースJavaアプリケーションサーバオープンソース企業であるJBoss Inc.をRed Hatが買収した。オープンソース版については「WildFly」に名前が変更され、FedoraRHELとの関係と似たものを模索している。

Ansible

オープンソースの構成管理ソフト。
サーバを立ち上げる際、あらかじめ用意された設定ファイルに従ってインストールや設定を自動化できる。

Cygwin

GNUツールをWindowsに移植したもの。Red Hatが開発母体であるCygnus Solutionsを買収した。
Cygwinエミュレータではなく互換レイヤーであり、Cygwin1.dllを間に通すことでGNUツールの移植を実現している。Cygwin環境でコンパイルされたツールの動作にはCygwin1.dllが必要。

Global File System

コンピュータ・クラスター用のファイルシステム

価格

RHELの価格

RHELの価格はもっとも安いStandardサポートで108,600円、Premiumサポートで176,600円。けっこう高額だがOracleDBよりはマシである。

FedoraCentOSは無料

Red Hatが高額だからといって不安になる必要はない。RHELのコミュニティ開発版であるFedoraは完全に無料。またRHELをどうしても使いたい場合はコミュニティによるCentOSと呼ばれるRHELクローンが利用できる。サポートは必要だがコストを抑えたい場合はRHEL互換のOracle Linuxが利用できる。
CentOSでは企業サポートは受けられないが、コミュニティによるセキュリティアップデートは行われる(CentOSRed Hatが提供するソースRPMをリビルドして提供している)。企業サーバーやエンタープライズシステムを構築する場合は多少高くてもRHELを購入しよう。

提案・いろいろ

Red Hatが勝手にシステムの問題点を調べ上げて、勝手にバグを直す

僕は、Yum/DNFの未来形として、問題が起きた時にRed Hatの社員が勝手にシステムの問題点を調べ上げ、インターネット経由でその問題点を共有し、Red Hatがそのバグを直し、システムをアップデートする、という「Red Hat Implements」を実装すると良いと思う。
Red Hatはインターネット経由で遠隔地から、システムの不具合とバグ情報を共有する。そして、インターネットで繋がった世界中のFedoraのバグを直す。バグが治ったら、それを共有し、またそのマシンに適用する。こうすることで、Fedoraを「バグを完全に根絶し、リアルタイムで世界中のシステムの不具合を直していく」。これは新しい開発とバグ修正の形になると思う。

IBMRed Hat買収を発表

どうやら、IBMRed Hatを買収したようです。フェイクニュースではありません。Linux界で最近一番の衝撃かもしれません。
僕は、これは決して悪いことでもつまらないことでもないと考えています。
大きく分けて、2つの良い点があります。
まず、IBMによって、Linuxがさらに開発され、品質が高まるかもしれない。デスクトップLinuxも普及するかもしれないということです。
たとえば、デスクトップ環境をIBMオープンソースで作るかもしれません。そして、LibreOfficeも改良されるかもしれません。
ただし、危険なのは、IBMによってLinuxオープンソースでないものになることです。完全に独占ソフトウェアになるかもしれないのです。
Oracleによる、Sunの買収によって、Java, OpenOffice.org, MySQLなどが権並悲惨になっています。これと同じ末路を辿る可能性はあるでしょう。
もう一つの良い点は、RHELFedora、そしてCentOSによる、今までのRed Hatのビジネスモデルが変わるかもしれない、ということです。
たとえば、RHELを無料で提供し、セキュリティ修正のようなサポートもIBMがするようになるかもしれません。あるいは、Debianが中心となって新しいLinuxの秩序が生まれる可能性もあるでしょう。
ただし、ネットでは冷ややかな意見が多いようです。そもそも約4兆円という大金を出す価値がRed Hatにあるのか、とかです。また、とても驚いている人がたくさん居ます。「その発想は無かった」という人も多いようです。
Red Hatが終わったとしても、Linuxは終わりません。いつも通り、Linuxカーネルの開発者コミュニティで開発を行います。Linuxカーネルは5.0の大台に乗るようです。
IBMは、良くこうした企業の買収劇を行います。Lotus 1-2-3のように、完全に失敗した買収だったことになって、Red Hatは消えるかもしれません。それに、IBMは全くオープンソースのことが分かっていないと思います。IBMオープンソースを潰したいだけの買収だったのかもしれません。ですが、約340億ドルを出したIBMは大きな賭けに出ました。それは成功するでしょう。
そして、今回の買収は、僕は「普通の買収ではない」と思います。それは、オープンソースIBMの買収劇だからです。買収したのはIBMで、買収されたのはRed Hatです。これは最高の発想であるとともに、リスクの大きな賭けであり、そしてLinux陣営に対しては、決してポジティブなだけのことではなく、マイナスに作用することもあるでしょう。どうなるかはまだ分かりません。ですが、Linuxカーネルにとってつまらないだけの話ではないと思います。

Red Hatの社風

Red Hatの「オープンソースとオープンを大切にする社風」については、以下の記事が参考になる。特にGoogle発のKubernetesRed Hatがともに開発し、顧客や外部の開発者とコミュニティを築き、Kubernetesを活用したOpenShiftを作り上げていくプロセスは、カッコいい。

企業のスポンサーが居ることは必ずしも悪くない

僕が思うに、Red Hatなどを企業の参加者だと言って悪く言う意見は多いですが、Red Hatのような企業のスポンサーがつくことは悪いことではありません。
たとえば、Debianなどは、コミュニティのボランティアが開発やメンテを行い、サーバーやプロジェクトの運営資金などは寄付によって賄っています。
これに対して、Red HatFedoraCanonicalUbuntuは、バックに居る企業から潤沢な運営資金を手に入れることができます。
Debianが必ずしも寄付だけに頼っているわけではありませんが、Wikipediaのように大っぴらに巨大な寄付集めの広告を載せるような、「完全に寄付によって成り立つ組織」よりは、金儲けでも会社の利益を使ってさまざまなことができるようにした方が、将来性や継続性があるということはあると思います。

LAMPスタックは十分商売に使える

最近のITインフラは、三階層型システムというのが主流で、Webサーバ、APサーバ、DBサーバによってシステムを構築します。
システムの役割や機能が違っていても、アーキテクチャや構造は、どのシステムでも驚くほど似ており、多くのシステムが三階層型システムを採用しています。
そして、この三階層型のシステムは、オープンソースLAMPスタック(Linux+Apache+MySQL+Perl/PHP/Python)を使うことで、個人でも小さな会社でも、無料で作ることができます。
サーバーにはスケールの問題があり、大きなサーバールームやデータセンターであればラックに何百台というサーバーマシンが置かれています。また、IBMメインフレームも抜群の信頼性や性能を誇ります。
ですが、今のIT業界では、LAMPがどんなにチープでも、十分使えるものになってきています。ビジネスの用途でも、LAMPが使えるようになりました。
また、インフラの信頼性や拡張性の向上のために、最近では仮想化が使われるようになりました。これも、DockerやKubernetesをはじめとするLinuxの得意分野です。
そのため、Linuxは仕事のシステム開発に十分使える「ビジネスインフラ」になりつつあります。Red Hatはこうした分野でLinuxを使うことで、低コストでも満足のいくシステムを構築して、商売しています。またRed Hatが行うだけではなく、RHELのような商用サポートのついたLinuxで、高可用性・高性能なサーバやシステムを構築することは、今のIT企業の標準的インフラプラットフォームになりつつあります。
注記:Red Hatが実際どのような業務システムを構築しているか僕は知らないが、Linuxにおける企業システムではJavaOracleが使われることも多いため、必ずしも三階層システムにPHPMySQLを使うことはないだろう。多くの三階層システムにJavaが使われており、Linux+Apache+Java+Oracleというシステムで多くのシステムに対応できる。

Fedora

Fedoraは遊び用途

また、Fedoraについて言うと、完全に遊び用途です。
壊れても構わないシステムで、最新の技術を触ってLinuxで純粋に遊びたい方向けのLinuxディストリビューションであると言えます。
たとえば、SELinuxやwaylandのような新技術は、他のどのディストリビューションで採用されるよりも前に、Fedoraで採用され、Fedoraで開発されることが多いと僕は感じています。
Ubuntuはきちんと使うマシンに、Fedoraは壊れても構わない遊び用途のマシンに入れると良いでしょう。
また、Fedoraを使うのであれば、僕は思い切って開発版のrawhideにすることをおすすめします。いつ使えなくなるかは分かりませんが、リリース版のFedoraでは「開発最新版」という感じが薄く、遊ぶと言ってもただ使うだけになってしまうからです。rawhideで最新のLinuxを試すことで、今Linuxで何が開発されているか、良く分かると思います。

Fedora Modular

最近進められているFedora Modular Serverでは、パッケージのモジュラー化が進んでいる。
これはRHELFedoraといったOS(Base)からアプリケーション(AppStream)のライフサイクルをある程度独立させるための仕組み。Fedoraとしては30を使うが、node.jsはもっと新しい(古い)バージョンを使いたいといった時に、OSそのもののバージョンに縛られるのではなく、アプリケーションのバージョンだけを独立して変えられる。

Fedora SilverblueとOSTree

Fedora SilverblueではOSTreeという技術を用いて「immutable OS(不変のOS)」を作ろうとしている。
OSTreeはgitの考え方によるパッケージ管理のアプローチで、複数のパッケージをgitの動作原理と同じ原理で管理する。
簡単に昔の環境に戻したり(ロールバック)切り替えたり(リビジョンの切り替え)することが可能で、gitのようにリモートのリポジトリから新しいデプロイメントを取得できる。
Dockerなどとはアプローチが異なる。

Fedora CoreOS

Fedoraによるクラウド向けOS。CoreOS Container LinuxFedora Atomic Hostのいいとこどりのような感じ。

Fedoraの特徴は、我々こそがLinuxの開発者であるということ

Fedoraの特徴として、まず、「Red Hatが何をやりたいのか分からない」と言える。
Fedoraは、開発版であり不安定版であり、最新版でありオタク版であると言っておきながら、通常の利用に使えるとか、サーバー版を出してみたりとか、良く分からないことをRed hatは主張する。
どうやら、Red Hatへの技術貢献版であるだけではなく、Red Hatからの技術貢献版でもあるようである。
コミュニティの力を信じているように見えて、「Red Hatが後援しています」的なことを大きく打ち出して宣伝したりもしている。
GNUとの関係性やフリーソフトウェアの選定に厳しいのと裏腹に、Debianのように「GNU/Linux」と言う名前を大きく打ち出すこともしない。
だが、見ていると、むしろ、「UNIX時代から続く、技術的な面白いこと」をやっている、ということが言える。
たとえば、Fedora Serverは最近モジュラー指向になって、パッケージのバージョンを選べるようになっただけではなく、なぜか「パッケージを機能ごとにアップデートし、互換性を維持したままで新機能を使える」というありえないことをやっていたりする。
新しいパッケージに果敢に取り組む姿勢は鮮明で、ありえない最新バージョンのGCCをどんどん取り入れて、動くわけがないのに全システムを最新GCCコンパイルし、アップストリームに貢献している。
要するに、「我々がLinuxの開発者である」ということを言いたいのだろう。我々こそが、Linuxなのである、と言いたい。本当はDebianと仲が悪いわけでもないから、DebianUbuntuFedoraには融合してほしい。できればopenSUSEやArch Lnuxにも。だが、最近のLinuxは完全に住み分けが出来ているので、統一しなくてもきっと良いものになるだろう。

デスクトップLinuxならFedora

僕は、デスクトップLinuxならFedoraをおすすめする。それは「楽しい」からである。
まさにUbuntuDebianをすすめる人も居るだろう。だが、それらのOSは、実用的で、使ってみると分かるが、「つまらない」のである。
Fedoraは、やりたいことが明確、「オープンソースの最先端技術をつめこむ」ことを目指したディストリビューションだが、使うと、「面白い」ということが言える。
何もかも、面白いものが優れている、それがLinuxオープンソースの業界である。Fedoraは十分デスクトップLinuxとして使えるし、何よりも面白い。だから、僕はデスクトップにFedoraをおすすめする。
また、僕の個人的な経験から言うと、UbuntuFedoraと同程度に不安定でバグが多い。Ubuntuは特にパッケージや設定・管理のバグが多く、まともに使えない品質である。そして、Debianは軽く安定しているが、標準的な最新の先端性がない。古いパッケージばかりで、つまらない。Fedoraは作りかけの最新機能が多く、面白い。それに、Red Hatは仕事で使える。むしろ、RHELも無料版を作ってほしいと僕は願っている。

CentOS

Red Hat Linuxの無料版は無くなった

CentOSは、Red Hat社の有償のLinuxディストリビューションRHEL互換の、コミュニティによるクローン(RHELクローン)です。
Red Hat Linuxは、昔から事実上の標準だったLinuxディストリビューションで、RPMという使いやすいパッケージ管理システムと、サーバーやエンタープライズからデスクトップまでの幅広い用途で使われる、米国Red Hat社によるディストリビューションでした。
Red Hatは、Red Hat Linuxを無料で提供しながら、商用サポートのついた有料版のRed Hat Linuxを販売し、サポートやサブスクリプション(期間契約)でビジネスを行っていました。
ですが、Red Hat Linuxは今はもう存在しません。Red Hatが、Red Hat Linuxの無料版の提供をやめ、オープンソースコミュニティによって開発される「Fedora」と呼ばれる新しいディストリビューションと、商用サポートのついたエンタープライズ版である「Red Hat Enterprise Linux」(RHEL)を柱とする、新しいモデルを始めたからです。
Red Hatは、この時点でデスクトップ用途や個人の開発用途を全て「Fedora」に移管し、Red Hat社が開発・提供を行うのではなく、コミュニティベースで開発されるものとしました。
また、RHELは企業やエンタープライズ向けの商用サポート版で、長期のサポートが受けられ、Fedoraでの開発成果をもとに、Red Hatが独自に改良・改善し、サポートとともに有償で提供されるものとしました。
よって、この時点で、個人がRed Hatシステムを使うためには、どんなに不安定で使いものにならなくても、Fedoraを使うべきである、とRed Hatは宣告したわけです。

RHELオープンソースライセンスで提供される

ですが、RHELの元になったLinuxカーネルGNUのツールなど、多くのフリーソフトウェアは、オープンソースなライセンス、特にGPLなどで提供されています。
GPLで公開されたソフトウェアを再配布する時は、同じようにGPLで提供しなければなりません。これをコピーレフトと言います。
Red Hat社は、LinuxカーネルGNUのツールを使う以上、GPLを守って、Red Hat社が開発を行った部分もGPLで提供しなければなりません。
Red Hat社は、Fedoraは当然であるとしても、RHELソースコードを、ソースRPMと呼ばれる形式でリポジトリで配布しています。ここで配布されたソフトウェアはGPLが適用され、他の誰がコピーして配布しても構いません。
そのため、RHELのコードをコピーして、Red Hat社の商標など不必要な部分を削除した「RHELクローン」を作ることは、事実上可能です。
CentOSは、このRHELクローンのひとつです。Red Hat社のサポートは受けられませんが、RHEL互換で、ほとんどのパッケージはRed Hat社によるRHELのパッケージと同等です。その上で、無料で配布されています。

RHELクローンとは

そもそも、Red Hat Linuxの段階で、Red Hat社による多くのソフトウェアはGPLで提供されていました。このため、TurbolinuxVine Linuxなど、日本でも多くの「Red Hat派生ディストリビューション」が作られてきました。
こうしたディストリビューションは、FedoraRHELになってからも、FedoraRHELのコードをベースにして、独自のディストリビューションを開発しています。
Red Hat社がGPLに従う以上、RHELオープンソースを保持します。そのため、RHELが登場し、人々が「Fedoraって何?」と困惑する当時から、RHELの「互換性のあるクローン」の提供は人々の間で囁かれてきました。
最初のころは、White Box Enterprise LinuxというRHELクローンが人気でした。Red Hat Linuxを使っている企業のサーバーなどには、White Boxを代わりに導入したユーザーも多かったです。他にも、Scientific Linuxなど多くのRHELクローンがありました。
今のRHELクローンの主流はCentOSです。CentOSRHELのソースRPMをリビルドして、コミュニティのリポジトリで提供されています。RHELと内容は同じですが、無料で利用できます。その代わり、サポートは提供されません。ですが、セキュリティアップデートなどはRHELのソースRPMをリビルドして提供されています。

CentOSの用途

CentOSという名前は聞いたことがある方も多いと思います。それは、多くの書籍や入門サイトが、CentOSのシステムを前提に、CentOSのインストールから説明しているからです。
これには、「RHELを使いたいが、その準備のためにCentOSを導入して管理の方法を学びたい」といった用途が考えられます。
確かに、コミュニティの無料のディストリビューションを使いたいのであれば、Ubuntu Serverなどを使えばいいという話で、CentOSをわざわざ導入する必要はありません。
ですが、今のLinuxを使ったビジネス市場では、RHELのシステムが事実上の標準となっています。
そのため、RHELのシステムの管理に精通しておくことは、Linuxエンジニアになる上でどうしても必要なスキルになります。
RHELクローンのCentOSを導入することは、
1.RHELを実際に導入する前段階の準備や学習として導入する。
2.Linuxエンジニアになる上で、RHELのシステムに精通し、エンジニアとして学習や習得のために、自分で勉強のために導入する。
などといった利点があります。
もちろん、CentOSを本当の「本番環境」に使うことはできますが、サポートは受けられませんし、他にも無料のコミュニティによるLinuxディストリビューションはあります。本当にセキュリティやスループレットや高信頼性・高可用性が必要な「エンタープライズシステム」なら話は別かもしれませんが、そうであったとしてもRHELを10万円ぐらい払って購入すればいいと僕なんかは思います。
ですが、CentOSは立派な、それも「過剰なほどに信頼性のある」ディストリビューションであるため、企業のサーバーなどに使う場合には、コストを安く抑えられるでしょう。

CentOSLinuxを学習する

CentOSの学習教材はネットにも書籍にもたくさんありますが、Linux認定試験のLinuCを運営している、LPI-Japanの標準教科書がおすすめです。

上のLinux標準教科書は入門者向けの基本的な内容ですが、レベルに応じて「Linuxサーバー構築」「高信頼システム構築」「Linuxセキュリティ」「Linuxシステム管理」「オープンソースデータベース」などもあります。
ダウンロードは無料で可能ですが、個人情報とメールアドレスを登録する必要があります。
僕も、Linux標準教科書のPDF版をダウンロードして、今、勉強中です。

Red Hatのパッケージ管理システム

DNF/Yum

Fedora/Red Hatのパッケージ管理システム。
特に、処理の履歴を操作出来るdnf historyが使える。undoやredoが出来る。
DNFの設定ファイルは/etc/yum.confではなく/etc/dnf/dnf.confであるため注意が必要。/etc/yum.repos.d/*.repoはそのまま使える。

コマンド 説明
dnf install [package] インストール
dnf remove [package] アンインストール
dnf update アップデート
dnf search [package] パッケージの検索
dnf list installed インストール済みパッケージの表示
dnf list available 利用可能パッケージの表示
dnf info [package] パッケージの情報表示
rpm -ql [package] インストール済みパッケージに含まれるファイルの表示
/etc/yum.conf Yumの設定ファイル。
/etc/yum.repos.d/*.repo Yumリポジトリ設定ファイル。
rpm -qa RPMのインストールされているパッケージの一覧。

Yum Extender

DNF/YumGUIフロントエンド。

PackageKit

DNF/YumやAptのGUIフロントエンド。

zchunk

Fedora 30のDNFでは差分圧縮フォーマットのzchunkに対応した。zchunkでは、ファイルを複数の「チャンク」に分割し、コピーが必要なチャンクだけをコピーして、圧縮ファイルを構築できる。差分ダウンロードが可能なため、大幅な効率の改善が期待できる。

RPM

Red HatLinuxのパッケージシステム。
Red Hatディストリビューションの低レベルなパッケージ管理システム。
rpmパッケージをインストール・更新・アンインストールするには以下のようにする。

コマンド 説明
rpm -ivh パッケージファイル名 パッケージをインストールする
rpm -Uvh パッケージファイル名 パッケージを更新する
rpm -evh パッケージ名 パッケージをアンインストールする
rpm -ql パッケージ名 インストール済みパッケージに含まれるファイルの表示
rpm -qa インストールされているパッケージの一覧

「-v」は処理中のパッケージ名を、「-h」は進捗状況を表示するオプション。

RPMとspecファイル

RPMは、ソフトウェアごとにspecファイルと言うそれぞれのパッケージの分類、依存関係、インストール処理、ファイルリストなどを事前に書いておくことで、インストールやアンインストールを分かりやすく、手軽にする仕組みです。

specの各要素

要素 解説
%define マクロ宣言(何かの値や文字列を入れる変数のように使う)
BuildRoot ビルドのためのルートディレクト
Summary 説明
License ライセンス
Name 名前
Version バージョン番号
Release リリース番号
Source ソースtarball
Prefix インストール先のprefix
Group 分類
%description 説明
%prep ソースコードの準備を行う手順(tarballの解凍など)
%setup -q ソースコードを解凍するためのマクロ
%build ソースコードのビルドを行う手順
%install インストールの手順
%files インストールされるファイル一覧
%defattr RPMでのデフォルトのアクセス権、所有者、グループを指定
%doc ドキュメントファイルの一覧

SRPMからRPMをリビルド

RPMSRPMから簡単にリビルド出来る。
まず、rpmbuildをインストールする。

# dnf install rpm-build.x86_64

直接ビルドする場合:

# wget -P /usr/src/redhat/SRPMS http://pagesperso-orange.fr/sebastien.godard/sysstat-10.0.3-1.src.rpm
# rpmbuild --rebuild /usr/src/redhat/SRPMS/sysstat-10.0.3-1.src.rpm
# rpm -ivh /usr/src/redhat/RPMS/x86_64/sysstat-10.0.3-1.x86_64.rpm

一度展開してspecファイルを修正する場合:

# rpm -ivh /usr/src/redhat/SRPMS/sysstat-10.0.3-1.src.rpm
# vim /usr/src/redhat/SPECS/sysstat-10.0.3.spec
# rpmbuild -bb --clean /usr/src/redhat/SPECS/sysstat-10.0.3.spec
# rpm -ivh /usr/src/redhat/RPMS/x86_64/sysstat-10.0.3-1.x86_64.rpm

SRPMを使ったパッケージのインストール - tetsuyai’s blogを参考に執筆・引用しました。)
RPMでは、ソースパッケージは/usr/src/redhat/SRPMS/、specファイルは/usr/src/redhat/SPECS/、x86_64のバイナリパッケージは/usr/src/redhat/RPMS/x86_64/に出来ます。ディストリビューションを開発する時は、これらのディレクトリで作業する必要があります。

SRPMRPMからファイルを取り出す

SRPMからtarballを取り出す場合、単にrpmコマンドでインストールすれば良い。
通常は、/home/username/rpmbuild/の中にファイルが展開され、SOURCESディレクトリ内に*.tar.xzなどができ、SPECSディレクトリ内に*.specができる。
バイナリパッケージのrpmファイルからバイナリファイルを取り出す場合は、cpio形式のファイルに変換する。rpmはファイルのアーカイブにcpio形式を使っている。

/etc/rpmrc

/etc/rpmrcはRPMの設定ファイル。

Fedora 31ではRPMの圧縮アルゴリズムがxzからZstdに変更

Fedora 31では、RPMパッケージの圧縮アルゴリズムがxzからZstdに変更される。これにより高速化や負荷軽減が期待されている。

sysconfig

NetworkManager

最近は、NetworkManagerを使ってネットワークを設定するのが推奨されている。

Red Hatにおけるsysconfig

Red Hat系のLinuxでは、ネットワークインターフェース以外にも、/etc/sysconfig/ディレクトリでさまざまなシステムの設定を行う。
中には/etc/*.confの設定に対して、/etc/sysconfig/で一枚上にかぶせて設定する場合もある。たとえばnamed(BINDの本体)の設定ファイルは/etc/named.confだが、/etc/sysconfig/namedではnamedデーモンのサービス起動時の引数を記述する。

sysconfigの例

  • /etc/sysconfig/
    • Red Hat系でシステムの設定をする時のディレクトリ。
    • /etc/sysconfig/の中には、さまざまなシステムの設定ファイルがあります。
  • /etc/sysconfig/network
    • 自ホスト名の設定。
  • /etc/sysconfig/network-scripts/
    • ネットワークインターフェース用の設定ファイル。
  • /etc/sysconfig/network-scripts/ifcfg-*
  • /etc/sysconfig/iptables
    • ファイアーウォールの設定。