一对一免费咨询: 13913005726 025-66045668

文/durow

0×00 写在前面的废话

年底这段时间实在太忙了,各种事情都凑在这个时候,没时间去学习自己感兴趣的东西,所以博客也好就没写了。最近工作上有个小功能要做成Web应用, 之前曾经有过类似需求,当时用的是WCF做WebAPI,前端用ExtJS。这次需求不关键,只要能解决问题就好,具体用什么技术无所谓,正好赶上 ASP.NET 5发布,所以打算尝试一下。在Windows下借助强大的VS一路安装就解决问题了,不过ASP.NET5跨平台啊,决定试一下在Linux下部署开发环 境,以后再忽悠别人入坑也更有说服力。之前一直用Windows,只是出于好奇装过Linux,所以对Linux不是很熟系,边查边做,期间自然是各种 坑,折腾了一天多,不过最后也算跑起来了,在这里记录一下踩到的坑和解决的以及未解决的问题。

0×01 Windows和Ubuntu双系统

之前都使用虚拟机装Linux的,这次既然要测试就认真一点吧,从硬盘中划出了100G的空间,参照网上的教程装了Ubuntu双系统。不过这个不是本文的重点,而且很容易就能搜到大量教程,具体就不说了。我参考的这篇文章:

http://www.linuxidc.com/Linux/2012-05/59663.htm

0×02 安装ASP.NET 5开发环境

下面重点开始了,主要步骤参照的微软的官方文档:

https://docs.asp.net/en/latest/getting-started/installing-on-linux.html

首先说明一下踩到的第一个坑,因为很多命令都需要用到sudo,所以我干脆sudo bash把终端切换到了root,造成的后果就是后面建立的有些文件夹都是root的,导致后来在非root下用yo创建项目的时候出现权限错误,花了很 多时间才找到大同网站建设公司问题。所以南京网店设计为了少出现不必要的麻烦下面操作时建议大家还是老老实实用sudo。下面截图中可以看到我还是用的root,大家不要这样。

1 安装DNVM

首先准备开发环境搭建用到的工具。一般来说很可能系统自带了,不过以防万一还是运行一下,反正也很快:

sudo apt-get install unzip curl

这个命令会安装unzip和curl两个工具,用于解压和下载

什么是DNVM、DNX可以参照@张善友 的这篇文章http://www.cnblogs.com/shanyou/p/4589930.html 写的很全面

然后下载DNVM。官网文档给出了以下命令:

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

这里就用到刚刚准备好的curl了,不过一般系统都自带了。

按照系统提示在下载完后执行命令

source ~/.dnx/dnvm/dnvm.sh

这样DNVM就安装完成了。可以输入dnvm看是否安装成功。

2 使用DNVM安装DNX

首先还是需要准备安装中用到的工具

sudo apt-get install libunwind8 gettext libssl-dev libcurl4-openssl-dev zlib1g libicu-dev uuid-dev

然后用DNVM安装DNX for.NET Core

dnvm upgrade -r coreclr

然后使用DNVM安装DNX for Mono

dnvm upgrade -r mono

安装时提示我的系统里没有Mono,需要安装。参照官网文晋城网站建设公司档给出的链接,依次执行以下命令:

apt-key adv --keyserver keyserver.ubuntu.com recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF

echo "deb http://download.mono-project.com/repo/debian wheezy main" | tee /etc/apt/sources.list.d/mono-xamarin.list

apt-get update

apt-get install Mono-Complete

3 安装libuv

为什么要安装这个东西呢,因为开发中需要运行本地Web服务测试啊,在Windows中我们有IIS Express,可是Linux中没有。官方推荐使用的是kestrel,而kestrel用到了libuv这个库,所以我们需要安装这个库。这个库是用 源码编译的方式安装的,命令比较多,反正我是一行一行复制着完成的,基本上复制完下一条命令的时间上一条命令就执行完成了,体验也算不错:)大致的过程就 是:安装编译需要的工具,下载并解压源代码,编译安装,加载共享库使新库生效。

sudo apt-get install make 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

至此我们已经完成ASP.NET 5 开发环境的安装了。这样是不是就结束了呢?刚开始我也是这么想的,不过马上就意识到不对了。当我想建个测试工程的时候发现无法入手,在Windows上我 都是用VS新建解决方案,选择Web,然后选择用什么样的模板,可是在Linux下没有模板啊,总不能手动一个一个文件建立吧。然后继续看文档找到原来还 有Your First APS.NET 5 Application on XXX系列,不过里面没有Linux,参照Mac应该也没问题。

https://docs.asp.net/en/latest/tutorials/your-first-mac-aspnet.html

0×03 安装和配置开发工具

开发工具自然是visula Studio Code,官网下载:https://code.visualstudio.com/

下载后解压,直接运行Code即可使用。

建立项目时的模板是通过yeoman生成的。安装yeoman需要用npm,于是我们先安装npm

sudo apt-get install npm

npm和nodejs是相互依赖的,安装其中任意一个都会自动安装上另外一个。安装后可以使用

npm install -g yo bower grunt-cli gulp

来安装yeoman、bower、grunt-cli、gulp。不过问题来了,yeoman需要nodejs版本在0.12以上,而用apt- get安装的版本只是0.10,各种折腾都升级不了,包括使用传说中的n这个名字怪异但据说是专用于升级nodejs的工具都不行。在网上查来查去找到了 这边文章:

http://my.oschina.net/tbaby/blog/412052

里面有这么一条命令:

curl --silent --location https://deb.nodesource.com/setup_0.12 | sudo bash -

打开 https://deb.nodesource.com看了下我擦原来在这里


 


 南京牧狼文化传媒有限公司简介:


      牧狼传媒,牧者之心,狼者之性,以牧之谦卑宽容之心待人,以狼之团结无畏之性做事!


  公司注册资金100万,主营众筹全案服务、网站营销全案服务、网站建设、微信小程序开发、电商网店设计、H5页面设计、腾讯社交广告投放以及电商营销推广全案等相关业务,致力于为客户提供更有价值的服务,创造让用户满意的效果!


  为百度官方及其大客户、苏宁易购、金山WPS秀堂、美的、创维家电、新东方在线、伊莱克斯、宝丽莱等国内国外知名品牌服务过,服务经验丰富!同时,公司也是南京电子商务协会会员单位、猪八戒网官方认证签约服务商、江苏八戒服务网联盟、南京浦口文化产业联合会会员单位,可以为您提供更好的服务!


  主营项目:众筹全案服务、网站营销全案服务、网站建设、微信小程序开发、电商网店设计、H5页面设计、腾讯社交广告投放、竞价托管、网站优化、电商代运营等


  合作客户:百度、苏宁易购、饿了么、美的、创维家电、新东方在线、宝丽莱、金山WPS秀堂、伊莱克斯


  资质荣誉:百度商业服务市场2017年度最佳图片服务商、南京电子商务协会会员单位、猪八戒网官方认证签约服务商、江苏八戒服务网联盟、南京浦口文化产业联合会会员单位、八戒通TOP服务商、"易拍即合杯"H5创意大赛"三等奖"。



致力于为客户创造更多价值
13913005726 025-66045668
需求提交
电话咨询
在线咨询