在Linux Ubuntu上编译DNX

DNX是.NET Execution Environment,前身是XRE,XRE的前身是KRuntime,项目网址:https://github.com/aspnet/DNX 。

签出DNX的代码:

git clone https://github.com/aspnet/DNX.git --recursive

安装Mono:

apt-get install mono-complete

运行./build.sh命令进行编译,出现错误:

WARNING: Invalid certificate received from server. Error code: 0xffffffff800b010a
WARNING: Invalid certificate received from server. Error code: 0xffffffff800b010a
WARNING: Invalid certificate received from server. Error code: 0xffffffff800b010a
WARNING: Invalid certificate received from server. Error code: 0xffffffff800b010a
Unable to find package ‘KoreBuild‘.
WARNING: Error getting response stream (Write: The authentication or decryption has failed.): SendFailure
WARNING: Error getting response stream (Write: The authentication or decryption has failed.): SendFailure
Unable to find version ‘0.2‘ of package ‘Sake‘.

通过下面的命令可以修复这个问题:

CERTMGR=/usr/local/bin/certmgr
sudo $CERTMGR -ssl -m https://go.microsoft.com
sudo $CERTMGR -ssl -m https://nugetgallery.blob.core.windows.net
sudo $CERTMGR -ssl -m https://nuget.org
sudo $CERTMGR -ssl -m https://www.myget.org/F/aspnetvnext/
mozroots --import --sync

继续编译,出现下面的错误:

./build.sh: 31: ./build.sh: source: not found
./build.sh: 35: ./build.sh: dnvm: not found

将build.sh文件中的第一行由 #!/bin/sh  改为  #!/usr/bin/env bash ,错误消失。

错误的原因是:在Ubuntu中,/bin/sh指向的是/bin/dash,而dash不支持source命令,详见source command not found in sh shell

继续编译,出现下面的错误:

info: Exec
info:   program: kpm
info:   commandline: restore
info:   workingdir: src/Microsoft.Framework.ApplicationHost
warn: ApplicationName=‘kpm‘, CommandLine=‘restore‘, CurrentDirectory=‘src/Microsoft.Framework.ApplicationHost‘,
Native error= Cannot find the specified file

查看makefile.shade文件(这是Sake的配置文件),发现问题出在下面的配置部分

for each=‘var projectFile in Files.Include("src/*/project.json")‘
        exec program=‘cmd‘ commandline=‘/C kpm restore‘ if=‘!IsMono‘ workingdir="${Path.GetDirectoryName(projectFile)}"
        exec program=‘kpm‘ commandline=‘restore‘ if=‘IsMono‘ workingdir="${Path.GetDirectoryName(projectFile)}"
for each=‘var projectFile in Files.Include("test/*/project.json")‘
        exec program=‘cmd‘ commandline=‘/C kpm restore‘ if=‘!IsMono‘ workingdir="${Path.GetDirectoryName(projectFile)}"
        exec program=‘kpm‘ commandline=‘restore‘ if=‘IsMono‘ workingdir="${Path.GetDirectoryName(projectFile)}"
for each=‘var projectFile in Files.Include("samples/*/project.json")‘
        exec program=‘cmd‘ commandline=‘/C kpm restore‘ if=‘!IsMono‘ workingdir="${Path.GetDirectoryName(projectFile)}"
        exec program=‘kpm‘ commandline=‘restore‘ if=‘IsMono‘ workingdir="${Path.GetDirectoryName(projectFile)}"

出错是因为找不到kpm命令。

已经在github上针对这个问题提交了issue,等这个问题解决后再继续编译。

时间: 2024-12-29 07:50:03

在Linux Ubuntu上编译DNX的相关文章

.NET跨平台:在Linux Ubuntu上编译coreclr/corefx/dnx(20150617)

编译时间:北京2015年6月17日上午 操作系统:Ubuntu 14.04.2 LTS Mono版本:Mono JIT compiler version 4.3.0 (master/3445ac5 Tue Jun 16 20:43:48 CST 2015) 一.编译coreclr 成功! Repo successfully built. Product binaries are available at /data/git/coreclr/bin/Product/Linux.x64.Debug

