Getting started with the new .NET Execution Environment (DNX) for .NET Core on Mac/LinuxThe
.NET Execution Environment (DNX) provides a consistent way to build and run cross-platform .NET projects and is the basis for ASP.NET 5. In previous preview releases we provided DNXs for the full .NET Framework, Mono and .NET Core. The .NET Core support was initially limited to Windows, but in this release DNX support for .NET Core is now available in a limited fashion for both Mac and Linux. You can find instructions for installing DNX for .NET Core on Mac and Linux in our documentation.
という感じで、自信満々なので試してみる。
$ dnvm list
Active Version Runtime Arch OperatingSystem Alias
------ ------- ------- ---- --------------- -----
* 1.0.0-beta7 mono linux/darwin default
1.0.0-beta6 mono linux/darwin
と普通にdnvm upgradeをかけるとmonoバージョンでアップグレードされるので、以下のようにランタイム指定をしてアップグレードします。
$ dnvm upgrade -r coreclr
Determining latest version
Latest version is 1.0.0-beta7
Downloading dnx-coreclr-linux-x64.1.0.0-beta7 from https://www.nuget.org/api/v2
Download: https://www.nuget.org/api/v2/package/dnx-coreclr-linux-x64/1.0.0-beta7
######################################################################## 100.0%
Installing to /home/ishisaka/.dnx/runtimes/dnx-coreclr-linux-x64.1.0.0-beta7
Adding /home/ishisaka/.dnx/runtimes/dnx-coreclr-linux-x64.1.0.0-beta7/bin to process PATH
Updating alias 'default' to 'dnx-coreclr-linux-x64.1.0.0-beta7'
$ dnvm list
Active Version Runtime Arch OperatingSystem Alias
------ ------- ------- ---- --------------- -----
1.0.0-beta7 mono linux/darwin
1.0.0-beta6 mono linux/darwin
* 1.0.0-beta7 coreclr x64 linux default
x64版のCore CLRがdefaultに設定されています。
動作確認するために、GitHubのASP.NET/HOMEをCloneしてサンプルを入手します。
~/src/aspnet$ git clone https://github.com/aspnet/Home.git
Beta 7のサンプルがあるので、サンプルのディレクトリに移動し、ライブラリのレストアをかけます。
~/src/aspnet$ cd Home
~/src/aspnet/Home$ cd samples/
~/src/aspnet/Home/samples$ cd 1.0.0-beta7
~/src/aspnet/Home/samples/1.0.0-beta7$ cd HelloWeb
~/src/aspnet/Home/samples/1.0.0-beta7/HelloWeb$ dnu restore
Microsoft .NET Development Utility CoreCLR-x64-1.0.0-beta7-15532
----------
System.TypeInitializationException: The type initializer for 'System.Net.Http.CurlHandler' threw an exception. ---> System.DllNotFoundException: Unable to load DLL 'libcurl': The specified module could not be found.
(Exception from HRESULT: 0x8007007E)
うん?ということで、libcurlがないとExceptionを出します。Unable to load DLLというメッセージとかHRESULTとか、本当にLinuxなのかという感じを醸し出しますね。このクソMSがーとか思いましたが、冷静になってlibcurlをインストール。
すでにきよくらさんが同じ道を通っていた。
Ubuntu Desktop で ASP.NET 5 Beta7 を CoreCLR で動かす – きよくらの備忘録
$ sudo apt-get install libcurl4-openssl-dev
今度はちゃんとレストアできます。
$ dnu restoreMicrosoft .NET Development Utility CoreCLR-x64-1.0.0-beta7-15532
GET https://nuget.org/api/v2/
OK https://nuget.org/api/v2/ 4164ms
Restoring packages for /home/ishisaka/src/aspnet/Home/samples/1.0.0-beta7/HelloWeb/project.json
GET https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Server.Kestrel'
GET https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Diagnostics'
GET https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Hosting'
GET https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Server.IIS'
.
.
.
.
Writing lock file /home/ishisaka/src/aspnet/Home/samples/1.0.0-beta7/HelloWeb/project.lock.json
Restore complete, 43584ms elapsed
NuGet Config files used:
/home/ishisaka/.config/NuGet/NuGet.Config
/home/ishisaka/src/aspnet/Home/samples/1.0.0-beta7/NuGet.Config
Feeds used:
https://nuget.org/api/v2/
Installed:
136 package(s) to /home/ishisaka/.dnx/packages
Blogに書かれていたように、インストールSourceが表示されるようになりました。
.が要らなくなったdnxでkestrel HTTPサーバーを起動します。
$ dnx kestrel
Application started. Press Ctrl+C to shut down.
ポート5004でサーバー起動します。
ところで。
@atsushieno とうぜんそんなところはよまないではじめるのがまなー #マテ
— Tadahiro Ishisaka (@ishisaka) 2015, 9月 3
良い子はドキュメント読んでから始めような!!
コメント
[…] a success story.Publish date: 9/3/2015Social sharing volume in the past week: 0 0 0 13 “ASP.NET 5 Beta7 with CoreCLR on Ubuntu 15.04”Getting started with the new .NET Execution Environment (DNX) for .NET Core on […]
[…] “ASP.NET 5 Beta7 with CoreCLR on Ubuntu 15.04” Getting started with the new .NET Execution Environment (DNX) for .NET Core on Mac/LinuxThe […]