【ぱっけーじまねーじゃー】

パッケージマネージャー とは?

最終更新:
💡 ライブラリの「自動宅配&棚管理係」

ソフトウェアのパッケージをインストール・更新・削除し、必要な依存関係を管理するツール。npmやpipは開発用ライブラリを扱う代表例。

📌 このページのポイント
取得と依存関係の管理 開発者 依存を指定 マネージャー npmの例 配布元 取得 package.json 必要な依存と条件 package-lock.json 解決した正確な構成 依存の連鎖(例) 部品 A 依存先 B 依存先 C
npmの例。上は取得のやり取り、下はAが必要とする依存先。条件が競合すると解決に失敗する場合もあります。
ひよこ ひよこ
手動でライブラリをダウンロードしたらダメなの?
ペンギン先生 ペンギン先生
手動でもできるけど、AがBに依存し、BがCに依存するような連鎖を追うのは大変だよ。パッケージマネージャーは依存先やバージョン条件を調べてインストールする。条件が両立しない場合はエラーになることもあるよ。
ひよこ ひよこ
npm installとpip installって何が違うの?
ペンギン先生 ペンギン先生
npmはJavaScript/Node.js、pipはPythonのパッケージを扱うよ。取得する役割は似ているけど、設定ファイルや環境の管理方法は違う。pipではrequirements.txtなどを用意して、pip install -r requirements.txtとまとめて指定できるよ。
ひよこ ひよこ
ロックファイルって何?
ペンギン先生 ペンギン先生
npmのpackage-lock.jsonなら、依存先を含めて解決された正確なバージョンや構成を記録するファイルだよ。同じ構成を再現しやすくする。ただしOSや実行環境まで同じにするファイルではないんだ。
ひよこ ひよこ
package.jsonとpackage-lock.jsonはどっちをGitに入れるの?
ペンギン先生 ペンギン先生
npmのプロジェクトでは両方を共有するよ。前者は必要な依存関係とバージョン条件、後者は解決された構成。npm ciはロックファイルを変更せずにインストールし、package.jsonと不整合ならエラーにするよ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「パッケージマネージャー」って出てきたら「ソフトウェアの部品を取得・管理するツール」と思えばだいたいOK!
📖 おまけ:英語の意味
「package manager」 = 荷物(パッケージ)の管理者
💬 ソフトウェアの「部品セット」を管理するという意味でpackageと呼ぶ

参考資料

← 用語集にもどる