尝试在Mac上编译DNX

自从XRE改名为DNX至今,从来没有在Mac OS X上成功编译过DNX.一直很纳闷,难道DNX的开发人员不用Mac?今天突然明白了,DNX的开发人员真的不用Mac.而且DNX用的2个持续集成服务AppVeyor与Travis,一个是Windows环境,一个是Linux环境,就是没有Mac OS X环境. 看来不能指望DNX的开发人员短期内解决这个问题了,只能自己动手. 编译的错误信息如下(编译命令./build.sh): Restore complete, 725ms elapsed info

在Mac/Linux/Windows上编译corefx遇到的问题及解决方法

这两天尝试在Mac/Linux/Windows三大平台上编译.NET跨平台三驾马车(coreclr/corefx/dnx)之一的corefx(.NET Core Framework),结果三个平台的编译都失败了.后来一一都解决了,在这篇博文中分享一下. (一) 在Mac上编译corefx遇到的错误如下: /git/dotnet/corefx/dir.props(214,5): warning : The Roslyn targets do not exist- Roslyn will not b

【转】Ubuntu 上编译Android出现cannot find -lstdc++解决办法

[转]Ubuntu 上编译Android出现cannot find -lstdc++解决办法 在Ubuntu 12.04 x86_64机器上编译Android出现下面错误,是因为找不到32bit的libstdc++.so库. /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6/libstdc++.so when searching for -lstdc++ /usr/bin/ld: skipping incom

[转]Linux Ubuntu上架设FTP

Linux Ubuntu上架设FTP http://www.blogjava.net/stonestyle/articles/369104.html 操作系统:ubuntu (GNU/Linux) 为了在机子上架设ftp服务器,我们需要安装ftp服务器软件.Linux下具有代表性的ftp服务器软件有Wu-FTP,ProFTP和Vsftp.Wu-FTP(Washington University FTP)由美国华盛顿大学开发.它的功能强大,配置较复制.由于开发时间较早,应用十分广泛,也因此成为黑客

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

在之前的博文中我们在 Ubuntu 上成功编译出了 dnx ,并且用它成功运行了 ASP.NET 5 示例程序.在这篇博文中我们将 Ubuntu 换成 CentOS. 目前 dnx 的编译需要用到 mono,所以先要安装 mono,而且最好是用最新的 mono 源代码进行编译并安装. 我们实际成功编译的操作步骤如下(假设将 mono 安装到 /data/mono_build 目录): mkdir /data/mono_build PATH=/data/mono_build/bin:$PATH g

在Linux CentOS上编译CoreCLR

经过几天的努力,终于解决了在CentOS上编译CoreCLR的问题.最终发现问题是CMAKE_C_FLAGS的设置引起的. 只要在“src/pal/tools/clang-compiler-override.txt”中删除“SET (CMAKE_C_FLAGS_INIT "-Wall -std=c11") ”,在“src/pal/tests/CMakeLists.txt”添加“SET (CMAKE_C_FLAGS "-Wall -std=c11")”,就能编译了.

linux系统上编译好的ImageMagick做迁移

如何把编译好的工具迁移到另一台机器上去,有时候我们会遇到这样的问题,怎样解决库文件的依赖问题就需要我们按照出错提示去解决问题了,我以ImageMagick为例做下讲解. 如何编译安装ImageMagick环境,参照我的上一篇文章ImageMagick的安装和使用案例,链接: http://xiaoxiaozhou.blog.51cto.com/4681537/1903499 在本文中两台主机分别用server1和server2标识,server1为安装编译好ImageMagick的系统,serv

在Windows7和Ubuntu上编译安装MICO

MICO是CORBA标准的一个实现.开源并且被广泛使用. 首先的首先,看用户手册,在页面"http://www.mico.org/docu.html"找到一本教材"MICO: An Open Source CORBA Implementation",去Google搜一下,有PDF下载 然后,选择一个正确的下载包 打开www.mico.org,点击"download" 可以看到下图所示 这里不要去选择第一项"Complete source