【问题标题】:How do I install .netcore on CentOs machine?如何在 CentOs 机器上安装 .net core?
【发布时间】:2015-10-29 13:24:26
【问题描述】:

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

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

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

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

$ dnvm 使用 [版本] -r 单声道

紧随其后

$dnu 恢复

$ dnx 。运行

)

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

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

我尝试更新我的 gcc 但无济于事。 我也发现发出的时候有一些错误:

$ yum install libunwind8 libssl-dev unzip

找不到的 libunwind8、libssl-dev 包。

这两者有关系吗? 有人在 CentOS 上成功安装了 .NET core 吗? 如果是这样,您能给我指个指南或解释一下流程吗?

谢谢!

【问题讨论】:

  • 你的 Cent-Os 版本是多少?程序相当复杂。我已经将它记录在一个 word 文件中,其中包含许多格式,这使得转换为文本响应变得困难。但是,不幸的是,我对类似问题的回复(带有指向该文档的临时链接)被版主删除了,因为 StackOverflow 政策不接受简单引用外部链接的答案:(
  • 我使用的是 CentOS 6.6。我也发现了这个:github.com/aspnet/Home/issues/806 这基本上是说,目前核心 clr 不适用于 Unix。
  • 安装在 centos 6.5 上为我工作。我可以传输文档化的程序,即通过您选择的方式、ftp、电子邮件、... 的 word 文档,除非通过(不接受的)stackoverflow 链接。使用此过程,您还可以创建一个目录以放置在 CD 或 USB 密钥上,以进行离线安装。
  • @Graffito - 您或其他人能否将您的文件公开?我想让它自己在 RHEL 下工作,并希望你的文档会有所帮助。谢谢!

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


【解决方案1】:

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

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

使用它:

scl enable rh-dotnet20 bash
dotnet --info

【讨论】:

    【解决方案2】:

    这是我用来在 CentOS 7 上安装 CoreCLR 的脚本。我一直在针对 VirtualBox 上的两次安装进行测试:

    我的测试虚拟机

    启用 GNOME 桌面和网络的 CentOS 7

    启用网络的 CentOS 7(几乎是最小的安装,你得到的只是一个终端,但你的网卡可以工作,所以你可以下载东西)

    我回滚到全新安装点以重复测试。

    Yum 包

    请注意,原始发帖人一直在试图找出 CoreCLR 依赖项的 yum 版本。我相信我已经做到了。在这一点上,我没有遇到任何问题,但 CoreCLR 是实验性的,我们正在测试 7 来解决这个问题。

    请注意,在安装了 GNOME 桌面的 CentOS 安装中运行所有这些步骤是无害的,但我确实在“cmets”中注明了您不需要的每个步骤。

    这个脚本从不安装 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
    

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

    但我对此并不满意。感谢 GitHub 上的paule96,我了解到您可以创建符号链接,以便在 kestrel 运行时可以找到 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 的。仍然需要进行重大更改,我可能不得不更新我的脚本。但如果问题清楚地说明了这一点,我们就不必担心答案会过时。

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

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

    【讨论】:

    • beta 8 似乎有重大变化。 ASP.NET 团队删除了 CentOS 上 CoreCLR 和 beta 8 变体的说明。不过,如果你获得 beta 7 dnx,它仍然可以工作。
    • Beta 8(及更高版本)只需要多一个库 - libicu。但是它需要它的特定版本(52),并且无法升级已安装的版本,因此需要横向破解。 fsoikin.blogspot.com/2015/12/…
    【解决方案3】:

    感谢您的文档,但我和 OP 的问题都是关于 Microsoft .net impl 而不是 Mono。很多人可能都知道,微软在 2015 年初开源了 .Net,并正在积极尝试使其成为 xplat。请看:

    https://github.com/dotnet/coreclr

    https://github.com/aspnet/home

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-02
      • 2020-09-23
      • 2017-08-22
      • 1970-01-01
      • 2016-09-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多