【zoxide】
autojump はDebian系でインストールしに
くかった

autojump をUbuntu PCにインストールしようとしたら、「パッケージマネージャに入っていない」と表示されました。
公式レポジトリでも、Debian環境では、手動でインストールスクリプトを実行するしかない、と書かれています。

このツールには、何か「危険性」があったのでしょうか?

関連記事

1. autojumpは Pythonで書かれた

autojump の価値は、
「よく行くディレクトリほど、短い入力で移動できる」。
この発想です。

ディレクトリジャンプツールの進化 z 発想の起点 2009 シェルスクリプト 軽量・シンプル bash/zsh対応 頻度学習 高機能化 autojump 機能拡張 2010-2016 Python実装 複数シェル対応 高度なスコア計算 ✗ 開発停止 現代化 zoxide 最適化 2020- Rust製 単一バイナリ 10-20倍高速 ✓ 活発開発 同じ価値、より低コスト

きっかけになったのは、シェルスクリプトで書かれた 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 は、パッケージを乱暴に切り捨てるディストリビューションではありませんが、維持できなくなったものを静かに外す、という戦略を取っています。

Debian の流儀 維持できなくなったものを静かに外す unstable 開発版 testing 検証版 stable 安定版 メンテナ不在 説明コスト増 保守負荷 長期サポートが前提のため、居場所を失う

stable / testing / unstable という段階があり、特に stable では長期にわたる保守が前提になります。
その中でメンテナがいなくなったり、説明コストが増えすぎたりすると、パッケージは自然と居場所を失います5

では、なぜautojumpが外れることになったのか6
まず、autojump は install.py を実行し、シェル設定に手動で追記する、という設計でした。

しかも、autojumpは、Python とシェルスクリプトが混ざった構成。
柔軟ですが、Pythonのバージョンが変わるたびに動作が変わる可能性が出てきます7
この「ユーザーが理解した上で調整する」前提は、Debian のパッケージ思想とは少し噛み合いません8

3. おわりに

autojumpの設計は、スクリプトを活用することで柔軟で拡張性を持ちました。
しかし、その柔軟性は、万人向けではないようです。

今は、 zoxide という選択肢があります。
プログラムは、世代交代していくのが自然なのかもしれません。

  1. 実際には autojump (2009-2010) と z (2009) はほぼ同時期に独立して開発された類似ツールです。zoxide の公式ドキュメントでも “inspired by z and autojump” と両者を並列に扱っています。 – GitHub – rupa/z: z – jump around
  2. autojump の最終リリースは v22.5.3 (2016年) で、それ以降上流での開発は完全に停止しています。GitHub リポジトリでも2016年以降、実質的なメンテナンスは行われていません。 – GitHub – wting/autojump
  3. zoxide の開発者によると、zoxide は z.lua と比較して10-20倍高速で、プロンプト表示の遅延を最小化することを重視して設計されています。 – Differences between zoxide and z/z.lua? · Discussion #149
  4. zoxide は Rust で書かれた単一バイナリであり、Python インタープリタを必要としません。また bash, zsh, fish, PowerShell, Nushell など主要なシェルすべてをサポートしています。 – GitHub – ajeetdsouza/zoxide
  5. 実際には Debian は autojump を完全には削除しておらず、2026年2月現在も全リリースに含まれています。ただし Debian Package Tracker では「Standards version of the package is outdated」「VCS error」など複数の問題が報告されており、積極的なメンテナンスは行われていない状態です。 – Debian — Package Search Results — autojump
  6. 実際には、autojump は2026年2月現在も Debian 13 (Trixie/stable)、testing、unstable のすべてに収録されています。ただし、メンテナ不在のQA状態にあり、VCSエラーや25件のlintian警告など多数の問題を抱えています。 – autojump – Debian Package Tracker
  7. Arch Linux の AUR パッケージでも Python バージョン更新のたびに問題が発生し、「Development upstream is dead」とコメントされるなど、メンテナンスの困難さが指摘されています。 – AUR (en) – autojump
  8. Debian系ディストリビューションでは、ポリシー上の理由により手動でのアクティベーションが必須となっています。/usr/share/autojump/autojump.sh を各自のシェル起動ファイルから source する必要があります。 – GitHub – wting/autojump: Installation