[ASP.NET Core 3框架揭秘] 跨平台開發體驗: Linux


如果想體驗Linux環境下開發.NET Core應用,我們有多種選擇。一種就是在一台物理機上安裝原生的Linux,我們可以根據自身的喜好選擇某種Linux Distribution,目前來說像RHEL、Ubuntu、Debian、Fedora、CentOS和SUSE這些主流的Distribution都是支持的。如果讀者朋友們覺得這種方式比較麻煩,我們也可以采用虛擬機的形式安裝相應的Linux Distribution,比如我經常使用的都是安裝在VirtualBox上的Ubuntu。對於X64 Windows 10的用戶來說,我們有了第三種更為方便快捷的選擇,那就是使用Windows 10提供的Linux子系統(WSL:Windows Subsystem for Linux),目前最新版本為WSL 2。

一、啟用Linux子系統

WSL 2要求操作系統必須是“Windows 10 build 18917 ”或者更高的版本。在Windows 10上啟用WSL 2只需要將“Virtual Machine Platform” 和“Windows Subsystem for Linux”這兩個特性開啟就可以了。我們可以采用兩種方式來啟用這兩個特性,第一種在PowerShell中以如下的方式執行Enable-WindowsOptionalFeature命令(該命令需要以管理員身份執行)。

Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

我們也可以采用可視化的方式來開啟這兩個特性。具體來說,我們可以通過“控制面板(Control Panel)”>“程序與功能(Programs and Features)”打開如下圖所示的“程序與功能”對話框,並選擇“Turn Windows features on or off)”打開“Windows Features”對話框。在勾選了“Virtual Machine Platform”和“Windows Subsytem for Linux”選項並確定並重啟機器之后,針對Linux的Windows子系統就被啟用了。

1-17

二、安裝Linux

在啟用WSL之后,我們可以根據需要安裝對應的Linux Distribution。最方便的方式就是直接在Microsoft Store中下載並安裝對應的Linux Distribution,比如Microsoft Store為我們提供了如下圖所示的免費版Ubuntu 18.04 LTS。

1-18

如果Microsoft Store不可用(比如我的操作系統就是沒有Microsoft Store的Windows 10 Enterprise LTSC版本),我們可以直接利用curl.exe or the Invoke-WebRequest以命令行的方式下載Linux安裝包。下面列出了幾種常用的Linux Distribution的下載地址。

  • Ubuntu 18.04: https://aka.ms/wsl-ubuntu-1804
  • Ubuntu 18.04 ARM: https://aka.ms/wsl-ubuntu-1804-arm
  • Ubuntu 16.04: https://aka.ms/wsl-ubuntu-1604
  • Debian GNU/Linux: https://aka.ms/wsl-debian-gnulinux
  • Kali Linux: https://aka.ms/wsl-kali-linux
  • OpenSUSE: https://aka.ms/wsl-opensuse-42
  • SLES: https://aka.ms/wsl-sles-12

當Linux被成功安裝之后,我們可以在CMD命令行中執行bash命令進入Linux Bash Shell。如下圖所示,我們在CMD命令行中執行bash命令之后會自動進入Linux Bash Shell。我們在Bash Shell中執行“lsb_release -a”命令輸出當前安裝的Linux Distribution的版本信息。如果想恢復到CMD命令行模式,我們只需要執行exit命令退出Bash Shell即可。

1-19

作為主系統的Windows和Linux子系統可以共享網絡系統和文件系統。Windows下的文件系統直接掛載到“/mnt”目錄下,所以Windows下的文件或者目錄路徑加上“/mnt”前綴就變成了基於Linux子系統下的路徑。如上圖所示,CMD命令行環境下的當前工作目錄為“c:\Users\jinnan”,當我們切換到Bash Shell后,當前工作目錄其實並沒有發生變化,只是路徑變成了“/mnt/c/Users/jinnan”而已。

三、安裝開發環境

如果我們想在Linux下運行.NET Core應用,我們也只需要安裝.NET Core SDK就可以了。針對不同的Linux Distribution,.NET Core SDK的安裝略有不同。對於主流的Linux發行版本(RHEL、Ubuntu、Debian、Fedora、CentOS和SUSE等), .NET Core官方站點上給出了安裝.NET Core SDK的詳細教程。對於我們安裝的Ubuntu 18.04 LTS,.NET Core 3.0 SDK可以執行如下的命令進行安裝。

~$ sudo apt-get update
~$ sudo apt-get install apt-transport-https
~$ sudo apt-get install dotnet-sdk-3.0

安裝完成之后,我們可以執行dotnet --info命令查看當前.NET Core SDK的基本信息,如果得到如下圖所示的輸出結果,那就證明.NET Core SDK 3.0被成功安裝。

1-20

四、創建一個ASP.NET Core應用

.NET Core SDK同樣為Linux提供了dotnet這個重要的命令行工具,這意味着我們同樣可以利用它提供的腳手架模板創建相應的.NET Core應用。這次我們直接創建一個空的ASP.NET Core 應用,為此我們在執行dotnet new命令的時候將模板名稱指定為“web”。如下圖所示,我們在執行dotnet new命令時的當前工作目錄為“/mnt/c/helloworld”,也就是主系統Windows下的“c:\helloworld”,我們列出了該目錄下的所有文件和子目錄。

1-21

和在Windows和Mac OS X下利用腳手架命令創建的應用一樣,我們在Linux下同樣可以在無需對它們作任何更改的情況下直接運行它們,為此我們只需要在當前應用所在的目錄下執行dotnet run命令即可。如下圖所示,啟動后的ASP .NET Core應用默認會綁定在5000(HTTP)和5001(HTTPS)端口進行請求監聽,由於Linux是當前Windows的子系統而非虛擬機,所以主子系統可以共享網絡,因此我們利用瀏覽器請求地址“http://localhost:5000”可以訪問這個應用的主頁。

1-22

[ASP.NET Core 3框架揭秘] 跨平台開發體驗: Windows [上篇]
[ASP.NET Core 3框架揭秘] 跨平台開發體驗: Windows [中篇]
[ASP.NET Core 3框架揭秘] 跨平台開發體驗: Windows [下篇]
[ASP.NET Core 3框架揭秘] 跨平台開發體驗: Mac OS
[ASP.NET Core 3框架揭秘] 跨平台開發體驗: Linux
[ASP.NET Core 3框架揭秘] 跨平台開發體驗: Docker


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM