
新Linux入門|Linuxにおける依存関係とパッケージ管理の基礎
今回は、Linuxを使う上でとても大切なテーマ「依存関係」と「パッケージ管理」について一緒に学んでいきましょう😊
AlmaLinux 9.6のようなLinuxシステムでは、ソフトウェアは「パッケージ」として提供されます。
そして、そのパッケージは多くの場合、他のパッケージやライブラリに依存しています。
この“つながり”がうまく解決されていないと、アプリケーションが動かない…なんてことも💦
🔗 依存関係とは?
依存関係とは、あるソフトウェアが他のソフトウェアやライブラリに頼って動作している関係のことです。
たとえば、Aというアプリが「数学演算を行うBライブラリ」に依存していれば、Aを動かすためにはBも必要になります。
| 種類 | 説明 | 例 |
|---|---|---|
| 🏗️ ビルド時依存関係 | ソースコードをコンパイルするために必要 | gcc, make など |
| ⚙️ ランタイム依存関係 | 実行時に必要なライブラリ | libc.so, libssl.so など |
| 🎛️ オプション依存関係 | 特定の機能を使うときに必要 | GUIや拡張機能のモジュールなど |
依存関係があるおかげで、ソフトウェアは小さな部品を組み合わせて効率よく動作できるんです✨
📦 パッケージ管理システムとは?

Linuxでは、ソフトウェアを「パッケージ」として管理します。
パッケージは、アプリ本体・設定ファイル・ドキュメント・依存情報などをまとめたファイルで、拡張子は .rpm(Red Hat系)や .deb(Debian系)などです。
| ディストリビューション | パッケージ形式 | 管理コマンド | 説明 |
|---|---|---|---|
| AlmaLinux / Rocky / RHEL | RPM | dnf | 依存関係を自動解決してインストール |
| Ubuntu / Debian | DEB | apt | APTシステムを使ってパッケージを管理 |
たとえば、AlmaLinuxでApacheをインストールする場合はこうします👇
[root@AlmaLinux ~]# dnf install httpd
(省略)
依存関係が解決しました。
=========================================================================
パッケージ Arch バージョン リポジトリー サイズ
=========================================================================
アップグレード:
httpd x86_64 2.4.62-7.el9 appstream 44 k
httpd-core x86_64 2.4.62-7.el9 appstream 1.4 M
httpd-filesystem noarch 2.4.62-7.el9 appstream 11 k
httpd-tools x86_64 2.4.62-7.el9 appstream 78 k
mod_lua x86_64 2.4.62-7.el9 appstream 58 k
トランザクションの概要
=========================================================================
アップグレード 5 パッケージ
ダウンロードサイズの合計: 1.6 M
これでよろしいですか? [y/N]:このように、dnf が自動的に「必要な依存パッケージ」も一緒にインストールしてくれます✨
⚙️ ダイナミックリンクと共有ライブラリ

Linuxの多くのアプリケーションは「共有ライブラリ(.soファイル)」を利用して動作します。
この仕組みを「ダイナミックリンク」と呼び、実行時に必要なライブラリを動的に読み込む方式です。
これにより、同じライブラリを複数のアプリが共有できるため、
💡 ディスク容量の節約
💡 メモリ使用量の削減
💡 アップデートの簡略化
といったメリットがあります🎉
共有ライブラリの依存関係を確認するには ldd コマンドを使います👇
[root@AlmaLinux ~]# ldd /bin/ls
linux-vdso.so.1 (0x00007ffcf05a1000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007feb7fce7000)
libcap.so.2 => /lib64/libcap.so.2 (0x00007feb7fcdd000)
libc.so.6 => /lib64/libc.so.6 (0x00007feb7fa00000)
libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x00007feb7fc41000)
/lib64/ld-linux-x86-64.so.2 (0x00007feb7fd44000)出力を見ると、「ls コマンド」がどんなライブラリに依存しているか一目でわかります👀
🧰 依存関係のトラブルシューティング
依存関係が崩れると、ソフトウェアのインストールや実行に失敗することがあります。
よくあるのが「不足している依存関係」と「バージョンの競合」です⚠️
| 問題 | 原因 | 解決策 |
|---|---|---|
| 不足している依存関係 | 必要なライブラリが未インストール | dnf install パッケージ名 で追加 |
| バージョン競合 | 同一ライブラリの異なるバージョンが必要 | 互換性のあるバージョンを指定 or シンボリックリンクを利用 |
| 壊れた依存関係 | パッケージの削除や更新により関係が破損 | dnf check または dnf reinstall で修復 |
💡 AlmaLinuxでは、dnf check コマンドで依存関係の整合性を確認できます。
[root@AlmaLinux ~]# dnf check🌟 まとめ
Linuxの世界では、依存関係とパッケージ管理は切っても切り離せない存在です🔗
パッケージ管理システム(dnfやapt)は、
- ソフトウェアのインストールを簡単にし。
- 必要なライブラリを自動で解決し。
- システム全体の整合性を保ってくれます。
依存関係の理解は、トラブル解決やシステム保守の第一歩✨
これをマスターすれば、あなたのLinux運用スキルはぐっとレベルアップしますよ😄
