Przyszła ta wiekopomna chwila kiedy trzeba było ponownie zainstalować dotnet core na macu. Broniłem się przed nią dobre parę miesięcy, ale niestety na dzisiaj potrzebowałem zrobić kilka dem i core był wymagany. Zabrałem się więc do tego jak typowy człowiek. Wszedłem na podaną mi przez kogoś stronę dot.net i kliknąłem download. Tam potem jeszcze parę razy kliknąłem (jakby się nie dało prościej), i dotarłem do strony z instrukcją instalacji dotnet na macOS.

Instrukcja naprawdę jest banalna, wystarczy zainstalować OpenSSL, zrobić workaround (dodać linki do bibliotek), ściągnąć i zainstalować SDK. To wszystko. Niby 5 minut roboty… ale jak się u mnie okazało to 3h roboty, workaround na workaroundzie i się udało. Do tego znalazłem dwa bugi albo bym powiedział feature request.

Ale po kolei… jeżeli wasz mac jest zainstalowany za pomocą boxena to PRZESTAŃCIE CZYTAĆ dokumentację MS. Nie ma sensu. Tylko się wkurzycie. Albo sam nie wiem, ja mam swego maca postawionego tak z rok, półtora temu? Może boxen uległ zmianie? Nie wiem.

Po pierwsze, u mnie homebrew jest częścią boxena, czyli lokalizacja instalowanych paczek jest inna niż ta na stronie macOS. Zamiast

/usr/local/opt/openssl/

U mnie było:

/opt/boxen/homebrew/opt/openssl/

Różnica jest… więc linki bym sobie poustawiał, co najlepsze, dało się (ustawiłem linka dla tego co niby miałem mieć)…  więc bez komentarza. Ostateczne poprawne linie to:

sudo ln -s /opt/boxen/homebrew/opt/openssl/lib/libcrypto.1.0.0.dylib /usr/local/lib/
sudo ln -s /opt/boxen/homebrew/opt/openssl/lib/libssl.1.0.0.dylib /usr/local/lib/

Po drugie, komendę musiałem wykonać z sudo, nie wiem jak to można by było zrobić bez sudo ale ok.

Po trzecie, zanim w ogóle natrafiłem na problem pierwszy, natrafiłem na problem który ma około 8 duplikatów na issues w dotnet cli:

Warning: openssl is a keg-only and another version is linked to opt. Use brew install --force if you want to install this version

Gdzie rozwiązanie problemu przez MS to:

brew unlink openssl
brew uninstall --ignore-dependencies openssl
brew install --force openssl

Super… no po prostu radość. Zamiast napisać, że jeżeli będą problemy z instalacją openssl gdyż już jeden istnieje, sprawdź czy masz wersję X i w razie co zaktualizuj do najnowszej a potem wykonaj X, Y i Z. to komunikacja jest poprzez github issues. Najlepsze, że issues są pozamykane… no prawda, workaround jest dostępny więc issue można zamknąć…

Po czwarte, trafiłem na problem z wykorzystaniem zsh w którym komenda dotnet nie jest dostępna. Na szczęście TO TEŻ  jest znany problem… i istnieją obejścia plus PR na zsh. U mnie zadziałał symlink – czyli workaround 1.

Podsumowanie

Dlaczego ludzie nie programowali w Ruby na windows? Bo próba zainstalowania i skonfigurowania go kończyła się przeważnie wyrywaniem sobie włosów. To czemu nagle ktoś miałby w ogóle chęć pisać w dotnet core? Nie wiem. W sensie, wyszedłem z dotnet core jakiś czas temu by za często się zmieniał i nic nie działało tak jak powinno. Wróciłem i nie widzę różnicy – prawda, więcej narzędzi, lepsze wparcie. Ale jakość instalacji środowiska… i to jeszcze przy instalacje Msowej… naprawdę MS ma instalkę (wizard) na maca. TOŻ to przecież prosi się o to by to poprawnie działało!

Naprawdę mnie odrzuca od rzeczy które wymagają zbyt dużo mego czasu by w ogóle to zaczęło działać. MS idzie do przodu i widać, że się starają… ale to nie jest good enough już, to jest alpha ready produkt.

A to nie wszystko co w ciągu zaledwie kilku dni doprowadziło mnie do szału z całym tym .NETem. O tych dwóch pozostałych rzeczy, poopowiadam, kiedy indziej. Teraz idę się zrelaksować :)

2 KOMENTARZE

Comments are closed.