.NET跨平台:在CentOS上编译dnx并运行ASP.NET 5示例程序

在之前的博文中我们在 Ubuntu 上成功编译出了 dnx ,并且用它成功运行了%26nbsp;ASP.NET 5 示例程序。在这篇博文中我们将 Ubuntu 换成 CentOS。

目前 dnx 的编译需要用到 mono,所以先要安装 mono,而且最好是用最新的 mono 源代码进行编译并安装。

我们实际成功编译的操作步骤如下(假设将 mono 安装到%26nbsp;/data/mono_build 目录):

mkdir /data/mono_build
PATH=/data/mono_build/bin:$PATH
git clone https://github.com/mono/mono.git
cd mono
./autogen.sh --prefix=/data/mono_build
make get-monolite-latest
make
make install

注:开始没有使用%26nbsp;make get-monolite-latest,结果在 make 时因为找不到 mcs 而失败。

如果想始终使用这个自己编译的 mono,需要在 ~/.bash_profile 中添加如下的的配置:

export PATH=/data/mono_build/bin:$PATH

接下来用下面的命令安装 dnvm :

curl -sSL https://raw.githubusercontent.com/aspnet/Home/dev/dnvminstall.sh | DNX_BRANCH=dev sh %26amp;%26amp; source ~/.dnx/dnvm/dnvm.sh

然后就可以编译 dnx 了:

# ./build.sh
Installing 'KoreBuild 0.2.1-beta6-10166'.
Successfully installed 'KoreBuild 0.2.1-beta6-10166'.
Installing 'Sake 0.2'.
Successfully installed 'Sake 0.2'.
Determining latest version
Latest version is 1.0.0-beta6-12085 
Downloading dnx-mono.1.0.0-beta6-12085 from https://www.myget.org/F/aspnetvnext/api/v2
Download: https://www.myget.org/F/aspnetvnext/api/v2/package/dnx-mono/1.0.0-beta6-12085
######################################################################## 100.0%
Installing to /root/.dnx/runtimes/dnx-mono.1.0.0-beta6-12085
Adding /root/.dnx/runtimes/dnx-mono.1.0.0-beta6-12085/bin to process PATH
Setting alias 'default' to 'dnx-mono.1.0.0-beta6-12085'

...

Attempting to build package from 'dnx-mono.nuspec'.
Successfully created package '/data/git/dnx/artifacts/build/dnx-mono.1.0.0-t150618141518.nupkg'.
info: Target package

编译成功后,就可以用%26nbsp;artifacts/build/dnx-coreclr-linux-x64/bin 中的 dnx 运行 ASP.NET 5 示例程序了。

先从 GitHub 上签出 ASP.NET 5 示例程序:

https://github.com/aspnet/Home.git

运行前准备:

1)启用 dnvm

source /root/.dnx/dnvm/dnvm.sh

2)安装 openssl

yum install -y openssl-devel

不然会出现下面的错误:

System.TypeInitializationException: The type initializer for 'libcrypto' threw an exception. 
---%26gt; System.Security.Cryptography.CryptographicException: Error occurred during a cryptographic operation.
   at Interop.libcrypto..cctor()

3)编译并安装%26nbsp;libuv(为了运行kestrel)

git clone https://github.com/libuv/libuv.git
sh autogen.sh
./configure
make
make install
ldconfig

不然会出现下面的错误:

System.InvalidOperationException: Unable to load libuv. Make sure libuv is installed and available as libuv.so.1

然后分别运行 Home/samples/latest/ 中的三个 ASP.NET 5 示例程序(运行前先要运行 dnu restore)。

1)ConsoleApp

[root@server1 ConsoleApp]# /data/git/dnx/artifacts/build/dnx-coreclr-linux-x64/bin/dnx . run
Hello World

2)HelloWeb

[root@server1 HelloWeb]# /data/git/dnx/artifacts/build/dnx-coreclr-linux-x64/bin/dnx . kestrel
Started

3)HelloMvc

[root@server1 HelloMvc]# /data/git/dnx/artifacts/build/dnx-coreclr-linux-x64/bin/dnx . kestrel
Started

在 CentOS 上也成功体验了一下跨平台的 .NET。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值