MacMacOS
Обновление до macOS Catalina
Настала пора обновиться до macOS Catalina. Уже как пару месяцев доступна новая ОС. Само обновление прошло легко и просто. Пару часов на то, чтобы скачать и установить новую ОС. Но после обновления обнаружил что не работает Python — вылетает с какими-то ошибками.
Первое что пришло в голову — обновить пакеты в homebrew.
$ brew update && brew upgrade
Обновиться не получилось, получил такую ошибку:
Error: The following directories are not writable by your user:
/usr/local/share/aclocal
/usr/local/share/doc
/usr/local/share/info
/usr/local/share/locale
/usr/local/share/man/man3
/usr/local/share/man/man4
/usr/local/share/man/man5
/usr/local/share/man/man7
/usr/local/share/man/man8
/usr/local/share/zsh
/usr/local/share/zsh/site-functions
You should change the ownership of these directories to your user.
sudo chown -R $(whoami) /usr/local/share/aclocal /usr/local/share/doc /usr/local/share/info /usr/local/share/locale /usr/local/share/man/man3 /usr/local/share/man/man4 /usr/local/share/man/man5 /usr/local/share/man/man7 /usr/local/share/man/man8 /usr/local/share/zsh /usr/local/share/zsh/site-functions
And make sure that your user has write permission.
chmod u+w /usr/local/share/aclocal /usr/local/share/doc /usr/local/share/info /usr/local/share/locale /usr/local/share/man/man3 /usr/local/share/man/man4 /usr/local/share/man/man5 /usr/local/share/man/man7 /usr/local/share/man/man8 /usr/local/share/zsh /usr/local/share/zsh/site-functions
Выполнил что просят, запустил обновление повторно. Опять ошибка:
Error: An exception occurred within a child process:
CompilerSelectionError: interactive/devkit/idk-core cannot be built with any available compilers.
Install GNU's GCC:
brew install gcc
При попытке установить gcc опять ошибка:
Warning: Building gcc from source:
The bottle needs the Xcode CLT to be installed.
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
Error: An exception occurred within a child process:
CompilerSelectionError: gcc cannot be built with any available compilers.
Install GNU's GCC:
brew install gcc
С Xcode решилось вот так:
$ xcode-select --install
После gcc установился без проблем. Повторяю brew upgrade, опять проблемы:
Error: Cannot link glib
Another version is already linked: /usr/local/Cellar/glib/2.62.3
Попытался сделать вот так:
$ brew unlink glib && brew link glib
Опять ошибка
"Error: Permission denied @ apply2files - /usr/local/share/gettext/its/gschema.its".
Помогло поменять права на /usr/local/share/:
$ sudo chown -R $(whoami) /usr/local/share/
После обновление homebrew прошло успешно. Маленькая победа!
Но на этом проблемы с Python не закончились — вылетает, ругаясь на libcrypto.dylib.
Application Specific Information:
/usr/lib/libcrypto.dylib
abort() called
Invalid dylib load. Clients should not load the unversioned libcrypto dylib as it does not have a stable ABI.
Решение оказалось достаточно простым. Нужно установить/обновить openssl.
$ brew install openssl
И скопировать файлики в /usr/local/lib/.
$ cd /usr/local/Cellar/openssl/1.0.2t/lib/
$ sudo cp libssl.1.0.0.dylib libcrypto.1.0.0.dylib /usr/local/lib/
$ sudo ln -s libssl.1.0.0.dylib libssl.dylib
$ sudo ln -s libcrypto.1.0.0.dylib libcrypto.dylib
Python заработал!
Статья может обновляться по мере нахождения проблем :-)