如何在CentOs机器上安装.netcore?

时间:2015-08-06 11:51:31

标签: centos asp.net-core dnx .net-core

我是.NET核心新手,我正在尝试在CentOS计算机上运行一些基本示例。

我已阅读Microsoft文档,并发现这些步骤是我想要做的最接近的指南:

http://dotnet.github.io/core/getting-started/

按照这些步骤后,我可以运行测试/样本应用程序,但只能在单声道下运行(例如,在发布

之后)

$ dnvm使用[版本] -r mono

接着是

$ dnu restore

$ dnx。运行

在.NET Core下运行时($ dnvm使用[版本] -r coreclr) 我收到以下错误:

dnx:/usr/lib64/libstdc++.so.6:版本GLIBCXX_3.4.14' not found (required by dnx) dnx: /usr/lib64/libstdc++.so.6: version GLIBCXX_3.4.15'未找到(dnx要求)

我尝试更新我的gcc但无济于事。 我还发现发布时出现了一些错误:

$ yum install libunwind8 libssl-dev unzip

未找到libunwind8,libssl-dev包。

这两个有关系吗? 有没有人在CentOS上成功安装.NET内核? 如果是这样,你能指点我一个指南或解释这个过程吗?

谢谢!

3 个答案:

答案 0 :(得分:5)

您现在可以使用以下步骤在CentOS 7上安装.NET Core:

yum install centos-release-dotnet
yum install rh-dotnet20

使用它:

scl enable rh-dotnet20 bash
dotnet --info

答案 1 :(得分:3)

以下是我用于在CentOS 7上安装CoreCLR的脚本。我一直在针对VirtualBox上的两个安装进行测试:

我的测试虚拟机

启用了GNOME桌面和网络的CentOS 7

启用了网络连接的CentOS 7(几乎是一个最小的安装,你得到的只是一个终端,但你的网卡可以正常下载)

我回滚到干净安装点重复测试。

百胜包

请注意原始海报试图找出CoreCLR依赖项的yum版本。我相信我已经这样做了。在这一点上,我没有遇到任何问题,但CoreCLR是实验性的,我们的答案是测试版7。

请注意,在安装了GNOME桌面的CentOS安装上运行所有这些步骤是无害的,但我在“注释”中注意到每个步骤都不需要。

这个脚本永远不会安装Mono,应该适合玩CoreClr。这就是说我把它们放在机器上并且它正在工作,但它超出了答案的范围。

## Get DNVM
curl -sSL https://raw.githubusercontent.com/aspnet/Home/dev/dnvminstall.sh | DNX_BRANCH=dev sh && source ~/.dnx/dnvm/dnvm.sh

## install unzip before installing any dnx versions
## (appears to already be installed on CentOS with GNOME)
sudo yum install -y unzip

## Install CoreCLR latest
dnvm install latest -r coreclr

## install libuv
## dnu restore won't operate without this
## (curl already latest version, but ASP.NET on Linux docs currently have this... harmless)
sudo yum -y install automake libtool curl
curl -sSL https://github.com/libuv/libuv/archive/v1.4.2.tar.gz | sudo tar zxfv - -C /usr/local/src
cd /usr/local/src/libuv-1.4.2
sudo sh autogen.sh
sudo ./configure
sudo make
sudo make install
sudo rm -rf /usr/local/src/libuv-1.4.2 && cd ~/
sudo ldconfig

## libunwind.x86_64 is in the epel-release repository
## (Not necessary on GNOME, minimal install does not have this installed)
sudo yum -y install epel-release

## Install these CoreCLR dependencies before dnu restore
sudo yum -y install libunwind gettext libcurl-devel openssl-devel zlib

无法找到Libuv

因此,在完成所有这些之后,您可以使用yeoman asp.net生成器来获取项目。我通常使用ConsoleApplication和WebApplicationBasic进行测试。但是,当您使用

尝试WebApplicationBasic时
dnx kestrel

它爆炸,因为红隼想要使用libuv并且无法加载它。解决此问题的一种方法是设置环境变量:LD_LIBRARY_PATH = / usr / local / lib。

但我对此并不满意。感谢GitHub上的paule96,我了解到你可以创建符号链接,以便在红隼运行时找到libuv:

ln -s /usr/lib64/libdl.so.2 /usr/lib64/libdl
ln -s /usr/local/lib/libuv.so /usr/lib64/libuv.so.1

如果您想知道如何安装node,yeoman和aspnet-generators,请使用:

## rpm for node 0.12 on centos from nodesource
sudo rpm -ivh https://rpm.nodesource.com/pub_0.12/el/7/x86_64/nodejs-0.12.7-1nodesource.el7.centos.x86_64.rpm 

## yeoman and aspnet generators
sudo npm install -g yo
sudo npm install -g generator-aspnet

恭敬地,我会问原始海报更改问题,提到这是针对ASP.NET beta 7.仍然有一些重大变化,我可能不得不更新我的脚本。但如果问题明确指出这一点,我们就不必担心答案会变得陈旧。

例如: 如何在CoreCLR上为CentOS设置ASP.NET 5 Beta 7? 要么 如何在CentOS上设置Beta 7 .NET CoreCLR?

我还要考虑添加asp.net-5标记,除非你真的不认为你的问题适用于此。

答案 2 :(得分:1)

感谢文件,但问题是OP&我原本是关于Microsoft .net impl而不是Mono。据许多人所知,微软在2015年初开始采购.Net,并正在积极尝试将其作为xplat。请参阅:

https://github.com/dotnet/coreclr

https://github.com/aspnet/home