1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ubuntu初心者によるasdf0.16.0導入方法

Last updated at Posted at 2025-02-04

最近ちゃんと環境構築をしようと思ったのでasdfを使い始めた、pythonやjavaなど複数の言語のバージョン等を一括で管理できる便利な奴だ
asdf updateが使えなくなったので、ここではwsl(2.3.26.0)のubuntu(24.04.1)における0.16.0へのアップデート方法を書き残しておく(導入方法もあるよ)、ついでにasdfの使用方法と補足も載せておく

asdf0.15.0と0.16.0で導入方法がまるっきり違ったため、この記事が古くなったら公式リファレンスを参照することお勧めします

asdf0.16.0の導入方法(アップデート方法)

asdfのアンインストール

手順は公式リファレンスと同様の内容、すでにasdf(私の環境はおそらく0.15.0だった)がインストールされている場合はこの操作が必要

  1. ~/.bashrc内の
    . "$HOME/.asdf/asdf.sh"
    . "$HOME/.asdf/completions/asdf.bash"
    
    を削除
  2. rm -rf "${ASDF_DATA_DIR:-$HOME/.asdf}"
    rm -rf "$HOME/.tool-versions" "$HOME/.asdfrc"
    
    で/.asdfファイルとコンフィグを削除

asdf0.16.0の(再)インストール

これは公式リファレンスとは少し違うやり方をしている

  1.  
    git clone https://github.com/asdf-vm/asdf.git --branch v0.16.0
    
    でソースコードをクローン

  2. ビルドにGo言語を使用するため、Goをインストールしていない場合は
    sudo apt install golang
    
    でインストールする
    バージョン管理をするために別な環境を適当に突っ込むの気持ち悪いな
  3.  
    cd asdf
    make
    
    として、クローンしたリポジトリに移動して、makeコマンドでビルドする

  4. 3でビルドしたファイルを
    sudo cp asdf /usr/bin
    
    としてコマンド置き場にコピーする

  5. ここまで完了したら
    asdf
    
    とasdfを実行して、asdfのバージョン、オプション情報等が出てきたら成功

  6. さいごに、~/.profileを開いて
    export PATH="${ASDF_DATA_DIR:-$HOME/.asdf}/shims:$PATH"
    
    を書き加える、これをすることで ~/.asdf/shims 内にあるコマンドを使用することができるようになる

~/.bash_profileではないことに注意
理由はbash_profilebashrcprofileについてを参照

ファイルの編集方法がわからない方はvimについてのvimを参照

使い方

asdfで初めて使用する言語の場合(プラグインの導入方法)

>>> asdf plugin list all | grep python
python                        https://github.com/danhper/asdf-python.git

のように任意の言語のプラグインが存在しているか検索した後

asdf plugin add python

としてプラグインを追加する

バージョンをインストールする場合

pythonを例にとると

asdf list all python 3

として、インストール可能なバージョンを検索し

asdf install python 3.9.18

としてインストールする

anacondaなどのすでにパッケージ化された環境もasdfで管理できる(インストールできる)

バージョン管理の方法

~v0.15.0と方法が異なります

以下のコマンドを実行すると、先ほどインストールしたバージョンを全体(おそらくホームディレクトリ配下)で利用するように設定出来る

asdf set -u <plugin> <version>

python3.9.18を例にとると

asdf set -u python 3.9.18

となる

補足

以下は初心者向けの補足となります

.bash_profile、.bashrc、.profileについて

この欄はいろんな記事の寄せ集めです…私も一部理解できたない…

  • .bashrc
    • シェルログイン時に読み込まれるファイル
    • exportしない変数、シェル関数等々はここで設定する必要がある
    • bashでしか使わないものを記述する
  • .bash_profile
    • ログイン時にそのセッション全体に適用するものを記述する
    • ここでは何も出力してはならない
    • シェルの種類に依存しないものを記述する
    • 環境変数としてexportするものの設定を各場所
    • exportしたシェル変数は環境変数となる、値を入れる前にexportしてもよい
  • .plofile
    • .bash_profileが存在していない場合、次にこれが読み込まれるが、その場合でもこのファイルは存在していなくても問題ない
    • .bash_profileを作成した場合、これが読み込まれなくなるので通常は非推奨
    • ただし、ubuntuを使用する場合デフォルトだと.bash_profileが存在せず.plofileのみ存在するため、安易に.bash_profileを作成することはお勧めしない
    • リファレンスに.bash_profileに書き込めと書いてあるものは、.plofileに書くことをお勧めする

