(思いの外長く続きそう)
このところすっきりしない Command Line Tools のバージョン問題 (例えば 「macOS Catalina → Big Sur アップデート」)。
今回、MacPorts の更新をしているときに次のように警告された。
Warning: cltversion: The Command Line Tools are installed, but MacPorts cannot determine the version. Warning: cltversion: For a possible fix, please see: https://trac.macports.org/wiki/ProblemHotlist#reinstall-clt |
そのWWWページ (Reinstalling the command line tools ¶) を見に行ってみる。
When the command line tools package is installed, a receipt is generated that can be accessed with /usr/sbin/pkgutil. When upgrading the OS or Xcode, this receipt can be lost even though the command line tools remain installed. Without this receipt, MacPorts cannot determine which version of the command line tools package is installed, and worse, Software Update will never update the CLTs. |
コマンドラインツールのパッケージをインストールすると、 /usr/sbin/pkgutil でアクセスできるレシートが生成されます。OSやXcodeをアップグレードすると、 コマンドラインツールがインストールされていても、このレシートが失われるこ とがあります。このレシートがないと、MacPortsはどのバージョンのコマンドラ インツールパッケージがインストールされているかを判断できず、最悪の場合、 Software UpdateはCLTを更新しません。 |
そこに書かれている対策は、要するにインストールし直し。 以前、別件で
sudo rm -rf /Library/Developer/CommandLineTools xcode-select --install |
sudo touch /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress softwareupdate -l |
sudo rm /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress |
一方、これとは違うが、やはりバージョン関係で出る問題で、
Warning: The macOS 11.2 SDK does not appear to be installed. Ports may not build correctly. Warning: You can install it as part of the Xcode Command Line Tools package by running `xcode-select --install'. |
はてな。 /Library/Developer/CommandLineTools/SDKs には、 MacOSX10.15.sdk とMacOSX11.1.sdk があるけれど、 確かに11.2 はないね。 うーん。
「Developer Forums: MacOSX 11.2 SDK」 と言うやり取りを見た。ある人は /opt/local/libexec/macports/lib/port1.0/portconfigure.tcl の中の
default configure.sdk_version {$macosx_sdk_version} |
default configure.sdk_version {11.3} |
議論している人達は Apple のせいと言っていて、 それが正しいらしい雰囲気があるけれど、本当かな。 いつになったら直るのかな。
(2021/4/30) BigSur 11.3 にアップデートしたら、 default configure.sdk_version {11.1} では警告が出た。それはそうか。
default configure.sdk_version {$macosx_sdk_version} |
bash や zsh |
export SDKROOT="$(xcrun --sdk macosx --show-sdk-path)" |
tcsh |
setenv SDKROOT `xcrun --sdk macosx --show-sdk-path` |
桂田 祐史