パッケージ管理システム

主なプログラミング言語向け 編集

Ruby 編集

  • RubyGems: Rubyの標準的なパッケージ管理システム。gemという単位でライブラリを配布・管理し、依存関係の解決やインストールが容易。コマンドラインからの操作がシンプル。

Python 編集

  • pip: Python公式のパッケージインストーラ。シンプルで導入が容易。requirements.txtによる依存管理が可能だが、厳密な再現性やロックファイル機能は標準では持たない。小規模・個人開発向き。
  • Poetry: 依存関係の厳密な管理、仮想環境の自動生成、パッケージのビルド・公開まで一貫して対応。pyproject.tomlで管理し、ロックファイルによる再現性保証が強い。中〜大規模・チーム開発向き。
  • Pipenv: Pipfileによる依存管理と仮想環境の統合管理が特徴。Poetryほど多機能ではないが、pipより再現性が高い。

C# / .NET 編集

  • NuGet: .NET系の標準パッケージ管理システム。Visual Studio等と統合されており、GUI・CLIどちらでも操作可能。依存関係の自動解決やバージョン管理も行う。

Java 編集

  • Maven: XMLベースの設定ファイル(pom.xml)で依存関係やビルド設定を管理。標準的なビルドツールとしても機能し、大規模プロジェクトでよく使われる。
  • Gradle: GroovyやKotlin DSLを使った柔軟なビルド・依存管理ツール。Mavenより記述が簡潔で、ビルド速度が速い。

JavaScript 編集

  • npm: Node.js公式のパッケージ管理システム。package.jsonで依存関係を管理し、世界最大規模のパッケージエコシステムを持つ。
  • Yarn: npm互換で高速なインストールや厳密なロックファイル(yarn.lock)による再現性が特徴。
  • pnpm: ディスク容量の効率化と高速なインストールが特徴。npm/yarnのロックファイルもサポート。

PHP 編集

  • PEAR: phpで書かれたライブラリだけを集めたもの。
  • PECL: PEARの派生でC言語で書かれたライブラリまで含めたもの。Composerが主流になりつつある。
  • Composer: PHPの標準的なパッケージ管理システム。composer.jsonで依存関係を管理し、オートローダも自動生成。

Perl 編集

  • CPAN: なつかしい

Rust 編集

  • Cargo: Rust公式のパッケージ管理・ビルドツール。Cargo.tomlで依存管理し、ビルド・テスト・公開まで一貫して対応。

Go 編集

  • Go Modules: go.modで依存関係を管理。バージョン管理や再現性の高いビルドが可能。

Dart 編集

  • pub: Dart公式のパッケージ管理システム。pubspec.yamlで依存関係を管理。

Swift 編集

  • Swift Package Manager: Swift公式のパッケージ管理・ビルドツール。Package.swiftで依存関係を管理し、Xcodeとも統合。