MacOS10.13(High Sierra)に色々なフォーミュラをインストールする、2023年3月
HomeBrew MacOS10.13は通常のインストールではソースからでもビルド出来なくなってきました
完全に無理なら諦めますが、なんとかソースなどの書き換えで対応出来そうです
HomeBrew 4.0.0以降はシェルに以下の設定をして下さい
echo 'export HOMEBREW_NO_INSTALL_FROM_API=1' >> ~/$(echo .${SHELL##*/}rc)
source ~/$(echo .${SHELL##*/}rc)
brew tap homebrew/core
まず、llvm@12 これは必要で通常インストール出来るフォーミュラです
ただ、Xcode.app(10.1)をインストールし起動しないとllvm@12もインストール出来ません
https://developer.apple.com/download/more/ # ここからダウンロード
最初にXcode.appを起動した時に出るライセンス認証ダイアログのOKボタンを押すだけです
brew install llvm@12
; その後、
/usr/local/Homebrew/Library/Homebrew/shims/super/cc ; # 80行目
"#{ENV["HOMEBREW_PREFIX"]}/opt/llvm/bin/#{Regexp.last_match(1)}"
これを以下に書き換えます
"#{ENV["HOMEBREW_PREFIX"]}/opt/llvm@12/bin/#{Regexp.last_match(1)}"
2023年12月 php、mysql、jpeg-xl、doxygen などは以下でインストール出来ます
brew install --cc=llvm_clang
<Formula>
--cc オプションは指定したフォーミュラにのみ有効で依存するフォーミュラには動作しません
なので依存するフォーミュラに --cc オプションが必要な場合は個別にインストールします
islのビルドに gcc@11が必要なのですが gcc@11が islに依存するので gccの通常インストールが出来ません
フォーミュラを書き換え(削除)するので保存しておきます
cp /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/g/gcc@11.rb ~/gcc@11.rb
brew edit gcc@11 # islを無効にします
# depends_on "isl" # 30行目をコメントに
--with-isl=#{Formula["isl"].opt_prefix} # 75行目を削除
--disable-bootstrap # 78行目に追加、とりあえずビルド
brew install gcc@11
brew install --cc=gcc-11 isl
mv ~/gcc@11.rb /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/g/gcc@11.rb
brew install --cc=gcc-11 gcc
llvmでビルドできた islを reinstallしてみたら --cc=gcc-11オプションでエラーになります
llvmでビルドできた islでは --cc=llvm_calngを使わないといけない様です
なぜこうなるのか、原因がわかりません
2024年5月 node(22.2.0)は llvm@15が無いとインストール出来ないので書き換えが必要になります
llvm@15のインストールですが、いくつか方法があるようでネタ元のリンクを貼っておきます
今回はダイレクトに書き換えます、ソースは /tmp にコピーされるので /tmp に移動します
ターミナルをもう1枚開くか、iTerm2なら画面分割で top -u コマンドで動作確認します
brew install --cc=llvm_clang llvm@15
これでソースがダウンロードされ展開され /tmp にコピーされます
topコマンドで bsdtar、ruby、cp と動作確認が出来たらmake前にllvmフォルダーに入って
/tmp/llvmA15...../llvm-project-15.0.7.src/lldb/source/Host/macosx/objcxx/HostInfoMacOSX.mm # 236行目
if (cputype == CPU_TYPE_ARM64 && cpusubtype == CPU_SUBTYPE_ARM64E) {
これを以下に書き換えます
if (cputype == CPU_TYPE_ARM64) {
これで llvm(llvm@15)のインストールが出来ます、その後、
/usr/local/Homebrew/Library/Homebrew/shims/super/cc ; # 80行目
"#{ENV["HOMEBREW_PREFIX"]}/opt/llvm@12/bin/#{Regexp.last_match(1)}"
これを以下に書き換えます
"#{ENV["HOMEBREW_PREFIX"]}/opt/llvm@15/bin/#{Regexp.last_match(1)}"
node(22.2.0) のビルドは llvm@15を使ってください、node.rbでビルドに llvmが指定されてるので
brew edit node ; # 36行目、以下をコメントにして下さい
# on_macos do
# depends_on "llvm" => [:build, :test] if DevelopmentTools.clang_build_version <= 1100
# end
nodeはヘッダーのコピーと書き換えが必要になります
システムに触れるので System Integrity Protection(SIP)を無効にして下さい
sudo cp /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/os/signpost.h /usr/include/os/
sudo vim /usr/include/os/signpost.h ; # 280行目
#define os_signpost_event_emit(log, event_id, name, ...) \
os_signpost_emit_with_type(log, OS_SIGNPOST_EVENT, \
event_id, name, ##__VA_ARGS__)
これを以下に書き換えます
#define os_signpost_event_emit(log, event_id, name, ...)
// os_signpost_emit_with_type(log, OS_SIGNPOST_EVENT, \
event_id, name, ##__VA_ARGS__)
brew install --cc=llvm_clang node
python 関係で ModuleNotFoundError: No module named 'packaging' エラー等が出る場合
エラー表示が python@3.11、python@3.12 どちらか確認して下さい
mkdir ~/.pip
vim ~/.pip/pip.conf # 以下2行を書く
[global]
break-system-packages = true
cd /usr/local/Cellar/python@3.12/3.12.3/bin # or python@3.11/3.11.9/bin
./python3.12 -m pip install --upgrade pip # or ./python@3.11
./python3.12 -m pip install 'packaging' # or ./python@3.11
2024年6月 llvm(18.1.7) がリリースされました、インストール方法は llvm@15 と同じです
llvm(18.1.7) 関連のインストールは依存関係が少しややこしいです
vim は ruby に依存し ruby のビルドに rust が必要になります
rust は llvm に依存し llvm のビルドに ninja が必要になります
llvm(18.1.7) のビルドは llvm@15 と同じです、ただ私の環境では何故か
iMac(2013)OS10.13 はビルド出来るのですが iBookPro(2012)OS10.13 ではエラーになります
~/Library/Logs/Homebrew/llvm/02.cmakeを確認すると引数が足りないエラーになっています
CMake Error at /tmp/llvm......../llvm-project-18.1.7.src/compiler-rt/cmake/Modules/CompilerRTUtils.cmake:371 (string): 8515 string sub-command REPLACE requires at least four arguments.
ビルドに成功してる iMacで足りない値を表示すると x86_64-apple-darwin17.7.0 でした
cc --version で返ってくる値 Target: x86_64-apple-darwin17.7.0 になります
/tmp/llvm......../llvm-project-18.1.7.src/compiler-rt/cmake/Modules/CompilerRTUtils.cmake # 370行目に追加
set(COMPILER_RT_DEFAULT_TARGET_TRIPLE "x86_64-apple-darwin17.7.0")
llvm@16以降で nodeをビルドする場合はヘッダーをコメントにしないとエラーになります
/usr/local/opt/llvm/include/c++/v1/new; # の355行目
return ::aligned_alloc(__alignment, __size > __rounded_size ? __size : __rounded_size);
これを以下に書き換えます
return; //::aligned_alloc(__alignment, __size > __rounded_size ? __size : __rounded_size);
php を llvm@16 以降でビルドするとエラーになります、特別な理由がなければ llvm@15でビルドしましょう
2024年5月 libheifはビルド依存する pkg-configが Homebrewのgdk-pixbufを読み込みエラーになります
mv /usr/local/Cellar/gdk-pixbuf/2.42.12 /usr/local/Cellar/gdk-pixbuf/2.42.10
libheif のインストールが終われば元に戻しましょう
mv /usr/local/Cellar/gdk-pixbuf/2.42.10 /usr/local/Cellar/gdk-pixbuf/2.42.12
2023年3月末、ghostscriptは通常インストールや --cc=llvm_clangでもエラーになります
ghostscriptは gccに依存するのでインストールオプションを変え、gccでコンパイルします
brew install --cc=gcc-11 ghostscript
shared-mime-info も --cc=gcc-11 オプションを使って下さい
brew install --cc=gcc-11 shared-mime-info
subversion は llvm がインストールされていればメイクに clang と clang-15 を併用します
10.13 純正 clang のアーキテクチャは i386 , clang-15 のアーキテクチャは x86_64 になります
clang と clang-15 はアーキテクチャが違うので llvm があるとエラーになります
subversion をインストールする場合は llvm のリンクを解除してインストールして下さい
brew unlink llvm@15 ; brew install subversion
subversion のインストールが終われば llvm のリンクを戻して大丈夫です
brew link llvm@15
2024年5月 openexr をリインストールしたらエラーになりました
~/Library/Logs/Homebrew/openexr/01.cmake を見てみると
libdeflate , clang-format がないエラーです、依存関係が更新されてません
brew install libdeflate
brew reinstall openexr
clang-format はなくても大丈夫です
2024年5月 c-ares はヘッダーで定義されてないようでエラーになります
c-ares は node に必要なので SIP を無効にして書き換えます
sudo vim /usr/include/dispatch/dispatch.h # 38行目
#if !defined(HAVE_UNISTD_H) || HAVE_UNISTD_H
HAVE_UNISTD_H 定義を無効にして unistd.hを読み込ませます
#if !defined(HAVE_UNISTD_H) // || HAVE_UNISTD_H
brew install c-ares
~/Library/Logs/Homebrew/c-ares/02.cmake を確認すると
has no symbols と警告が出ながらビルドは成功します