Compiling .NET Core Apps unter Linux
.NET Core läuft nicht nur auf Windows, sondern auch auf Linux und OS X. Dieser Blog Artikel zeigt die Vorbereitung von Linux um .NET Core mit den .NET CLI Tools darauf kompilieren zu können.
Mittlerweile ist es doch schon 3 Jahre her das ich nur Windows im Einsatz hatte. Der Marktanteil von Microsoft auf den mobilen Plattformen geschuldet habe ich neben meinen Windows Devices (mein hauptsächlich genutzes Phone ist tatsächlich ein Windows Phone), ein Android Phone, ein iPhone, und auch einen Mac. All das braucht man doch für die Entwicklung mit Xamarin.
Am Desktop gab es aber weiterhin nur Windows (Mac ist hier eine Ausnahme). Vor meiner Windows Zeit war ich aber Entwickler unter OpenVMS und Unix (damals Ultrix und DEC-OSF/1 von Digital Equipment), und bringe damit auch viel Erfahrung von anderen Plattformen mit. Seit damals hat sich aber doch eine Menge geändert.
Da .NET Core jetzt auch auf Linux und OS-X läuft, heisst es sich damit wieder vermehrt zu beschäftigen.
Ein Linux Image mit Microsoft Azure
Eine einfache Möglichkeit Linux zum laufen zu bringen ist ein virtuelles Image mit Microsoft Azure (https://portal.azure.com/) zu erstellen. Ubuntu 14.04, Windows, Mac OS X und CentOS 7.1 werden momentan mit Installers unter https://github.com/dotnet/cli angeboten, andere Distributions folgen.
Für Ubuntu 14.0.4 wird ein fertiges Image unter Microsoft Azure angeboten:

Ubuntu 14.04 mit Microsoft Azure
Connect to Ubuntu
Nachdem das Image unter Microsoft Azure eingerichtet ist, brauchen wir eine Verbindung. Bei Windows Images genügt dafür der Connect Button unter Microsoft Azure, damit wird schon eine Remote Desktop Verbindung geöffnet. Unter Linux wird dafür eine Secure Shell benötigt.
Es gibt den Plan unter Windows 10 eine Secure Shell bereitzustellen: OpenSSH unter Windows. Bis das so weit ist wird es aber noch etwas dauern. Bis dahin verwende ich PuTTY. Das ist ein simples Executable für SSH und nicht mehr.
Bei der PuTTY Konfiguration braucht nur die IP Adresse aus der Azure Konfiguration übernommen zu werden,

PuTTY Configuration
und mit dem unter Azure konfigurierten User und Password wird die Verbindung hergestellt:

Connection to Ubuntu
Installation von .NET Core Command-Line (CLI) Tools
Nachdem die Verbindung hergestellt ist, können auch schon die .NET Core command-line (CLI) tools installiert werden.
Ubuntu Desktop und xrdp können über apt-get installiert werden, wie von Tom McKearney beschrieben ist.
Für Ubuntu gibt es ein Debian Package. Das kann mit wget heruntergeladen werden:
wget https://dotnetcli.blob.core.windows.net/dotnet/beta/Installers/Latest/dotnet-ubuntu-x64.latest.deb
Stattdessen kann aber gleich der apt-get Feed für .NET Core konfiguriert werden:
sudo sh -c ‚echo „deb [arch=amd64] http://apt-mo.trafficmanager.net/repos/dotnet/ trusty main“ > /etc/apt/sources.list.d/dotnetdev.list‘
sudo apt-key adv –keyserver apt-mo.trafficmanager.net –recv-keys 417A0893
sudo apt-get update
Näheres ist hier: get started with .NET Core.
Dann lässt sich auch schon .NET Core von diesem Feed installieren:
sudo apt-get install dotnet=1.0.0.001331-1
.NET Core CLI Tools
Damit können auch unter Linux die .NET Core CLI tools verwendet werden:
mkdir HelloWorld
für ein neues Verzeichnis der Applikation,
cd HelloWorld
dotnet new
zum erstellen einer Hello, World! App,
dotnet restore
zum Herunterladen der NuGet Packages. Dann ein
dotnet build
um das Programm zu kompilieren, und
dotnet run
es zu starten.
Christian
Weitere Informationen zu .NET Core
- bei meinem BASTA! Vortrag in Darmstadt
- in meinem Buch Professional C# 6
- und bei meinen .NET Core Workshops!