はじめに
以前までasdfというツールを用いて環境構築をしていたのですが、最近miseというものが流行っているようなので備忘録もかねて環境構築してみました。
環境構築の手順
-
WSL2を公式サイトの手順に基づきインストールする。
-
ディストリビューション(Ubuntu)をMicrosoftStoreからインストール
-
ubuntuを起動し、アカウント名とパスワードを入力してアカウントを作成する、
-
以下のコマンドを実行してパッケージを更新する。
sudo apt update
sudo apt -y upgrade
sudo apt -y dist-upgrade
- 以下のコマンドを実行してmiseを適用する。
sudo apt install -y curl git
curl https://mise.run | sh
echo 'eval "$(~/.local/bin/mise activate bash)"' >> ~/.bashrc
exec $SHELL -l
- 各言語で必要なパッケージ(特にphp)をインストールしておく。
sudo apt install g++ make autoconf bison re2c libxml2-dev libssl-dev libsqlite3-dev zlib1g-dev libcurl4-openssl-dev libgd-dev libonig-dev libpq-dev libreadline-dev libzip-dev libbz2-dev libyaml-dev gfortran xorg-dev
- 各言語をmiseを用いてインストールする(phpの場合は以下の通り)
mise ls-remote php # phpのインストールバージョンを確認
mise use php@(インストールバージョン) # すべてのフォルダでインストールバージョンのphpが利用できる
mise ls # phpがインストールできたかを確認
- これを別の言語でも実施すれば、使える言語が広がります。詳細はmiseのHPをご確認ください。私の場合は、以下の通りインストールできました。
Tool Version Source Requested
crystal 1.15.0 ~/.config/mise/config.toml latest
go 1.23.5 ~/.config/mise/config.toml latest
java adoptopenjdk-23.0.2+7 ~/.config/mise/config.toml adoptopenjdk-23.0.2+7
mint 0.22.0 ~/.config/mise/config.toml latest
node 22.13.1 ~/.config/mise/config.toml 22.13.1
php 8.4.3 ~/.config/mise/config.toml 8.4.3
python anaconda3-2024.10-1 ~/.config/mise/config.toml anaconda3-2024.10-1
r 4.4.2 ~/.config/mise/config.toml latest
ruby 3.4.0 ~/.config/mise/config.toml 3.4.0
rust 1.84.1 (symlink) ~/.config/mise/config.toml latest
asdfとの比較
コマンドの違いについては既に別の方が投稿されている( asdf/mise コマンド比較)ので、そちらをご確認いただければと思います。個人的には
- rustのcargoコマンドやphpのlaravelコマンドなどを利用するときにパスを通さなくてもいい
- javaのjava_homeをmise useした時点で自動で変更してくれる
といったところで便利だと感じてます。
補足
言語によってはインストールが困難な場合があるため、エラーが発生した際には参照していただければと思います。
- php
例:Could not open input file: composer.phar
このエラーはあまり起こらないかもしれないですが、opensslがバージョン3以上だと起こるので一時的にダウングレードすると発生しないと思います(macだとよく起こるのでたちが悪い…)。
- R言語
例:libicuuc.so.73: cannot open shared object file: No such file or directory
undefined reference to `uloc_setDefault_73'
- icuのgithubにアクセスする。
- 例では73.Xのバージョンになるため、icu4c-XX-X-src.tgzをダウンロードする。
- 以下のコマンドを実行する。
sudo ln -s /usr/include/locale.h /usr/include/xlocale.h
wget (icu4c-XX-X-src.tgzのURL)
tar xvfz icu4c-XX-X-src.tgz
cd icu/source
./configure
make
sudo make install
例:libiconv関連のエラー
- 以下のコマンドを実行する。
wget https://ftp.gnu.org/gnu/libiconv/libiconv-1.17.tar.gz
tar xvfz libiconv-1.17.tar.gz
cd libiconv-1.17
./configure --prefix=/usr/local
make
sudo make install