目的
こんにちわ.今回の記事はLinuxディストロについてまとめたものです.私は実務経験のないIT技術者を目指しているだけの大学生なので,間違っている部分もあると思いますが,それでもいいという方以外はブラウザバック推奨です.
この記事は備忘録目的のためのものです.dockerでイメージを決める際にそもそもLinuxディストリビューションって何あるのという疑問から出発しているので,dockerで動かすにはこれ知っていたら便利だろうと予測してまとめています.間違いもあると思います・RedHatやSlackwareなどそもそも使いそうにないことは,生成AIに頼っています.ご注意ください.
Linuxディストリビューション
RedHat系
- 商用サポートが充実しており,企業向けに特化したディストリビューションが多い.
- パッケージ管理にはRPM(Red Hat Package Manager)を使用し,.rpm形式のパッケージを扱う.
- Fedoraは最新技術を取り入れた実験的なディストリビューションで,RHELの基盤となることが多い.
知らなかったこと
パッケージ管理RPM
- 拡張子:
.rpm
- cpio形式でアーカイブ(複数のフォルダを一つでまとめること)
- 管理データベース:Berkey DB(オラクルがバックにいるらしい...詳細はよくわからん)
- C言語で記載されている.
- 言語バンティング:言語やプログラムの対応関係の有無,
(言語バンティングがあるとはその言語で操作可能ということ)
Slackware系
- 管理が複雑で,初心者には難しいとされるが,安定性とセキュリティを重視.
- パッケージ管理は手動で行うことが多く,他の系統に比べて自動化されていない部分が多い.
- システムのカスタマイズ性が高く,上級者向けのディストリビューション
1. pkgtool
- 概要: Slackwareの基本的なパッケージ管理ツールで.インストール.削除.アップグレードなどの操作を行うためのインターフェースを提供.
-
機能:
- インストール済みのパッケージの管理
- パッケージのインストールや削除を簡単に行える
- ncursesベースのメニューインターフェースを使用しており.視覚的に操作しやすい
2. slackpkg
- 概要: Slackwareの公式リポジトリからパッケージを管理するためのツール.APTやyumのように.リモートからパッケージを取得して管理.
-
機能:
- オンラインリポジトリとの同期
- パッケージのインストール.アップグレード.削除を簡単に行える
- 依存関係の管理は自動では行わないが.便利なインターフェースを提供
3. sbopkg
- 概要: SlackBuilds.orgからパッケージを管理するためのツールで.Slackwareのユーザーが自作のパッケージを簡単にインストールできるように設計.
-
機能:
- SlackBuildスクリプトを使用して.ソースからパッケージをビルド
- 依存関係の管理も可能で.ユーザーが必要なパッケージを簡単にインストールできる
4. slpkg
- 概要: Slackwareシステム上でパッケージを管理するための強力なツールで.インストール.アップデート.削除を自動化.
-
機能:
- パッケージの依存関係を自動的に計算し.管理
- コマンドラインインターフェースを提供し.スクリプトを使用してパッケージ管理を効率化
Debian系
- 初心者にも扱いやすい.
- Debian系は,シングルボードコンピュータであるRaspberry Piでも使用されている.
- パッケージ管理にはAPT(Advanced Package Tool)を使用し,.deb形式のパッケージを扱う.
- 安定性が高く,広く普及しているため,サポートや情報が豊富.
代表例
Ubuntu
- モチベーション:UI重視の代表的なLinuxOS
- パッケージ管理ツール;APT
- 依存関係の管理:APTが自動的に依存関係を解決する
- サポート言語:C, C++, Python, Ruby, Java
Linux Mint
- モチベーション:デスクトップ環境の使いやすさを重視しているUbuntuベースのOS
- パッケージ管理ツール;APT
- 依存関係の管理:Ubuntu同様
- サポート言語:Ubuntu同様
Debian
- モチベーション:サーバ管理
- パッケージ管理ツール:APTとdpkg(dpgkhは低レイヤー,APTは高レイヤー)
- 依存関係の管理:APTは自動,dpkgは手動
- サポート言語語: C, C++, Pythonなど
Alpine
- モチベーション:効率,セキュリティを重視する
- パッケージ管理ツール:APK
- その他要項
- muslとBusyBoxをベースとしたLinuxディストリビューション.
- APK:ネットワーク経由でパッケージをインストール
- glibcの互換ライブラリmuslを使用