pkgx をしばらく使ってみた感想
pkgx とは
pkgx をどう紹介するかちょっと迷いますが軽量なパッケージマネージャーと紹介しておきます。
いわゆるパッケージマネージャーとは違いパッケージをインストールするというステップは必須ではありません。
npx のようにコマンドの先頭に pkgx を付けて使う感じになります。
パッケージを直接インストールするわけではないので環境を汚さず気軽に試すことができます。
インストール
pkgx はシングルバイナリで動くのでインストールが簡潔です。
バイナリをダウンロードして bin ディレクトリに配置すれば OK です。
インストール用のスクリプトがあるのでそれを使うとよいでしょう。
curl https://pkgx.sh | sh
使い方
こんな感じで先頭に pkgx と付けることでコマンドが使えるようになります。
pkgx node
初回は自動で依存関係がダウンロードされて次回以降はキャッシュされたコマンドが使えるようになります。
このように書くことでバージョンを指定して実行することもできます。
pkgx node@22
検索
Q オプションをつけると使用可能なパッケージ一覧が出力されるのでそれをパイプでよしなにして検索できます。 (自分は fzf で絞り込むことが多いです)
pkgx -Q | fzf
Q オプションにコマンド名を渡すと一致するコマンドがあるか分かります。
pkgx -Q git
pkgm と mash
pkgm は pkgx の関連ツールのうちの一つでよりパッケージマネージャー的なツールです。
mash も pkgx の関連ツールでこちらはスクリプト用のパッケージマネージャーです。
インストールスクリプトを使用した場合はどちらも pkgx と一緒にインストールされます。
インストールされますと言いましたが実態は後述の pkgm shim で生成されるようなラッパースクリプトです。
pkgm shim
pkgm shim コマンドを使うとラッパースクリプトを生成して~/.local/bin などに配置してくれます。
pkgm shim gh
中身はこんな感じで pkgx 経由でコマンドを実行するシンプルなスクリプトです。
#!/usr/bin/env -S pkgx --shebang --quiet +cli.github.com -- gh
このラッパースクリプトを経由してコマンドを呼び出せるようになります。
gh
pkgm install
いわゆるパッケージマネージャー的にパッケージをインストールするコマンドです。
pkgm install git
個人的には最終手段的なコマンドです。
依存関係も一緒にインストールされ環境が壊れることが何度かあったので現状は使用を回避しています。
パッケージの更新
パッケージの更新は mash で提供されるスクリプトを使って行います。
# 古くなったパッケージを表示する
mash outdated
# パッケージを全て最新に更新する
mash upgrade
# パッケージを指定して更新する
mash upgrade gh
mash の注意点
mash はその性質上、強力な権限を持っているので信用できないスクリプトは実行しないようにしましょう。
上に挙げたコマンドは pkgx の作者が提供しているスクリプトです。
総括
pkgm install を使ってる時はメインで使うにはちょっと厳しいかなと思ってましたが pkgm shim を使うようにしてからはメインにしてもいいなと思いました。
新興のツールですし情報もあまりありませんが個人的にはとても気に入ったので使っていこうと思います。