如何在 Linux 中安裝微軟的 .NET Core SDK

2019-01-17 21:58:00

.NET Core 是微軟提供的免費、跨平台和開源的開發框架,可以構建桌面應用程式、行動端應用程式、網路應用程式、物聯網應用程式和遊戲應用程式等。如果你是 Windows 平台下的 dotnet 開發人員的話,使用 .NET core 可以很輕鬆就設定好任何 Linux 和類 Unix 作業系統下的開發環境。本分步操作指南文章解釋了如何在 Linux 中安裝 .NET Core SDK 以及如何使用 .NET 開發出第一個應用程式。

Linux 中安裝 .NET Core SDK

.NET Core 支援 GNU/Linux、Mac OS 和 Windows 系統,可以在主流的 GNU/Linux 作業系統上安裝執行,包括 Debian、Fedora、CentOS、Oracle Linux、RHEL、SUSE/openSUSE 和 Ubuntu 。在撰寫這篇教學時,其最新版本為 2.2

Debian 9 系統上安裝 .NET Core SDK,請按如下步驟進行。

首先,需要註冊微軟的金鑰,接著把 .NET 源倉庫地址新增進來,執行的命令如下:

$ wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.asc.gpg$ sudo mv microsoft.asc.gpg /etc/apt/trusted.gpg.d/$ wget -q https://packages.microsoft.com/config/debian/9/prod.list$ sudo mv prod.list /etc/apt/sources.list.d/microsoft-prod.list$ sudo chown root:root /etc/apt/trusted.gpg.d/microsoft.asc.gpg$ sudo chown root:root /etc/apt/sources.list.d/microsoft-prod.list

註冊好金鑰及新增完倉庫源後,就可以安裝 .NET SDK 了,命令如下:

$ sudo apt-get update$ sudo apt-get install dotnet-sdk-2.2

Debian 8 系統上安裝:

增加微軟金鑰,新增 .NET 倉庫源:

$ wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.asc.gpg$ sudo mv microsoft.asc.gpg /etc/apt/trusted.gpg.d/$ wget -q https://packages.microsoft.com/config/debian/8/prod.list$ sudo mv prod.list /etc/apt/sources.list.d/microsoft-prod.list$ sudo chown root:root /etc/apt/trusted.gpg.d/microsoft.asc.gpg$ sudo chown root:root /etc/apt/sources.list.d/microsoft-prod.list

安裝 .NET SDK:

$ sudo apt-get update$ sudo apt-get install dotnet-sdk-2.2

Fedora 28 系統上安裝:

增加微軟金鑰,新增 .NET 倉庫源:

$ sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc$ wget -q https://packages.microsoft.com/config/fedora/27/prod.repo$ sudo mv prod.repo /etc/yum.repos.d/microsoft-prod.repo$ sudo chown root:root /etc/yum.repos.d/microsoft-prod.repo

現在, 可以安裝 .NET SDK 了:

$ sudo dnf update$ sudo dnf install dotnet-sdk-2.2

Fedora 27 系統下:

增加微軟金鑰,新增 .NET 倉庫源,命令如下:

$ sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc$ wget -q https://packages.microsoft.com/config/fedora/27/prod.repo$ sudo mv prod.repo /etc/yum.repos.d/microsoft-prod.repo$ sudo chown root:root /etc/yum.repos.d/microsoft-prod.repo

接著安裝 .NET SDK ,命令如下:

$ sudo dnf update$ sudo dnf install dotnet-sdk-2.2

CentOS/Oracle 版本的 Linux 系統上:

增加微軟金鑰,新增 .NET 倉庫源,使其可用:

$ sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm

更新源倉庫,安裝 .NET SDK:

$ sudo yum update$ sudo yum install dotnet-sdk-2.2

openSUSE Leap 版本的系統上:

新增金鑰,使倉庫源可用,安裝必需的依賴包,其命令如下:

$ sudo zypper install libicu$ sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc$ wget -q https://packages.microsoft.com/config/opensuse/42.2/prod.repo$ sudo mv prod.repo /etc/zypp/repos.d/microsoft-prod.repo$ sudo chown root:root /etc/zypp/repos.d/microsoft-prod.repo

更新源倉庫,安裝 .NET SDK,命令如下:

$ sudo zypper update$ sudo zypper install dotnet-sdk-2.2

Ubuntu 18.04 LTS 版本的系統上:

註冊微軟的金鑰和 .NET Core 倉庫源,命令如下:

$ wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb$ sudo dpkg -i packages-microsoft-prod.deb

使 Universe 倉庫可用:

$ sudo add-apt-repository universe

然後,安裝 .NET Core SDK ,命令如下:

$ sudo apt-get install apt-transport-https$sudo apt-get update$ sudo apt-get install dotnet-sdk-2.2

Ubuntu 16.04 LTS 版本的系統上:

註冊微軟的金鑰和 .NET Core 倉庫源,命令如下:

$ wget -q https://packages.microsoft.com/config/ubuntu/16.04/packages-microsoft-prod.deb$ sudo dpkg -i packages-microsoft-prod.deb

然後安裝 .NET core SDK:

$ sudo apt-get install apt-transport-https$ sudo apt-get update$ sudo apt-get install dotnet-sdk-2.2

建立你的第一個應用程式

我們已經成功的在 Linux 機器中安裝了 .NET Core SDK。是時候使用 dotnet 建立第一個應用程式了。

接下來的目的,我們會建立一個名為 ostechnixApp 的應用程式。為此,可以簡單的執行如下命令:

$ dotnet new console -o ostechnixApp

範例輸出:

