Menjalankan .NET Core di Linux

2 min read

Disclaimer
Saya bekerja di AWS, semua opini adalah dari saya pribadi. (I work for AWS, my opinions are my own.)
Menjalankan .NET Core pada Linux
Menjalankan .NET Core pada Linux

TeknoCerdas.com – Salam cerdas untuk kita semua. Sejak kepemimpinan Satya Nadela di Microsoft banyak kebijakan yang lebih condong bersahabat dengan dunia open source termasuk Linux. Salah satu produk yang dapat dijalankan di Linux adalah .NET Core. Tulisan ini akan membahas bagaimana menjalankan .NET Core di Linux.

.NET Core adalah salah satu runtime untuk menjalankan aplikasi .NET. Perbedaan utama dengan .NET Framework adalah pada .NET Core tidak disediakan pustaka untuk membuat aplikasi Desktop pada Windows. .NET Core lebih tepat digunakan jika target deployment dari aplikasi adalah multi-platform di Windows, Linux, atau MacOS.

Bahasa pemrograman yang didukung oleh .NET Core adalah C#, F# dan Visual Basic. Bahasa yang disebutkan terakhir memiliki keterbatasan dukungan runtime pada .NET Core sebelum versi 5.

Instal .NET Core di Linux

Instalasi paling gampang adalah dengan mendownload versi binary dari .NET Core untuk Linux. Pada tulisan ini instalasi .NET Core di Linux akan digunakan .NET Core versi 3.1. Gunakan file binary Linux dengan format x64.

Buka halaman download dari .NET Core. Klik link untuk Linux x64. Kemudian copy link URL dari dan download menggunakan cURL.

$ curl -L -o dotnetcore-3.1.tar.gz \
https://download.visualstudio.microsoft.com/download/pr/fdd9ecec-56b4-40f4-b762-d7efe24fc3cd/ffef51844c92afa6714528e10609a30f/dotnet-sdk-3.1.403-linux-x64.tar.gz

Buat direktori baru untuk mengekstrak file kompresi dari .tar.gz.

$ sudo mkdir /opt/.netcore/

Ekstrak .NET Core 3.1 ke dalam direktori /opt/.netcore.

$ sudo tar xvf dotnetcore-3.1.tar.gz -C /opt/.netcore

Menjalankan .NET Core di Linux

Saat ini jika anda menjalankan perintah dotnet pada terminal kemungkinan perintah tersebut tidak dikenali.

$ dotnet
dotnet: command not found

Untuk mengatasinya pastikan bahwa binary dotnet yang terletak pada /opt/.netcore/dotnet dapat dikenali oleh shell. Cara pertama adalah dengan menggunakan environment variabel $PATH.

$ export PATH=/opt/.netcore:$PATH

Sekarang coba jalankan kembali perintah dotnet.

$ dotnet
Usage: dotnet [options]
Usage: dotnet [path-to-application]

Options:
  -h|--help         Display help.
  --info            Display .NET Core information.
  --list-sdks       Display the installed SDKs.
  --list-runtimes   Display the installed runtimes.

path-to-application:
  The path to an application .dll file to execute.

Dapat terlihat bahwa perintah dotnet sudah dikenali pada lingkungan shell.

Untuk perubahan secara permanen maka masukkan perintah export diatas pada akhir dari file ~/.bashrc. Sesuaikan jika anda memiliki shell selain Bash.

Cara yang kedua adalah dengan melakukan symlink file ke direktori yang sudah dikeali oleh PATH contohnya/usr/local/bin.

$ sudo ln -s /opt/.netcore/dotnet /usr/local/bin/dotnet

Membuat Hello World pada .NET Core

Sekarang mari kita coba membuat program sederhana untuk mencetak teks “Hello World” pada terminal console.

$ dotnet new console -o hello-world

Perintah diatas berarti membuat sebuah aplikasi yang bertipe console (terminal) dan diletakkan pada direktori hello-world.

$ cd hello-world
$ ls -l
total 12
-rw-rw-r-- 1 ubuntu ubuntu  193 Oct 17 09:50 Program.cs
-rw-rw-r-- 1 ubuntu ubuntu  226 Oct 17 09:50 hello-world.csproj
drwxrwxr-x 2 ubuntu ubuntu 4096 Oct 17 09:50 obj

Dapat terlihat terdapat skeleton file dan direktori pada direktori hello-world. File kode utama dari aplikasi adalah Program.cs yaitu sebuah kode C#.

$ cat Program.cs
using System;

namespace hello_world
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
}

Program.cs secara default sudah terisi kode program untuk menampilkan Hello World pada terminal. Coba jalankan file tersebut.

$ dotnet build
Microsoft (R) Build Engine version 16.7.0+7fb82e5b2 for .NET
Copyright (C) Microsoft Corporation. All rights reserved.

  Determining projects to restore...
  All projects are up-to-date for restore.
  hello-world -> /home/ubuntu/hello-world/bin/Debug/netcoreapp3.1/hello-world.dll

Build succeeded.
    0 Warning(s)
    0 Error(s)

Time Elapsed 00:00:01.02

Jalankan file hasil build.

$ dotnet bin/Debug/netcoreapp3.1/hello-world.dll
Hello World!

Selamat .NET Core sudah berhasil diinstal pada Linux. Selamat memprogram dengan .NET Core :).