Closed11

Intel MacにasdfでPHP、Ruby 、Node.jsをインストールする(bash)

ピン留めされたアイテム
fsefasfsefas

Homebrewは先にインストールしておくこと。
bashの場合のasdfでPHPの環境構築をするコマンドまとめ。
うまくいけば以下をコピペして実行するだけ、(インストール)所要時間は 約12分。

cd $HOME;
# asdf
brew install asdf
echo -e "\n. $(brew --prefix asdf)/libexec/asdf.sh" >> ~/.bash_profile;
echo -e "\n. $(brew --prefix asdf)/etc/bash_completion.d/asdf.bash" >> ~/.bash_profile;

# PHP with asdf
brew install autoconf automake bison freetype gettext icu4c krb5 libedit libiconv libjpeg libpng libxml2 libzip pkg-config re2c zlib;
asdf plugin add php;
asdf install php latest;
asdf global php latest; # or asdf local php latest;
fsefasfsefas

PHPBrewで環境構築できなかった、phpenvでも構築するまでにかなり時間を使ってしまった。

「もっと早く簡単にできるのはないのか...」

他に探してみたところasdfと言うバージョン管理マネージャーを見つけた。
以下のリンクのバージョン管理マネージャー比較内容にとても共感したので使ってみることにする。
https://www.kanzennirikaisita.com/posts/anyenv-asdf-docker

fsefasfsefas

asdfをダウンロードします

brew install asdf
# ==> Downloading https://ghcr.io/v2/homebrew/core/coreutils/manifests/9.1
# ######################################################################## 100.0%
# ==> Downloading https://ghcr.io/v2/homebrew/core/coreutils/blobs/sha256:e446ef889d
# ==> Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sha2
# ######################################################################## 100.0%
# ==> Downloading https://ghcr.io/v2/homebrew/core/asdf/manifests/0.10.2-1
# ######################################################################## 100.0%
# ==> Downloading https://ghcr.io/v2/homebrew/core/asdf/blobs/sha256:2098bd4ff1da950
# ==> Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sha2
# ######################################################################## 100.0%
# ==> Installing dependencies for asdf: coreutils
# ==> Installing asdf dependency: coreutils
# ==> Pouring coreutils--9.1.big_sur.bottle.tar.gz
# 🍺  /usr/local/Cellar/coreutils/9.1: 480 files, 12.8MB
# ==> Installing asdf
# ==> Pouring asdf--0.10.2.all.bottle.1.tar.gz
# ==> Caveats
# To use asdf, add the following line to your /Users/yr/.bash_profile:
#   . /usr/local/opt/asdf/libexec/asdf.sh
# 
# Restart your terminal for the settings to take effect.
# 
# Bash completion has been installed to:
#   /usr/local/etc/bash_completion.d
# ==> Summary
# 🍺  /usr/local/Cellar/asdf/0.10.2: 164 files, 716.2KB
# ==> Running `brew cleanup asdf`...
# Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
# Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).
# ==> Caveats
# ==> asdf
# To use asdf, add the following line to your /Users/yr/.bash_profile:
#   . /usr/local/opt/asdf/libexec/asdf.sh
# 
# Restart your terminal for the settings to take effect.
# 
# Bash completion has been installed to:
#   /usr/local/etc/bash_completion.d
fsefasfsefas

以下を実行してasdfをインストールする。

echo -e "\n. $(brew --prefix asdf)/libexec/asdf.sh" >> ~/.bash_profile;
echo -e "\n. $(brew --prefix asdf)/etc/bash_completion.d/asdf.bash" >> ~/.bash_profile
fsefasfsefas

4. Install a Plugin | asdfGithubActions用の設定ファイルを見て、必要なライブラリは事前にインストールしておけよってことが書いてある。ってmac に asdf で php をインストールする - Qiitaに書いてありました。

さすがに完全自動構築してくれるツールではないらしいです
cd $HOMEしたあとに以下のコマンドを実行する(もしかしたら足りないのあるかも...)

brew install autoconf automake bison freetype gettext icu4c krb5 libedit libiconv libjpeg libpng libxml2 libzip pkg-config re2c zlib

現在 asdf-phpの GitHubのworkflow.ymlにはパスの設定は書いてないのですが何かしらエラーが出たらmac に asdf で php をインストールする - Qiitaを参考にパスを設定してみるのもアリかもしれません。

エラーがなければ以下を実行します(成功していれば何も表示されません)

asdf plugin add php
fsefasfsefas

5. Install a Version | asdfを参考にPHPをインストールします。
まぁまぁ時間がかかります(インストールが成功するまでに10分弱かかりました)

asdf install php latest

ちなみにlatestでインストールされるバージョンは上記コマンドの実行結果にInstalling header files:で検索をかければPHPのバージョンが表示されます。

fsefasfsefas

現在のディレクトリのみでインストールしたPHPを使用したい場合は

asdf local php 8.1.13

全体で使用したい場合は

asdf global php 8.1.13

を実行します。

fsefasfsefas

P.S
RubyとNode.jsは個人的によく使うので2つとも入れちゃいます。

Ruby
asdfのインストールとチュートリアル | Tech Blog

cd $HOME;
brew install openssl openssl@1.1 openssl@3 readline; # これだけ入れれば問題ないはず
asdf plugin add ruby https://github.com/asdf-vm/asdf-ruby.git;
asdf install ruby latest; # とりあえず最新版
asdf global ruby latest;
ruby -v;

Node.js
asdfのインストールとチュートリアル | Tech Blog
asdfでPHPやNode.jsをインストールしたかった - Qiita

brew install gpg gawk;
asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git;
asdf install nodejs lts; # とりあえず最新最新版。本来はバージョン指定する
asdf global nodejs lts;
node -v;
このスクラップは2022/12/05にクローズされました