Welcome to .NET Core!---------------------Learn more about .NET Core: https://aka.ms/dotnet-docsUse 'dotnet --help' to see available commands or visit: https://aka.ms/dotnet-cli-docsTelemetry---------The .NET Core tools collect usage data in order to help us improve your experience. The data is anonymous and doesn't include command-line arguments. The data is collected by Microsoft and shared with the community. You can opt-out of telemetry by setting the DOTNET_CLI_TELEMETRY_OPTOUT environment variable to '1' or 'true' using your favorite shell.Read more about .NET Core CLI Tools telemetry: https://aka.ms/dotnet-cli-telemetryASP.NET Core------------Successfully installed the ASP.NET Core HTTPS Development Certificate.To trust the certificate run 'dotnet dev-certs https --trust' (Windows and macOS only). For establishing trust on other platforms refer to the platform specific documentation.For more information on configuring HTTPS see https://go.microsoft.com/fwlink/?linkid=848054.Getting ready...The template "Console Application" was created successfully.Processing post-creation actions...Running 'dotnet restore' on ostechnixApp/ostechnixApp.csproj...Restoring packages for /home/sk/ostechnixApp/ostechnixApp.csproj...Generating MSBuild file /home/sk/ostechnixApp/obj/ostechnixApp.csproj.nuget.g.props.Generating MSBuild file /home/sk/ostechnixApp/obj/ostechnixApp.csproj.nuget.g.targets.Restore completed in 894.27 ms for /home/sk/ostechnixApp/ostechnixApp.csproj.Restore succeeded.

正如上面的輸出所示的,.NET 已經為我們建立一個控制台型別的應用程式。-o 引數建立了一個名為 “ostechnixApp” 的目錄,其包含有儲存此應用程式資料所必需的檔案。

讓我們切換到 ostechnixApp 目錄,看看裡面有些什麼。

$ cd ostechnixApp/$ lsobj ostechnixApp.csproj Program.cs

可以看到有兩個名為 ostechnixApp.csprojProgram.cs 的檔案,以及一個名為 obj 的目錄。預設情況下, Program.cs 檔案包含有可以在控制台中執行的 “Hello World” 程式程式碼。可以看看此程式碼:

$ cat Program.cs using System;namespace ostechnixApp{     class Program     {       static void Main(string[] args)       {         Console.WriteLine("Hello World!");       }   }}

要執行此應用程式,可以簡單的使用如下命令:

$ dotnet runHello World!

很簡單,對吧?是的,就是如此簡單。現在你可以在 Program.cs 這檔案中寫上自己的程式碼,然後像上面所示的執行。

或者,你可以建立一個新的目錄,如例子所示的 mycode 目錄,命令如下:

$ mkdir ~/.mycode$ cd mycode/

然後執行如下命令,使其成為你的新開發環境目錄:

$ dotnet new console

範例輸出:

The template "Console Application" was created successfully.Processing post-creation actions...Running 'dotnet restore' on /home/sk/mycode/mycode.csproj...Restoring packages for /home/sk/mycode/mycode.csproj...Generating MSBuild file /home/sk/mycode/obj/mycode.csproj.nuget.g.props.Generating MSBuild file /home/sk/mycode/obj/mycode.csproj.nuget.g.targets.Restore completed in 331.87 ms for /home/sk/mycode/mycode.csproj.Restore succeeded.

上的命令會建立兩個名叫 mycode.csprojProgram.cs 的檔案及一個名為 obj 的目錄。用你喜歡的編輯器開啟 Program.cs 檔案, 刪除或修改原來的 “hello world” 程式碼段,然後編寫自己的程式碼。

寫完程式碼,儲存,關閉 Program.cs 檔案,然後執行此應用程式,命令如下:

$ dotnet run

想要檢視安裝的 .NET core SDK 的版本的話,可以簡單的執行:

$ dotnet --version2.2.101

要獲得幫助,請執行:

$ dotnet --help

使用微軟的 Visual Studio Code 編輯器

要編寫程式碼,你可以任選自己喜歡的編輯器。同時微軟自己也有一款支援 .NET 的編輯器,其名為 “Microsoft Visual Studio Code”。它是一款開源、輕量級、功能強大的原始碼編輯器。其內建了對 JavaScript、TypeScript 和 Node.js 的支援,並為其它語言(如 C++、C#、Python、PHP、Go)和執行時態(如 .NET 和 Unity)提供了豐富的擴充套件,已經形成一個完整的生態系統。它是一款跨平台的程式碼編輯器,所以在微軟的 Windows 系統、GNU/Linux 系統和 Mac OS X 系統都可以使用。如果對其感興趣,就可以使用。

想了解如何在 Linux 上安裝和使用,請參閱以下指南。

Linux 中安裝 Microsoft Visual Studio Code

關於 Visual Studio Code editor 中 .NET Core 和 .NET Core SDK 工具的使用,此網頁有一些基礎的教學。想了解更多就去看看吧。

Telemetry

預設情況下,.NET core SDK 會採集使用者使用情況資料,此功能被稱為 Telemetry。採集資料是匿名的,並根據知識共用署名許可分享給其開發團隊和社群。因此 .NET 團隊會知道這些工具的使用狀況,然後根據統計做出決策,改進產品。如果你不想分享自己的使用資訊的話,可以使用順手的 shell 工具把名為 DOTNET_CLI_TELEMETRY_OPTOUT 的環境變數引數設定為 1true,這樣就簡單的關閉此功能了。

就這樣。你已經知道如何在各 Linux 平台上安裝 .NET Core SDK 以及知道如何建立基本的應用程式了。想了解更多 .NET 使用知識的話,請參閱此文章末尾給出的連結。

會爆出更多乾貨的。敬請關注!

祝賀下!

資源