[.NET CORE] Instalacja na Ubuntu

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-httpsaby 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:

  1. Zaczyny od pobrania binariów odpowiedniej wersji dotneta – ja wybrałem .
    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! 🙂

Leave a Reply