Częściowa diagnoza: https://github.com/microsoft/vcpkg/issues/8781#issuecomment-547248760
Wygląda na to, że aktualizacja z jednej wersji systemu MacOS do innej powoduje odinstalowanie niektórych narzędzi deweloperskich lub przeniesienie ich na inną ścieżkę, a to zrywa zgodność z dowolnym narzędziem korzystającym ze zmiennej środowiskowej wskazującej na starą lokalizację, w której narzędzia się znajdowały.
sudo xcode-select --install
Użycie polecenia instalacji zadziałało dla mnie, ale nie jest jasne, czy to po prostu pobrało i rozpakowało pliki, a następnie pominęło instalację i po prostu zaktualizowało zmienną środowiskową, czy też fizycznie zainstalowało pliki w oczekiwanej ścieżce. (Lub mógł utworzyć łącza do nowej ścieżki folderu).
Testując moją teorię, badam strukturę folderów za pomocą ls
(powinienem to zrobić przed użyciem polecenia instalacji):
rej@Ryans-MacBook-Air:~$ ls /Library/Developer/CommandLineTools/usr/bin/
rej@Ryans-MacBook-Air:~$ ls -la /Library/Developer/CommandLineTools/usr/bin/
total 243776
drwxr-xr-x 124 root wheel 3.9K Oct 28 23:03 ./
drwxr-xr-x 7 root admin 224B Oct 28 23:05 ../
lrwxr-xr-x 1 root wheel 64B Oct 28 23:03 2to3@ -> ../../Library/Frameworks/Python3.framework/Versions/3.7/bin/2to3
lrwxr-xr-x 1 root wheel 68B Oct 28 23:03 2to3-3.7@ -> ../../Library/Frameworks/Python3.framework/Versions/3.7/bin/2to3-3.7
-rwxr-xr-x 1 root wheel 116K Sep 5 22:51 DeRez*
-rwxr-xr-x 1 root wheel 31K Sep 5 22:51 GetFileInfo*
-rwxr-xr-x 1 root wheel 33K Sep 5 22:51 ResMerger*
-rwxr-xr-x 1 root wheel 126K Sep 5 22:51 Rez*
-rwxr-xr-x 1 root wheel 31K Sep 5 22:51 SetFile*
-rwxr-xr-x 1 root wheel 32K Sep 5 22:51 SplitForks*
-rwxr-xr-x 1 root wheel 41K Sep 5 22:51 ar*
-rwxr-xr-x 1 root wheel 40K Sep 5 22:51 as*
-rwxr-xr-x 1 root wheel 27K Sep 5 22:51 asa*
-rwxr-xr-x 1 root wheel 216K Sep 5 22:51 bison*
-rwxr-xr-x 1 root wheel 159K Sep 5 22:51 bitcode_strip*
lrwxr-xr-x 1 root wheel 5B Oct 28 23:03 c++@ -> clang
-rwxr-xr-x 1 root admin 31K Sep 5 22:51 c89*
-rwxr-xr-x 1 root admin 31K Sep 5 22:51 c99*
lrwxr-xr-x 1 root wheel 5B Oct 28 23:03 cc@ -> clang
-rwxr-xr-x 1 root wheel 80M Sep 5 22:51 clang*
lrwxr-xr-x 1 root wheel 5B Oct 28 23:03 clang++@ -> clang
-rwxr-xr-x 1 root wheel 125K Sep 5 22:51 cmpdylib*
-rwxr-xr-x 1 root wheel 154K Sep 5 22:51 codesign_allocate*
lrwxr-xr-x 1 root wheel 17B Oct 28 23:03 codesign_allocate-p@ -> codesign_allocate
-rwxr-xr-x 1 root admin 3.3K Aug 16 06:55 cpp*
-rwxr-xr-x 1 root wheel 36K Sep 5 22:51 ctags*
-rwxr-xr-x 1 root wheel 150K Sep 5 22:51 ctf_insert*
-rwxr-xr-x 1 root wheel 30M Sep 5 22:51 dsymutil*
lrwxr-xr-x 1 root wheel 14B Oct 28 23:03 dwarfdump@ -> llvm-dwarfdump
-rwxr-xr-x 1 root wheel 477K Sep 5 22:51 dwarfdump-classic*
-rwxr-xr-x 1 root wheel 211K Sep 5 22:51 dyldinfo*
-rwxr-xr-x 1 root wheel 239B Sep 5 19:18 easy_install-3.7*
-rwxr-xr-x 1 root wheel 572K Sep 5 22:51 flex*
-rwxr-xr-x 1 root wheel 572K Sep 5 22:51 flex++*
lrwxr-xr-x 1 root wheel 3B Oct 28 23:03 g++@ -> gcc
-rwxr-xr-x 1 root wheel 101K Aug 16 07:31 gatherheaderdoc*
-rwxr-xr-x 1 root admin 27K Sep 5 22:51 gcc*
lrwxr-xr-x 1 root wheel 8B Oct 28 23:03 gcov@ -> llvm-cov
-rwxr-xr-x 1 root wheel 2.4M Sep 5 22:51 git*
lrwxr-xr-x 1 root wheel 3B Oct 28 23:03 git-receive-pack@ -> git
-rwxr-xr-x 1 root wheel 1.4M Sep 5 22:51 git-shell*
lrwxr-xr-x 1 root wheel 3B Oct 28 23:03 git-upload-archive@ -> git
lrwxr-xr-x 1 root wheel 3B Oct 28 23:03 git-upload-pack@ -> git
-rwxr-xr-x 1 root wheel 148K Sep 5 22:51 gm4*
-rwxr-xr-x 1 root wheel 166K Sep 5 22:51 gnumake*
-rwxr-xr-x 1 root wheel 98K Sep 5 22:51 gperf*
-rwxr-xr-x 1 root wheel 33K Sep 5 22:51 hdxml2manxml*
-rwxr-xr-x 1 root wheel 158K Aug 16 07:31 headerdoc2html*
-rwxr-xr-x 1 root wheel 73K Sep 5 22:51 indent*
-rwxr-xr-x 1 root wheel 142K Sep 5 22:51 install_name_tool*
-rwxr-xr-x 1 root wheel 2.5M Sep 5 22:51 ld*
-rwxr-xr-x 1 root wheel 230B Aug 16 07:13 lex*
-rwxr-xr-x 1 root wheel 163K Sep 5 22:51 libtool*
-rwxr-xr-x 1 root wheel 73K Sep 5 22:51 lipo*
-rwxr-xr-x 1 root wheel 332K Sep 5 22:51 lldb*
-rwxr-xr-x 1 root wheel 3.6M Sep 5 22:51 llvm-cov*
-rwxr-xr-x 1 root wheel 7.9M Sep 5 22:51 llvm-dwarfdump*
-rwxr-xr-x 1 root wheel 9.8M Sep 5 22:51 llvm-nm*
-rwxr-xr-x 1 root wheel 11M Sep 5 22:51 llvm-objdump*
-rwxr-xr-x 1 root wheel 40K Sep 5 22:51 llvm-otool*
-rwxr-xr-x 1 root wheel 1.6M Sep 5 22:51 llvm-profdata*
-rwxr-xr-x 1 root wheel 2.9M Sep 5 22:51 llvm-size*
-rwxr-xr-x 1 root wheel 3.5K Aug 16 07:19 lorder*
-rwxr-xr-x 1 root wheel 148K Sep 5 22:51 m4*
-rwxr-xr-x 1 root wheel 166K Sep 5 22:51 make*
-rwxr-xr-x 1 root wheel 7.7K Aug 16 07:16 mig*
lrwxr-xr-x 1 root wheel 7B Oct 28 23:03 nm@ -> llvm-nm
-rwxr-xr-x 1 root wheel 142K Sep 5 22:51 nm-classic*
-rwxr-xr-x 1 root wheel 171K Sep 5 22:51 nmedit*
lrwxr-xr-x 1 root wheel 12B Oct 28 23:03 objdump@ -> llvm-objdump
lrwxr-xr-x 1 root wheel 10B Oct 28 23:03 otool@ -> llvm-otool
-rwxr-xr-x 1 root wheel 644K Sep 5 22:51 otool-classic*
-rwxr-xr-x 1 root wheel 138K Sep 5 22:51 pagestuff*
-rwxr-xr-x 1 root wheel 221B Sep 5 19:18 pip3*
-rwxr-xr-x 1 root wheel 221B Sep 5 19:18 pip3.7*
-rwxr-xr-x 1 root wheel 32K Sep 5 22:51 projectInfo*
lrwxr-xr-x 1 root wheel 66B Oct 28 23:03 pydoc3@ -> ../../Library/Frameworks/Python3.framework/Versions/3.7/bin/pydoc3
lrwxr-xr-x 1 root wheel 68B Oct 28 23:03 pydoc3.7@ -> ../../Library/Frameworks/Python3.framework/Versions/3.7/bin/pydoc3.7
lrwxr-xr-x 1 root wheel 67B Oct 28 23:03 python3@ -> ../../Library/Frameworks/Python3.framework/Versions/3.7/bin/python3
lrwxr-xr-x 1 root wheel 74B Oct 28 23:03 python3-config@ -> ../../Library/Frameworks/Python3.framework/Versions/3.7/bin/python3-config
lrwxr-xr-x 1 root wheel 69B Oct 28 23:03 python3.7@ -> ../../Library/Frameworks/Python3.framework/Versions/3.7/bin/python3.7
lrwxr-xr-x 1 root wheel 76B Oct 28 23:03 python3.7-config@ -> ../../Library/Frameworks/Python3.framework/Versions/3.7/bin/python3.7-config
lrwxr-xr-x 1 root wheel 70B Oct 28 23:03 python3.7m@ -> ../../Library/Frameworks/Python3.framework/Versions/3.7/bin/python3.7m
lrwxr-xr-x 1 root wheel 77B Oct 28 23:03 python3.7m-config@ -> ../../Library/Frameworks/Python3.framework/Versions/3.7/bin/python3.7m-config
lrwxr-xr-x 1 root wheel 66B Oct 28 23:03 pyvenv@ -> ../../Library/Frameworks/Python3.framework/Versions/3.7/bin/pyvenv
lrwxr-xr-x 1 root wheel 70B Oct 28 23:03 pyvenv-3.7@ -> ../../Library/Frameworks/Python3.framework/Versions/3.7/bin/pyvenv-3.7
lrwxr-xr-x 1 root wheel 7B Oct 28 23:03 ranlib@ -> libtool
-rwxr-xr-x 1 root wheel 70K Sep 5 22:51 resolveLinks*
-rwxr-xr-x 1 root wheel 85K Sep 5 22:51 rpcgen*
-rwxr-xr-x 1 root wheel 56K Sep 5 22:51 segedit*
lrwxr-xr-x 1 root wheel 12B Oct 28 23:03 size@ -> size-classic
-rwxr-xr-x 1 root wheel 125K Sep 5 22:51 size-classic*
-rwxr-xr-x 1 root admin 138K Sep 5 22:51 stapler*
-rwxr-xr-x 1 root wheel 126K Sep 5 22:51 strings*
-rwxr-xr-x 1 root wheel 179K Sep 5 22:51 strip*
-rwxr-xr-x 1 root wheel 330K Sep 5 22:51 svn*
-rwxr-xr-x 1 root wheel 118K Sep 5 22:51 svnadmin*
-rwxr-xr-x 1 root wheel 105K Sep 5 22:51 svnbench*
-rwxr-xr-x 1 root wheel 64K Sep 5 22:51 svndumpfilter*
-rwxr-xr-x 1 root wheel 71K Sep 5 22:51 svnfsfs*
-rwxr-xr-x 1 root wheel 98K Sep 5 22:51 svnlook*
-rwxr-xr-x 1 root wheel 70K Sep 5 22:51 svnmucc*
-rwxr-xr-x 1 root wheel 89K Sep 5 22:51 svnrdump*
-rwxr-xr-x 1 root wheel 122K Sep 5 22:51 svnserve*
-rwxr-xr-x 1 root wheel 90K Sep 5 22:51 svnsync*
-rwxr-xr-x 1 root wheel 44K Sep 5 22:51 svnversion*
-rwxr-xr-x 1 root wheel 90M Sep 5 22:51 swift*
lrwxr-xr-x 1 root wheel 5B Oct 28 23:03 swift-autolink-extract@ -> swift
-rwxr-xr-x 1 root admin 6.1M Sep 5 22:51 swift-build*
-rwxr-xr-x 1 root admin 734K Sep 5 22:51 swift-build-tool*
-rwxr-xr-x 1 root wheel 687K Sep 5 22:51 swift-demangle*
lrwxr-xr-x 1 root wheel 5B Oct 28 23:03 swift-format@ -> swift
-rwxr-xr-x 1 root admin 6.1M Sep 5 22:51 swift-package*
-rwxr-xr-x 1 root admin 6.1M Sep 5 22:51 swift-run*
-rwxr-xr-x 1 root wheel 61K Sep 5 22:51 swift-stdlib-tool*
-rwxr-xr-x 1 root admin 6.1M Sep 5 22:51 swift-test*
lrwxr-xr-x 1 root wheel 5B Oct 28 23:03 swiftc@ -> swift
-rwxr-xr-x 1 root wheel 12M Sep 5 22:51 tapi*
-rwxr-xr-x 1 root wheel 41K Sep 5 22:51 unifdef*
-rwxr-xr-x 1 root wheel 2.9K Aug 16 07:19 unifdefall*
-rwxr-xr-x 1 root wheel 63K Sep 5 22:51 unwinddump*
-rwxr-xr-x 1 root wheel 49K Sep 5 22:51 vtool*
-rwxr-xr-x 1 root wheel 45K Sep 5 22:51 xml2man*
-rwxr-xr-x 1 root wheel 135B Aug 16 07:22 yacc*
Widać, że pliki są fizycznie zlokalizowane w tym folderze i instalator zainstalował brakujące składniki. Fakt, że proces aktualizacji MacOS powoduje odinstalowanie mojego środowiska programistycznego, jest nieprzyjazny i Apple powinno zostać upomniane.