最近、ソフトウェアでライブラリを導入するとき、 どんなパッケージ管理システムを使えばよいかわからなくなってきている。 そこで、拾い読みしてみた結果を記す。
Chocolatey は Windows で動くパッケージ管理システムである。私は Windows で動く Dart の処理系を Chocolatey でインストールした。
Homebrew は MacOS のパッケージ管理システムである。Homebrew は Linux 版もあり、昔は Homebrew とは独立に Linuxbrew として開発が続けられたが、現在は Linux でも同じ Homebrew である。 Linuxbrew 時代の覚書はリンク先を参照。
npm は Node.js のパッケージ管理システムである。 Node Package Manager の意味であるとされている。npmを参照。
yarn も Node.js のパッケージ管理システムである。 npm より yarn のほうが速いといわれているが、私にはわからない。
最初に $ apt get install yarn で yarn をインストールしたのだが、エラーが出た。
$ yarn ERROR: There are no scenarios; must have at least one.
次のようにするとエラーが回避できる。
# 古い yarn の削除 $ sudo apt autoremove cmdtest $ sudo apt autoremove yarn # 最新の yarn を取得できるようにキーを取得する $ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - # 最新の yarn を取得する $ echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list # 更新 $ sudo apt update (結果略) # 再インストール $ sudo apt install yarn (結果略) $ yarn -v 1.22.5 $ yarn yarn install v1.22.5 info No lockfile found. warning package-lock.json found. Your project contains lock files generated by tools other than Yarn. It is advised not to mix package managers in order to avoid resolution inconsistencies caused by unsynchronized lock files. To clear this warning, remove package-lock.json. [1/4] Resolving packages... [2/4] Fetching packages... [3/4] Linking dependencies... [4/4] Building fresh packages... success Saved lockfile. Done in 39.56s. $ node -v v10.19.0
nvm は Node.js のバージョン管理マネージャである。
Stack は Haskell のパッケージ管理システムである。
rbenv は Ruby のパッケージ管理システムである。Bundler と組み合わせることが多い。
pip は Python のパッケージ管理システムである。
Conda は Python や R 言語のパッケージ管理システムであり、pip と対比される。conda による配布物が Anaconda である。
Roswell は、Common Lisp のパッケージ管理システムである。 私は Steel Bank Common Lisp をこの Roswell から使っている。
Cargo はプログラミング言語 Rust のビルドツール兼パッケージマネージャ―である。
cargo subcommand の形で使う。subcommand は拡張することもできる。これは通常、 cargo install cargo-subcommand のようにしてインストールする。cargo-generate をインストールしてみた。 Windows 11 の PowerShell からである。
C:> install cargo-generate
(doc.rust-jp.rs) によれば、次のことがわかる。
もう少し cargo について知りたければ、直接The Cargo Book (doc.rust-lang.org) を見るのがいい。
cargo new [options] path で新規 Cargo パッケージが作られる。ここで options に --bin が指定されていると バイナリーパッケージ (src/main.rs) を伴うパッケージを作る。これはデフォルトの挙動である。
asdf は Elixir などで使われるパッケージ管理ツールである。
$ brew install asdf (中略) $ which asdf /home/linuxbrew/.linuxbrew/bin/asdf $ asdf version 0.16.7 $ brew install autoconf openssl wxwidgets libxslt fop (中略) Error: Too many open files @ rb_sysopen - /home/linuxbrew/.linuxbrew/Cellar/krb5/1.21.3/sbin/sserver $ brew install autoconf openssl wxwidgets libxslt fop $ asdf list # インストールすみバージョン一覧 elixir *1.18.3-otp-27 erlang *27.3.4 $ asdf plugin list # インストール済みプラグイン一覧 $ asdf plugin list all # 全プラグインのショートネーム一覧
まりんきょ学問所 > コンピュータの部屋 > パッケージ管理システム