🦉

Taskfileをubuntu (debian系)でインストール

に公開

Taskfileとは

Taskfileはタスクランナーツールの一つです。タスクランナーツールは、複数のコマンドや環境変数の差し替えをまとめるもので代表するソフトウェアにGNU Makeがあります。

Taskfileはタスクランナーツールの中でもyml (yaml)形式で記述することが特徴です。このおかげで多くのyml対応しているライブラリの恩恵を受けながら記述できます。

Taskfileはaptに対応していない

Taskfileは多くのパッケージマネージャに対応しており、導入が簡単です。実際、次は対応しているパッケージマネージャの一覧です。

  • Homebrew
  • Snap
  • npm
  • pip
  • WinGet
  • Chocolatey
  • Scoop
  • Arch (pacman)
  • Fedora (dnf)
  • NixOS (nix)
  • pacstall
  • pkgx

ここで見るとわかる通り、Taskfileはaptapt-getに対応していません。

代替策1:バイナリインストール

代替策の一つとしてTaskfileをバイナリインストールする方法があります。次のコマンドはTaskfileを.local/binにインストールします。(-bでインストール先を変更可能)

sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d -b ~/.local/bin

セキュリティの観点からShellScriptを自分のマシンで実行すうことに不安を覚える方もいると思います。Taskfileのインストールスクリプトは次のソースコードなので事前に読むと良いでしょう。LLMでスキャンするのも一手です。

https://github.com/go-task/task/blob/main/install-task.sh

代替策2: ソースコードを手元でビルド

TaskfileはGo製のCLIなので、goコマンド経由でインストール可能です。具体的には、サブコマンドのgo installを利用してソースコードのダウンロード、ビルド、成果物のインストールができます。

次のコマンドは~/.local/binに最新版のtaskをダウンロードする方法です。

env GOBIN=~/.local/bin go install github.com/go-task/task/v3/cmd/task@latest

代替案3: 他のパッケージマネージャを利用する

おそらく、この記事を閲覧している方はpipnpmのインストールに抵抗感を覚えると思うので本記事では扱いません。

そこで、本記事ではnix-envを紹介します。nix-envは、Nixというパッケージマネージャに含まれるコマンドラインツールのひとつです。

Nixは2025年現在、最もパッケージが多いパッケージマネージャです。大体のコマンドはあるので思い切って採用するのもありかと思います。

次が、nix-envでTaskfileをインストールする方法です。パッケージ名称がgo-taskになっていることに注意してください。

nix-env -iA nixpkgs.go-task

補足1: 再現可能性

Nixは純粋関数型パッケージマネージャで特徴として再現可能性を挙げられることが多いです。

しかし、今回紹介したnix-envには再現可能性はないので注意してください。

興味のある方は、nix profilenix flakeなどで検索してみてください。

補足2: Nixのパッケージの多さについて

Nixのパッケージ数は2025年現在12万を越えていて、どのようなパッケージマネージャより多い。

Nixpkgs is the package repository built upon the Nix package manager. According to Repology, as of January 2025 it contains more than 122,000 packages[12] and has a higher number of up-to-date packages than any other package repository.[13]

https://en.wikipedia.org/wiki/Nix_(package_manager)

参考文献

https://www.gnu.org/software/make/
https://taskfile.dev/installation/
https://en.wikipedia.org/wiki/Nix_(package_manager)

Discussion