最初に
最近言語の勉強している中で、バージョン管理ツールやパッケージ管理ツールが色々あって、何がなんだか分からなくなってしまったのでまとめました。
言語のバージョン管理ツールとは
言語の各バージョンのインストール・アンインストールや切り替えを簡単に行ってくれるツールです。
同じく「バージョン管理ツール」と呼ばれるGitやSVNとは別物です。この記事ではわかりやすくするために「言語のバージョン管理ツール」と表現しました。
言語のパッケージ管理ツールとは
言語の各パッケージのインストール・アンインストールを行うツールです。インストール・アップグレート時には依存関係にあるパッケージを自動でインストール・アップグレートしてくれます。
この記事ではOSのパッケージ管理ツールと分けるために「言語のバージョン管理ツール」と表現しました。
OSのパッケージ管理ツールとは
機能としては言語のパッケージ管理ツールと同じですが、こちらはOSのパッケージを管理するツールです。
※実際に動作までは確認していないので、すべてのツールが上で説明しているような機能を提供しているわけではないかもしれません。参考として見てみてください。
言語のバージョン管理ツール
ndenv
(Node.js)
nodenv
(Node.js)
rbenv
(Ruby)
phpenv
(PHP)
pyenv
(Python)
plenv
(Perl)
jenv
(Java)
scalaenv
(Scala)
swiftenv
(Swift)
goenv
(Go言語)
nodebrew
(Node.js)
rbrew
(Ruby)
phpbrew
(PHP)
nvm
(Node.js)
nodist
(Node.js)
補足
○○env系は他にも様々な言語用のツールが存在しているようです。また、 anyenv
というツールで一括管理することができます。
言語のパッケージ管理ツール
npm
(Node.js)
yarn
(Node.js)
gem
(Ruby)
Composer
(PHP)
pip
(Python)
CPAN
(Perl)
sbaz
(Scala)
glide
(Go言語)
補足
Scalaの場合は sbt
というビルドツールを使えばパッケージ管理もやってくれるみたいなのでこっちの方が便利そうでした。
OSのパッケージ管理ツール
PackageManagemet
(Windows)
Chocolatey
(Windows)
MacPort
(Mac)
Homebrew
(Mac)
rpm
(Linux RedHot系)
yum
(Linux RedHot系)
deb
(Linux Debian系)
apt-get
(Linux Debian系)
Linuxbrew
(Linux)
補足
LinuxbrewはLinux版のHomebrewということらしいです。
最後に
npmとnvmやNodebrewとHomebrewなど名前が似ていて紛らわしいなと思います。同じように感じている方の参考になれば幸いです。