Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

3. Ubuntu

Ubuntuの概要と特徴

Ubuntu(ウブントゥ)は、南アフリカの実業家マーク・シャトルワース氏と彼が設立した英 Canonical(カノニカル)社によって、2004年に開始されたディストリビューションです。 アフリカのズールー語で「他者への思いやり」「人間らしさ(Linux for Human Beings)」を意味する言葉を冠しており、誰でも容易に導入・操作できる親切な設計を追求しています。

Ubuntu の最大の特徴は、Debian の強固なパッケージ基盤を活用しながら、最新のソフトウェアと使いやすさを融合させた点 にあります。 現在、世界中のクラウド(AWS、Azure、GCP)上で起動される仮想マシンの大半で Ubuntu が選択されており、現代の開発・運用においてデファクトスタンダード(事実上の標準)となっています。

リリースサイクルとLTS(長期サポート)

Ubuntu は、極めて規則正しいリリースサイクルを採用しています。

  • 通常版(Interim Release): 毎年 4 月と 10 月の「年 2 回(6 か月ごと)」にリリースされます(バージョン番号は「西暦年.月」、例:23.10 や 24.10)。サポート期間は 9 か月間と短く、最新のソフトウェアやカーネルを試したい開発者向けです。
  • LTS版(Long Term Support: 長期サポート版): 偶数年の 4 月(2 年ごと) にリリースされます(例:20.04 LTS, 22.04 LTS, 24.04 LTS)。標準で 5 年間 のセキュリティ更新とサポートが提供され、企業向けの ESM(Extended Security Maintenance)を利用すれば最長 10〜12 年間のサポートが可能です。

実務の本番サーバーや開発環境では、特別な理由がない限り必ず LTS 版 を選択します。

主な用途

  • パブリッククラウドの仮想サーバー基盤: AWS EC2、Google Cloud Compute Engine、Microsoft Azure など、主要クラウドの標準 OS として圧倒的な導入シェアを誇ります。
  • AI・機械学習・データサイエンスの開発基盤: NVIDIA 公式の GPU ドライバ(CUDA)、PyTorch、TensorFlow、Docker などのツールチェーンが Ubuntu を第一級市民(最優先プラットフォーム)としてサポートしています。
  • ソフトウェアエンジニアの開発PC / デスクトップ: 美しく直感的な GNOME デスクトップ環境を備え、デュアルブートや WSL2(Windows Subsystem for Linux)のデフォルト環境として多くの開発者に愛用されています。
  • CI/CD パイプラインの実行基盤: GitHub Actions や GitLab CI のホストランナー(ubuntu-latest)として標準採用されています。

基本的なコマンド一覧

Ubuntu は Debian 系であるため、基本コマンドは Debian と共通の apt を使用しますが、独自のリポジトリ追加ツール(PPA)や独自のパッケージ管理システム「Snap」も標準搭載されています。

パッケージ管理コマンド(APT)

# パッケージインデックスの更新と全パッケージの一括アップグレード
sudo apt update && sudo apt upgrade -y

# 開発用ツールのインストール
sudo apt install -y build-essential curl git unzip software-properties-common

# パッケージのアンインストール
sudo apt remove nginx

PPA(Personal Package Archive: 外部リポジトリの追加)

公式リポジトリよりも新しいバージョンのソフトウェア(Python や Node.js、特定のツールなど)を導入したい場合、コミュニティ提供の PPA を簡単に追加できます。

# PPA リポジトリの追加(例:最新の Python リポジトリ)
sudo add-apt-repository ppa:deadsnakes/ppa

# 追加後のメタデータ更新
sudo apt update

# 最新バージョンのインストール
sudo apt install -y python3.12

Snap コマンド(コンテナ型パッケージ管理)

Snap は、Canonical 社が開発した「アプリケーション本体と必要なライブラリ群を 1 つに固めて隔離実行する」仕組みです。OS のシステム環境を汚さずに最新アプリケーションを安全にインストールできます。

# Snap パッケージの検索
snap find certbot

# パッケージのインストール
sudo snap install --classic certbot

# インストール済み snap パッケージの一覧表示
snap list

# パッケージのアップデート
sudo snap refresh

# パッケージのアンインストール
sudo snap remove certbot

ネットワーク・ファイアウォール(UFW)

Ubuntu には、iptables を直感的に操作できる簡潔なファイアウォールツール「UFW(Uncomplicated Firewall)」が標準で備わっています。

# ファイアウォールの状態確認
sudo ufw status

# SSH(ポート22)の通信を許可
sudo ufw allow ssh

# HTTP / HTTPS の通信を許可
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# ファイアウォールの有効化
sudo ufw enable

メリット・デメリット

メリット

  • 圧倒的な情報量とドキュメント: 世界で最も普及しているため、エラーが発生しても Google 検索や Stack Overflow、公式フォーラム(Ask Ubuntu)で即座に解決策が見つかります。
  • 最新ソフトウェア・ドライバの導入が容易: LTS 版であっても、PPA や Snap、公式バックポートを活用することで、最新バージョンの言語やツールをスムーズに導入できます。
  • ハードウェアとクラウドの互換性: 最新のハードウェア(CPU、GPU、Wi-Fi)への追従が早く、NVIDIA ドライバなどもコマンド 1 つ(sudo ubuntu-drivers install)で安全にセットアップできます。
  • 充実した商用サポート: Canonical 社による手厚いエンタープライズサポート(Ubuntu Pro)が用意されており、大規模な商用システムでも安心して採用できます。

デメリット

  • Snap に対する賛否両論: 初期状態で一部のソフトウェア(Chromium や Firefox など)が Snap で強制配信されており、アプリの起動が若干遅くなることや、自動アップデートのタイミング制御に不満を持つユーザーがいます。
  • Debian に比べるとシステムリソース消費が大きい: 便利さを重視して各種デーモンや支援サービスが初期状態で動作しているため、最小構成の Debian と比較するとメモリやディスクの初期消費量がやや多くなります。
  • Ubuntu 特有の独自カスタマイズ: Canonical 社独自の仕様変更(Netplan によるネットワーク設定、Snap の優遇など)が時折導入され、標準的な Linux 手順と異なる作法を覚える必要があります。