はじめに
本記事はPythonエンジニア3年目の人間が、新人研修以来改めてLinuxの基礎を学び、まとめたものになります。
☆シリーズ(予定)
第2回 カーネルって何者?Pythonはどうやって動いているのか
第3回 シェルの基本とターミナル操作:Pythonerのためのコマンド超入門
第4回 パッケージマネージャって何?apt, pip, poetryの関係
本記事を書くきっかけ
Google Cloud Engineを立ち上げるときに、普段何も考えずにUbuntuを選択していたので、他のディストリビューションとの違いを知りたくなりました。
Linuxのディストリビューションとは
そもそもLinuxディストリビューションとは何なのでしょうか。
答えは「Linuxカーネル+便利なツールをひとまとめにしたパッケージ」のことです。
Linuxカーネルとは
ハードウェアと直接やりとりする、Linuxのコアのソフトウェアになります。
厳密の言うとカーネルそのもののことをLinuxと呼びます。
便利なツールをひとまとめにしたパッケージに含まれるもの
- シェル(例: bash)
- 標準コマンド(例: ls, cp, grep)
- パッケージマネージャ(例: apt)
ディストリビューションはなぜたくさんあるのか
LinuxはOSSなので、誰でも自由に改変および再配布できるようになっています。企業や学校、個人...様々な団体個人がそれぞれの用途向けにLinuxのディストリビューションを作ったため、多様性を生み出したと言えるでしょう。
各ディストリビューションの違い
まとめ
ディストリ | 基盤 | パッケージ管理 | カーネル方針 | 特徴 | Python開発との相性 |
---|---|---|---|---|---|
Ubuntu | Debian系 |
apt / dpkg
|
安定版+LTSあり | 初心者に優しい。GUIも整備。情報豊富 | ◎:デフォでpython3 , pip , venv あり。WSL対応最高。 |
Debian | 自前 |
apt / dpkg
|
超安定志向 | OSS文化に忠実。公式パッケージは厳選 | ○:Ubuntuより保守的。学習向きだが古めのライブラリ多め |
Fedora | Red Hat系 |
dnf / rpm
|
新技術に積極的 | 最新パッケージが多く開発向き。SELinux標準 | ◎:Pythonや最新ライブラリの検証向き。GUIもモダン |
RHEL / CentOS Stream | Red Hat系 |
dnf / rpm
|
超安定・商用重視 | 業務向け。サポート前提。Streamは先行版 | △:保守環境や商用検証では◎。最新Pythonは自力ビルドも必要 |
Ubuntu
思想
- ユーザーフレンドリー重視。公式サポートとLTSモデルあり。
※ LTS(Long Term Support)とは
Long Term Supportの長期サポートバージョンのことを指す。最新のPythonライブラリやGPUドライバなどを利用しない場合は、安定した環境を使い続けられるというメリットがある。
特徴
- 初心者でもすぐ使える
- WSL対応あり(Windows開発者にも優しい)
Python目線
- apt install python3-pipですぐ開発OK
→ VSCode + WSL開発には最適
Debian
思想
- FOSS(自由ソフトウェア)重視。安定性至上主義。
Debianのメジャーバージョンは通常2〜3年ごとにリリースされる。長い開発期間があり、徹底的なテストとバグ修正が行われる。
特徴
- 長期サポート、保守系に強い
- サーバー用途によく使われる
Python目線
- ややパッケージが古め。セキュリティ重視には◎
Fedora
思想
- 「Red Hat系の実験台」的ポジションで新技術導入が早い
特徴
- Wayland、systemd、Flatpakなど最新の流行を先取り
Python目線
- パッケージが最新に近く、開発や新技術の検証に最適
RHEL / CentOS Stream
思想
- 商用・長期保守重視。企業サポート向け
特徴
- 安定性が最優先。5〜10年サポート
- セキュリティと互換性が重視される
Python目線
古いPythonが標準。ソースビルドでバージョン管理が必要になることも。