Linux
Debian
初心者
RHEL
Slackware

今更ながら Linux についてのメモ

最近、Linux サーバ (RHEL) を構築する機会があったのですが、今までほとんど触る機会がなく知らないことばかりでしたので、今更ながら Linux について調べたことをまとめてみました。

認識誤り等あれば、ぜひコメントや編集リクエストにてご指摘願います。
2017.07.22 Slackware について修正しました。

Linux とは

OS の一種で、UNIX を参考にしてリーナス・トーバルズより開発されました。
OSS であることより、無料でインストール出来るのが特徴です。

なお、厳密に言うと Linux OS とは一般的には OS の中核であるカーネル のことを指しています。

Windows では OS 機能の一部として配布されている GUIWebブラウザなどの機能は、Linux ではディストリビューションに含めて配布されています。

ディストリビューション

Linux の配布パッケージセットであるディストリビューションには主に以下が含まれています。

  • Linux カーネル (OS)
  • シェル
  • デーモン
  • GUI
  • クライアントソフトウェア
  • サーバソフトウェア

ディストリビューションに含まれる個々のソフトウェアはパッケージ化されており、パッケージ管理システムにより管理されています。
パッケージ管理システムの詳細については後述します。

ディストリビューションの種類

OSS 故に色々とカスタマイズされた数多くのディストリビューションが存在します。

大きく分けると DebianRed Hat LinuxSlackware の 3 つに別れ、その他のディストリビューションの多くはこれら 3 種の派生系がほとんどとのことです。

主要 3 種

  • Debian

    • 自由な改変と再配布を目的とする GNU GPL のソフトウェアで構成。
    • 商用向けの有償サポートはなし
    • 基本的には、GPL 以外のライセンスのソフトウェアはインストールできない。
  • RHEL (Red Hat Enterprise Linux)

    • 商用向けの有償サポートがあり、大規模システムのサーバとしての利用が多い。
    • 日本市場での商用 Linux シェアは約 85 % を占める。
  • Slackware

    • Linux 史上最古。シンプルで堅実な作りになっており、高い安定性がある。
    • パッケージ管理システムの機能(後述)であるパッケージ間の依存情報の管理ユーザマニュアル
    • ただし全パッケージをインストールするのが基本であり、公式パッケージの依存関係は解決される

Linux の仕組みを深く理解するには、シンプルかつ自分で依存性の解決をしなければならない Slackware は良い教材になりそうですね。

派生系

Debian 系

  • Ubuntu
    • Debian の派生だが、GPL 以外のライセンスのソフトウェアでもインストール可能。
    • Canonical 社による有償サポートもある(電話、メールのみ)。
    • GUI が充実。

Red Hat 系

  • CentOS

    • RHEL から商用向けの要素を取り除いている。
    • RHEL との完全互換を目指し、バイナリが異なるなどを除き、ほとんどの機能が RHEL と同じ。
    • 安定性重視
  • Fedora

    • CentOS と同じく商用向けの要素を取り除いている。
    • RHEL のバージョンアップ時の検証用
    • 最新技術の取り込みが早い。(Fedora → RHEL → CentOS の順)
  • Scientific Linux

    • 同じく商用向けの要素を取り除いている。
    • 欧州原子核共同研究所などが開発に関わっており研究機関や大学施設で利用されることが多い。
    • 上記故か、独自開発されたパッケージが充実。

パッケージ管理システム

主な機能

ディストリビューションに含まれる個々のソフトウェアの実行ファイル・設定ファイルやライブラリリポジトリ管理します。

主な機能としては、以下の 4 つが挙げられます。

  • パッケージリポジトリの読込・検索

  • パッケージのインストール・更新・削除

  • パッケージ間の依存情報の管理

  • 競合機能の優先使用設定管理

パッケージ管理システム比較( Wikipedia より)

ディストリビューション ベース 有償サポート パッケージ管理システム パッケージ形式
Debian - APT deb
RHEL - RPM, Yum RPM
Slackware - pkgtool、slackpkg、sbopkg等 txz
Ubuntu Debian APT deb
CentOS RHEL RPM, Yum RPM
Fedora RHEL DNF, Yum RPM
Scientific Linux RHEL APT, Yum RPM

Linux では、ディストリビューションに含まれる各ソフトウェアを使用するためには個別にリポジトリからインストールする必要があります。

インストール方法は各ディストリビューションが採用しているパッケージ管理システムごとに異なります。(どれも基本はコマンド 1 行)

各パッケージ管理システムの特徴

RHEL しか触ったことがないためインストールの手軽さなどは比較できませんが、一般的に言われる各システムの特徴をまとめます。

Red Hat 系

  • RPM

    • ローカル及び HTTP や FTP を通じたネットワークからのパッケージ管理に対応。
    • 依存性の情報は保持しているものの、依存性の解決は行わない
    • パッケージ個々のカスタマイズ時に RPM コマンドを使用。
  • Yum

    • RPM を統合管理するマネージャのことで、依存性の解決を行う
    • 基本的には Yum コマンドを利用してインストールを行う。
    • RHEL 7.x / CentOS 7.x のデフォルトである Python 2 のみに対応。
  • DNF(Dandified Yum)

    • Yum の後継。
    • Yum が Python 2 にしか対応していないのに対し、Python 3 にも対応。
    • 既に Python 3 がデフォルトとなっている Fedora では DNF が使用される。

Debian 系

  • APT
    • RPM + Yum の機能をもち、依存性の解決も行う。

Slackware 系

  • pkgtool

    • Slackware の標準で、ローカルリポジトリのみに対応。
    • バージョン管理や依存性の解決は対応していない
  • slackpkg

    • バージョン 12.2 より公式パッケージとして採用。
      標準ではインストールされていないため、公式パッケージからインストールする必要あり。
    • Slackware の標準のパッケージのみオンラインに対応。
    • バージョン管理は行うが依存性の解決には対応していない
  • sbopkg

    • slackpkg と同じく標準ではないため個別にインストールする必要がある。
    • Slackware のサードパーティである SlackBuilds.org のオンラインパッケージに対応。
    • ご多分に漏れず、依存性の解決には対応していない

Red Hat 系 である Scientific Linux では Debian 系と Red Hat 系 双方のパッケージ管理システムを採用しているようですね。

研究機関向けの独自開発が進んでいる所以でしょうか。。。

参考