March 20, 2025

Rust製Python管理ソフトuvのインストール

uv は Rust で書かれた非常に高速な Python 管理ソフト。
uv はmacOS や Windows でも使えるけど、ここでは Debian 12 で使う場合について書く。
多分、Amazon Linux 2023 とか他のディストリビューションでも同じ手順でいけるはず。

pyenv や、裏で pyenv を使っている asdf は Python のソースをダウンロードしてビルドするので、使えるようになるまでかなりの時間がかかるし、ビルドに必要なかなりのパッケージ追加が必要になる。
対して uv は python-build-standalone のビルド済みバイナリをダウンロードするので高速だし環境も汚さずに済むのが素晴らしい。

確認のために用意した環境

Debian 12を最小セットアップしたマシン

uvを個人用にインストール

公式インストール手順に従うだけ。
$HOME/.local/bin にインストールされる。

  1. インストール
    $ curl -LsSf https://astral.sh/uv/install.sh | sh
    

    curlをインストールしていないならwgetでも代用できる。

    $ wget -qO- https://astral.sh/uv/install.sh | sh
    
  2. この4つのファイルがインストールされる。
    $ ls $HOME/.local/bin/
    env  env.fish  uv  uvx
    
    • envenv.fish はインストールの最後に表示されるとおり各シェルでパスを通すためのもの
    • uvxpipx みたいなもの
  3. 実行ファイルまでのパスを通す
    インストールの最後に表示されるように、環境変数PATHにインストールディレクトリを追加するか、bashなら以下のコマンドで実行ファイルへのパスが通る。
    $ source $HOME/.local/bin/env
    

    source で読み込んだ場合はログアウトで抜けると保持されないので、 $HOME/.bash_profile に以下を書いておくと再ログインしてもパスが通る。

    if [ -f ~/.bashrc ]; then
        . ~/.bashrc
    fi
       
    export PATH=$PATH:$HOME/.local/bin
    

uvを全ユーザー用にインストール

前述の手順はホームディレクトリにインストールされるので、複数人で使っているLinuxサーバーでは各個人でインストールすることになって不便。
Configuring the uv installer にあるように環境変数 UV_INSTALL_DIR を指定すれば任意の場所にインストールできるので /usr/local/bin/ にインストールすれば全ユーザーが uv を使えるようになって便利。

  1. 同じ名前のファイルが無いことを確認。
    $ ls /usr/local/bin/{uv,uvx}
    ls: '/usr/local/bin/uv' にアクセスできません: そのようなファイルやディレクトリはありません
    ls: '/usr/local/bin/uvx' にアクセスできません: そのようなファイルやディレクトリはありません
    
  2. インストール
    パスの通ったディレクトリにインストールするので、インストール時に生成される envenv.fish は不要。
    INSTALLER_NO_MODIFY_PATH も付けて生成されないようにしておく。
    $ curl -LsSf https://astral.sh/uv/install.sh | sudo UV_INSTALL_DIR="/usr/local/bin/" INSTALLER_NO_MODIFY_PATH=1 sh
    $ ls /usr/local/bin/{uv,uvx}
    /usr/local/bin/uv  /usr/local/bin/uvx
    $ uv version
    uv 0.6.8
    

uvを更新

公式手順に従うだけ。

  • 何も指定せず個人用にHOMEディレクトリにインストールしたならこのコマンド
    $ uv self update
    
  • この記事と同じように全ユーザー用に /usr/local/bin/ にインストールしたならこのコマンド
    $ sudo UV_INSTALL_DIR="/usr/local/bin/" INSTALLER_NO_MODIFY_PATH=1 uv self update
    

uvの使い方は別途作成予定

© 2020 nissy-lab.com