Linux (Windows Linux子系統)

來源:互聯網
上載者:User

標籤:mac os x   二進位   span   更新   內容   http   詳細   net   tde   

Linux (Windows Linux子系統)

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

一、啟用Linux子系統

接下來我們來簡單介紹一下如何啟用Linux子系統。首選需要提醒讀者朋友們的是:只有64位的Windows 10周年紀念版本才提供對Linux子系統的支援,如果你的Windows 10版本比較老,你需要將它升級到較新的版本。在這之後,我們需要開啟系統的開發人員模式(Developer Mode),對此我們只需要選擇“設定(Settings)”>“更新與安全(Update and Security)”開啟如下這個對話方塊。我們只需在左側選擇“針對開發人員(For developers)”,並在右側提供的三個選項中選擇“開發人員模式(Developer Model)”。

系統的開發人員模式被啟用之後,我們需要通過“控制台(Control Panel)”>“程式與功能(Programs and Features)”開啟如所示的“程式與功能”對話方塊,並選擇“啟用或關閉Windows功能(Turn Windows features on or off)”開啟“Windows功能”對話方塊。當我們勾選“適用於Linux的Windows子系統(Windows Subsytem for Linux”)選項並重啟後,針對Linux的Windows子系統特性被正式啟用。

當針對Linux的Windows子系統特性其中之後,系統賦予了我們一個名為lxrun的命令來管理這個子系統,我們可以利用它來安裝、卸載和更新Linux系統。到目前為止,我們僅僅是開啟了Linux子系統這個Windows特性,並沒有一個具體的Linux Distribution被安裝,所以我們現在需要做的就是以如所示的形式執行“lxrun /install”命令安裝一個具體的Linux Distribution,該命令目前為我們安裝的是Ubuntu。Linux子系統完成之後,我們只需要制定使用者名稱和密碼建立一個登入帳號即可。

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

作為主系統的Windows和Linux子系統可以共用網路系統和檔案系統。Windows下的檔案系統直接掛載到“/mnt”目錄下,所以Windows下的檔案或者目錄路徑加上行“/mnt”首碼就變成了基於Linux子系統下的路徑。1-25所示,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的詳細教程,在這裡我們針對WSL的版本(Ubuntu 16.04.2 )簡單介紹一下如何安裝對應的SDK。

對於Ubuntu下安裝.NET Core SDK,我們只需要執行apt-get安裝對應的deb包就可以了,不過在這之前我們需要確保該包所在Feed的URL在本地被註冊。至於該Feed URL的註冊,則主要涉及到兩個步驟,第一個步驟是註冊用於檢驗deb包完整性的簽名密鑰(Signature Key)檔案,該密鑰編碼後的內容(ASCII Armor)可以直接從地址“https://packages.microsoft.com/keys/microsoft.asc”下載。為了在本地註冊該密鑰檔案,我們執行如下的命令下載該檔案並執行“gpg --dearmor”將常值內容轉換成二進位儲存在檔案“microsoft.gpg”,最終將後者儲存到受信任密鑰目錄“/etc/apt/trusted.gpg.d”下。

~$ curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg~$ sudo mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg

完成針對簽名密鑰檔案的註冊之後,我們可以執行如下命令將在表示deb包源的“/etc/apt/sources.list.d”目錄下建立一個dotnetdev.list檔案,.NET Core SDK所在deb包對應的Feed URL(https://packages.microsoft.com/repos/microsoft-ubuntu-xenial-prod)就包含在這個檔案中。在這之後微軟通過該Feed提供的所有的deb包都可以直接通過apt-get命令安裝。

~$ sudo sh -c ‘echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-xenial-prod xenial main" > /etc/apt/sources.list.d/dotnetdev.list‘

當所在deb包的Feed被成功註冊並通過執行apt-get update命令作相應同步操作之後,我們就可以按照如下的方式執行apt-get install命令安裝.NET Core SDK了。值得一提的時候,如果你在本地曾經安裝過之前的版本,你最好先將它們卸載。

~$ sudo apt-get update~$ sudo apt-get install dotnet-sdk-2.0.0

安裝完成之後,我們可以執行dotnet –info命令查看當前.NET Core SDK的基本資料,如果得到如所示的輸出結果,那就證明.NET Core SDK被成功安裝。

三、利用命令列建立一個ASP.NET Core MVC應用

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

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

 

.NET Core多平台開發體驗

.NET Core多平台開發體驗[1]: Windows
.NET Core多平台開發體驗[2]: Mac OS X
.NET Core多平台開發體驗[3]: Linux
.NET Core多平台開發體驗[4]: Docker

Linux (Windows Linux子系統)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.