0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

最近流行のmiseで環境構築してみた

Last updated at Posted at 2025-02-17

はじめに

 以前まで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'
  1. icuのgithubにアクセスする。
  2. 例では73.Xのバージョンになるため、icu4c-XX-X-src.tgzをダウンロードする。
  3. 以下のコマンドを実行する。
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関連のエラー
  1. 以下のコマンドを実行する。
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
0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?