autojump をUbuntu PCにインストールしようとしたら、「パッケージマネージャに入っていない」と表示されました。
公式レポジトリでも、Debian環境では、手動でインストールスクリプトを実行するしかない、と書かれています。
このツールには、何か「危険性」があったのでしょうか?
1. autojumpは Pythonで書かれた
autojump の価値は、
「よく行くディレクトリほど、短い入力で移動できる」。
この発想です。
きっかけになったのは、シェルスクリプトで書かれた z という小さなツールです1。
ディレクトリジャンプツールの基本アルゴリズムは、ユーザーが訪れた各ディレクトリに「スコア(重み)」を割り当てて記録します。
ディレクトリに移動するたびにそのスコアが増加し、時間経過とともに古いスコアは減衰していきます。
ユーザーが曖昧な検索語(例:j doc)を入力すると、その文字列にマッチするディレクトリの中から最もスコアが高いものを選んで移動します。
このように「頻度(frequency)」と「最近性(recency)」を組み合わせた「frecency」という概念で、よく使う場所ほど少ない入力で素早くアクセスできる仕組みです。
autojump はこのアイデアを Python で作り直し、スコア計算や履歴管理を高度化しました2。
Pythonで書き直すことで、bash や zsh だけでなく fish など複数のシェルに対応し、Windows でも使えるようにしたことで、利用できる範囲が広がりました。
1.1. zoxideは Rust製ツール
その後、autojump をさらに代替するツールが生まれます。
それが、zoxide。
zoxide は、ディレクトリジャンプという体験を、Rust で一から作り直したツールです3。
zoxideは、「z + oxide」、Rust(酸)から、「酸化したz」という意味です。
大元となる「z」にかこつけた命名ですね。
単一のバイナリで配布でき、依存関係も少なく、起動も速い4。
扱う側から見ると、コマンドとしてコンパイルされていることがわかりやすいです。
# .zshrcに追加
eval "$(zoxide init zsh)"
# .bashrcに追加
eval "$(zoxide init bash)"Code language: PHP (php)
つまり、発想自体は z の時点で完成していました。
autojump はそれを高機能化しました。
zoxide は、同じ価値を現代的な実装で提供し直したのです。
2. Debian がパッケージを「捨てる」ときの流儀
Debian は、パッケージを乱暴に切り捨てるディストリビューションではありませんが、維持できなくなったものを静かに外す、という戦略を取っています。
stable / testing / unstable という段階があり、特に stable では長期にわたる保守が前提になります。
その中でメンテナがいなくなったり、説明コストが増えすぎたりすると、パッケージは自然と居場所を失います5。
では、なぜautojumpが外れることになったのか6。
まず、autojump は install.py を実行し、シェル設定に手動で追記する、という設計でした。
しかも、autojumpは、Python とシェルスクリプトが混ざった構成。
柔軟ですが、Pythonのバージョンが変わるたびに動作が変わる可能性が出てきます7。
この「ユーザーが理解した上で調整する」前提は、Debian のパッケージ思想とは少し噛み合いません8。
3. おわりに
autojumpの設計は、スクリプトを活用することで柔軟で拡張性を持ちました。
しかし、その柔軟性は、万人向けではないようです。
今は、 zoxide という選択肢があります。
プログラムは、世代交代していくのが自然なのかもしれません。
- 実際には autojump (2009-2010) と z (2009) はほぼ同時期に独立して開発された類似ツールです。zoxide の公式ドキュメントでも “inspired by z and autojump” と両者を並列に扱っています。 – GitHub – rupa/z: z – jump around
- autojump の最終リリースは v22.5.3 (2016年) で、それ以降上流での開発は完全に停止しています。GitHub リポジトリでも2016年以降、実質的なメンテナンスは行われていません。 – GitHub – wting/autojump
- zoxide の開発者によると、zoxide は z.lua と比較して10-20倍高速で、プロンプト表示の遅延を最小化することを重視して設計されています。 – Differences between zoxide and z/z.lua? · Discussion #149
- zoxide は Rust で書かれた単一バイナリであり、Python インタープリタを必要としません。また bash, zsh, fish, PowerShell, Nushell など主要なシェルすべてをサポートしています。 – GitHub – ajeetdsouza/zoxide
- 実際には Debian は autojump を完全には削除しておらず、2026年2月現在も全リリースに含まれています。ただし Debian Package Tracker では「Standards version of the package is outdated」「VCS error」など複数の問題が報告されており、積極的なメンテナンスは行われていない状態です。 – Debian — Package Search Results — autojump
- 実際には、autojump は2026年2月現在も Debian 13 (Trixie/stable)、testing、unstable のすべてに収録されています。ただし、メンテナ不在のQA状態にあり、VCSエラーや25件のlintian警告など多数の問題を抱えています。 – autojump – Debian Package Tracker
- Arch Linux の AUR パッケージでも Python バージョン更新のたびに問題が発生し、「Development upstream is dead」とコメントされるなど、メンテナンスの困難さが指摘されています。 – AUR (en) – autojump
- Debian系ディストリビューションでは、ポリシー上の理由により手動でのアクティベーションが必須となっています。/usr/share/autojump/autojump.sh を各自のシェル起動ファイルから source する必要があります。 – GitHub – wting/autojump: Installation