macOS10.11で、ASP.NET Coreアプリを動かす
.NET Coreは mac でも動くとのこと。
ウチではWindowsとLinuxが主ですが、mac使いのプログラマも多いですよね。
macでの.NET Coreは、さて、どんなものか。
ざっと試してみます。
Homebrewをインストール
どうやら、最新のopenssl
が要るんだぜ、と。
Homebrew
というヤツを入れるのが手っ取り早いぜ、とのこと。
どうやら、yum
のようなパッケージ管理システムのようです。
いれます。
mac-05rw:~ 05rw$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" ==> This script will install: /usr/local/bin/brew /usr/local/share/doc/homebrew --- 中略 --- - Run `brew help` to get started - Further documentation: https://git.io/brew-docs mac-05rw:~ 05rw$
opensslをインストール
続いてご指名のopenssl
を、貰ってきます。
mac-05rw:~ 05rw$ brew install openssl ==> Downloading https://homebrew.bintray.com/bottles/openssl-1.0.2j.el_capitan.b ######################################################################## 100.0% ==> Pouring openssl-1.0.2j.el_capitan.bottle.tar.gz --- 中略 --- CPPFLAGS: -I/usr/local/opt/openssl/include ==> Summary 🍺 /usr/local/Cellar/openssl/1.0.2j: 1,695 files, 12M
なんか旨そうなの見えてますけど。
リンクも張りますよ。
mac-05rw:~ 05rw$ mkdir -p /usr/local/lib mac-05rw:~ 05rw$ ln -s /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib /usr/local/lib/ mac-05rw:~ 05rw$ ln -s /usr/local/opt/openssl/lib/libssl.1.0.0.dylib /usr/local/lib/
.NET Core SDKをインストール
公式バイナリ配布ページからtar玉を、ver1.1.0
とver1.0.1
の二つを貰ってきます。
解凍先フォルダをバージョンごとに
- ver1.1.0用 - ./dotnet
- ver1.0.1用 - ./dotnet101
のように二つ作り、それぞれを解凍します。
mac-05rw:~ 05rw$ cd Downloads/ mac-05rw:Downloads 05rw$ ls -alF total 426504 drwx------+ 5 05rw staff 170 12 5 18:29 ./ drwxr-xr-x+ 13 05rw staff 442 12 5 18:39 ../ -rw------- 1 05rw staff 0 11 26 16:33 .localized -rw-r--r--@ 1 05rw staff 106342400 12 5 18:21 dotnet-dev-osx-x64.1.0.0-preview2-003131.tar -rw-r--r--@ 1 05rw staff 112025600 12 5 18:21 dotnet-dev-osx-x64.1.0.0-preview2-1-003177.tar mac-05rw:Downloads 05rw$ mkdir dotnet101 mac-05rw:Downloads 05rw$ mkdir dotnet mac-05rw:Downloads 05rw$ tar xvf dotnet-dev-osx-x64.1.0.0-preview2-003131.tar -C ./dotnet101/ x ./ x ./dotnet x ./host/ --- 中略 --- x ./host/fxr/ x ./host/fxr/1.0.1/ x ./host/fxr/1.0.1/libhostfxr.dylib mac-05rw:Downloads 05rw$ tar xvf dotnet-dev-osx-x64.1.0.0-preview2-1-003177.tar -C ./dotnet/ x ./ x ./dotnet x ./host/ --- 中略 --- x ./host/fxr/ x ./host/fxr/1.1.0/ x ./host/fxr/1.1.0/libhostfxr.dylib
まず新しい方、ver1.1.0を、/usr/local/opt/dotnet/
に配置します。
mac-05rw:Downloads 05rw$ sudo mv ./dotnet /usr/local/opt/dotnet
ver1.0.1の方は、テキストファイルとdotnet
コマンドを削除して...
mac-05rw:Downloads 05rw$ ls -alF ./dotnet101/ total 352 drwxr-xr-x 8 05rw staff 272 12 5 19:25 ./ drwx------+ 6 05rw staff 204 12 5 19:16 ../ -rw-r--r-- 1 05rw staff 9410 6 16 09:15 LICENSE.txt <- これと、 -rw-r--r-- 1 05rw staff 8103 6 16 09:15 ThirdPartyNotices.txt <- これと、 -rwxr-xr-x 1 05rw staff 155976 6 16 09:19 dotnet* <- これを削除 drwxr-xr-x 3 05rw staff 102 9 1 07:59 host/ drwxr-xr-x 3 05rw staff 102 9 1 07:59 sdk/ drwxr-xr-x 3 05rw staff 102 9 1 07:59 shared/ mac-05rw:Downloads 05rw$ rm ./dotnet101/*.txt mac-05rw:Downloads 05rw$ rm ./dotnet101/dotnet
残った3つのフォルダを、/usr/local/opt/dotnet/
に上書きコピーします。
mac-05rw:Downloads 05rw$ cp -Rf ./dotnet101/* /usr/local/opt/dotnet/
二つのバージョンが、併存してますね!
mac-05rw:Downloads 05rw$ ls -alF /usr/local/opt/dotnet/host/fxr/ total 0 drwxr-xr-x 4 05rw staff 136 12 5 19:20 ./ drwxr-xr-x 3 05rw staff 102 12 5 19:12 ../ drwxr-xr-x 3 05rw staff 102 12 5 19:20 1.0.1/ drwxr-xr-x 3 05rw staff 102 12 5 19:12 1.1.0/
/usr/local/bin/
の下へ、シンボリックリンクを作ります。
mac-05rw:Downloads 05rw$ sudo ln -s /usr/local/opt/dotnet/dotnet /usr/local/bin/
以上でインストール終了です。
mac-05rw:Downloads 05rw$ dotnet --version 1.0.0-preview2-1-003177
動いてます!
ASP.NET Coreプロジェクトを実行してみる
ソースをgitから貰ってきて、動かしてみましょう。
CentOS7-GitBucketサーバ のIPアドレスをhosts
に追記してから、git clone
します。
mac-05rw:Downloads 05rw$ git clone http://git.centos7.local/git/05rw/dotnet_sample.git Cloning into 'dotnet_sample'... Username for 'http://git.centos7.local': 05rw Password for 'http://05rw@git.centos7.local': remote: Counting objects: 102, done remote: Finding sources: 100% (102/102) remote: Getting sizes: 100% (95/95) remote: Total 102 (delta 4), reused 102 (delta 4) Receiving objects: 100% (102/102), 517.99 KiB | 0 bytes/s, done. Resolving deltas: 100% (4/4), done. Checking connectivity... done.
ソースがもらえました。
プロジェクトのルートに移動して、restore
とbuild
を試します...。
mac-05rw:Downloads 05rw$ cd dotnet_sample/src/WebApplication1 mac-05rw:WebApplication1 05rw$ dotnet restore Welcome to .NET Core! --------------------- Learn more about .NET Core @ https://aka.ms/dotnet-docs. Use dotnet --help to see available commands or go to https://aka.ms/dotnet-cli-docs. --- 中略 --- log : Writing lock file to disk. Path: /Users/vm/Downloads/dotnet_sample/src/WebApplication1/project.lock.json log : ./dotnet_sample/src/WebApplication1/project.json log : Restore completed in 44161ms. mac-05rw:WebApplication1 05rw$ dotnet build Project WebApplication1 (.NETCoreApp,Version=v1.0) will be compiled because expected outputs are missing Compiling WebApplication1 for .NETCoreApp,Version=v1.0 Compilation succeeded. 0 Warning(s) 0 Error(s) Time elapsed 00:00:03.0704619
おおー、ビルドも通りましたね。
実行してみますか。
mac-05rw:WebApplication1 05rw$ dotnet run Hosting environment: Production Content root path: /Users/vm/Downloads Now listening on: http://localhost:5000 Application started. Press Ctrl+C to shut down.
待機状態になりました!
ブラウザからアクセスしてみます。
せっかくGUIがあるので、ローカルのSafariから...
動いてます!
今回分のソースコードはこちら。
前回から特に変更ありません。
github.com