Microsoft dumnie obwieszcza wsparcie dla Linuxów, ja nie dawno powiedziałem sprawdzam i postanowiłem zweryfikować jak zadziała self-hostowany serwer TCP opublikowany na Ubuntu 18 Server.
Ubuntu Serwer działa na platformie Azure, klasyczna instalacja dotnet’a w wersji Core powinna wyglądać dość prosto:
Dodajemy wymagane repozytoria i zależności:
wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb
Używamy tutaj niskopoziomowej komendy dpkg gdyż pkiet packages-microsoft-rpod nie znajduje się w ogólnodostępnym repozytorium aby wystarczyło skorzystać z apt-get.
Następnie instalujemy apt-transport-https: aby wszystkie menedżery pakietów, które korzystają z biblioteki libapt-pkg, mogły uzyskać dostęp do metadanych i pakietów z dostępnych źródeł za pośrednictwem protokołu HTTPS.
Następnie (w końcu!) dotnet SDK:
sudo apt-get install apt-transport-https sudo apt-get update sudo apt-get install dotnet-sdk-2.1
Po tym zabiegu dotnet jest już dostępny na naszym Linuxie, aby to zweryfikować wpisujemy w konsoli:
dotnet --info
Powinniśmy otrzymać informacje o wersji dotneta w naszym OS. Jesli Linux poinformuje nas, że nie zna polecenia dotnet – mamy problem. Instalacja się nie powiodła. 🙁
Trudne przypadki
U mnie – niestety – właśnie tak było, za Chiny nie mogłem zainstalować zależności wymaganych przez dotnet-sdk, jedynym rozwiązaniem (mimo spędzenia naprawdę sporego czasu na szukaniu rozwiązania) była ręczna instalacja dotnet’a i dodanie go do ścieżek systemowych.
Robimy to tak:
- Zaczyny od pobrania binariów odpowiedniej wersji dotneta – ja wybrałem tą.
Można pobrać pliki dowolną metodą i umieścić na systemie plików Ubuntu lub skorzystać z wget:
wget https://download.microsoft.com/download/4/0/9/40920432-3302-47a8-b13c-bbc4848ad114/dotnet-sdk-2.1.302-linux-x64.tar.gz
2. Tworzymy folder dla dotnet’a.
Zachęcam do przypomnienia sobie przeznaczenia poszczególnych katalogów w Linuxie, np. na tej stronie.
Przeznaczenie folderów w Linuxach
mkdir /usr/dotnet
3. Wypakowujemy zawartość archiwum do nowo-utworzonego folderu:
tar zxf dotnet-sdk-2.1.302-linux-x64.tar.gz -C /usr/dotnet
4. Dodajemy ścieżki systemowe:
export DOTNET_ROOT=$PATH:/usr/dotnet export PATH=$PATH:/usr/dotnet
5. Niestety po restarcie ścieżki „ulecą”, aby je zachować należy:
– Edytujemy zatem pliki ~/.bash_profile oraz, ~/.bashrc
Na końcu stałej PATH dodajemy naszą ścieżkę, czyli /usr/dotnet
– Na końcu obu plików dodajemy komendę:
export DOTNET_ROOT=$PATH:/usr/dotnet
Istnieje też możliwość działania z dotnetem bez dodawania go do ścieżek systemowych, ale za każdym razem musimy wtedy podawać pełną ścieżkę, czyli np.:
/usr/dotnet/dotnet build
To tyle. Przekonajmy się, że .Net w Linuxie jest całkiem OK! 🙂