vimについて

linuxでよく使われているvimというエディタは癖が強いため、初心者向けに今回のケースでの使用例を載せておく

  1. まず、以下のコマンドでvimで.profileファイルを開く

    vim ~/.profile
    
  2. 次に大文字の G を入力して(以下vimエディタの中では操作を行う際、断りがなければ(=コマンドの実行でなければ)エンターキーを押す必要はない)ファイルの一番下に移動する

  3. o を入力し新しい行を挿入してインサートモードに入る

  4. ここまでくれば入力したい文字を書き込めるようになっているので、普通のエディタの感覚で必要なもの、今回なら

    export PATH="${ASDF_DATA_DIR:-$HOME/.asdf}/shims:$PATH"
    

    を書き加える

  5. 必要な変更が終わったらescキーを押してインサートモードから通常モードに切り替える

  6. :wq と入力し(コロンも必要)エンターキーを押すことで変更を保存しvim終了できる

変数展開について

  • 所々出てきた ${ASDF_DATA_DIR:-$HOME/.asdf} などの表記、これは変数展開というものらしい
    • ${parameter:-word}
      • paramaterが未定義かnullならその値はwordに置換される、ただしparameterへの代入は起こらない
    • ${parameter:=word}
      • 上の代入有りバージョン
    • ほかにもたくさん存在しており、bash(1)に記述があるそうだ

環境変数$PATHについて

  • PATHに登録されているパスはコマンドが実行されたとき、そのコマンドを検索する際に使用される
  • 今回はPATHの先頭にasdfのパスを通したが、これはPATHは先頭から順に検索されるため、ほかの場所にすでにコマンドが存在していてもasdfで規定して環境のコマンドが優先されるようにするためだと思われる

蛇足

ubuntuでmakepkgを使おうとした間抜けな話

ubuntuだとmakepkgを使用できない

  • 結論としてはmakepkgはpacmanに依存しており、ubuntuだとpacmanがおそらくパッケージマネージャー同士が干渉しないように使用できないようになっているため、makepkg自体使用できないということらしい

  • ubuntuでmakepkgを使おうとする間抜けはそうそう居ないだろうが、エラーの原因究明に丸1日以上かけたので第二の間抜けが生まれないようにエラー分含めここに書き残しておく、リファレンスのわからんところは読み飛ばすなよ…

  • 以下経緯

    1. Install asdfのrecommendedの欄のHomebrewはmacのパッケージマネージャーのことらしいな、まあこれは使えないな
    2. まあゆうてrecommendedって書いてあるし、もう一つのコマンドでいけるやろ
    3.   
      git clone https://aur.archlinux.org/asdf-vm.git && cd asdf-vm && makepkg -si
      ==> ERROR: An unknown error has occurred. Exiting...
      User defined signal 1
      

    は?????????

    4. 試行錯誤の結果makepkgはPacmanに依存していて、それが見つからなかったからエラーになったらしいということが分かった
    5. えっ、aptでpacman入れられるの…????? なら今度こそ行けるやろ!!!!
    6.

    makepkg -si
    ==> Making package: asdf-vm 0.16.0-1 (Tue Feb  4 15:05:19 2025)
    ==> Checking runtime dependencies...
    X Error of failed request:  BadName (named color or font does not exist)
     Major opcode of failed request:  45 (X_OpenFont)
     Serial number of failed request:  21
     Current serial number in output stream:  25
    ==> ERROR: 'pacman' returned a fatal error (1):
    

    は????????????????????

    調べた結果、pacmanはArch Linuxのパッケージマネージャーで~すubuntuだと使えませぇんwwww、ということらしい

    そ り ゃ そ う だ
     

最後に

何か訂正があればコメントしてくださると大変ありがたいです
またもし上手くいったら、いいねしていってくださるとうれしいです
途中何か躓いたらコメントしてくだされば私が暇なときに対応します

参考させていただいたサイト

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?