深入体验bash on windows!在windows上搭建原生的linux开发环境
今年微软Build 2016大会最让开发人员兴奋的消息之一,就是在Windows上可以原生运行linux bash,对开发人员来说,这是一个喜闻乐见的消息。 1、安装 你必须安装开发者预览版本,才能使用windows的linux subsystem功能。
下面来实际测试下ubuntu on windows环境! 2、系统检测和更新 2.1 版本检测 运行 uname -a 结果如下: webmaster@FEKETERIGO-PC:~$ uname -a Linux FEKETERIGO-PC 3.4.0+ #1 运行 lsb_release -a 结果如下: webmaster@FEKETERIGO-PC:~$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 14.04.4 LTS Release: 14.04 Codename: trusty 可以看到,安装的是ubuntu 14.04 trusty 2.2 系统更新 既然是ubuntu,就可以使用apt-get进行软件包管理。 首先替换自带的更新源
把下面的阿里源内容粘贴到 /etc/apt/sources.list deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse 你也可以使用163源等,选取原则是更新速度,目前测试的情况是阿里云的源更新速度最快。 接着运行下面的命令进行系统更新,如果速度很慢的话请尝试使用其他的源,另外ubuntu的源是版本相关的,注意别添加错误版本的源。
使用sudo命令之前可以运行 passwd 更新当前用户的命令, bashonwindows默认运行在用户模式, windows会把当前用户添加到sudoer列表中,如果想切换到超级管理员,需要手动输入su - 3、搭建开发环境 3.1 使用apt和ppa repository安装git ubuntu trusty默认的git版本是1.9.1 如果你不想使用git最新版本的话可以运行sudo apt-get install git 直接安装 如果想安装最新的git版本参考下面的命令 sudo add-apt-repository ppa:git-core/ppa sudo apt-get update sudo apt-get install git sudo add-apt-repository ppa:git-core/ppa 会在/etc/apt/sources.list.d 目录下面生成一个git-core-ppa-trusty.list文件,然后运行sudo apt-get update 的时候会从相应的仓库里面获取新的git版本信息。 由于每个人的网络环境不一样, 如果你更新失败,使用apt-get不能安装最新版本的git的话,请到github上面下载源码进行编译安装,过程也很简单 这里就不写源码编译教程了, git源码点击:https://github.com/git/git。 3.2 使用pyenv搭建python开发环境 命令如下 sudo apt-get install curl curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer python的2.x和3.x版本不兼容,所有把两个版本多安装到本地,方便需要的时候进行版本切换,使用命令pyenv shell 2.7.11 指定当前的python版本。上面的命令指定的python版本是3 python的另一个有用的工具是virtualenv,它和pyenv都能实现python版本的切换,不过实现的方法却大相径庭。 pyenv在用户模式下安装多个版本python,但是每一个python版本的包依赖还是安装的同一个位置,它不能解决两个项目中引用 同一个库有版本冲突,但是viertualenv可以。 virtualenv给每一个python项目安装一个项目内部python,具体版本可以在初始化的时候指定,项目的依赖也是安装在内部python的 路径下面,这样能防止和系统上其他python项目的依赖冲突, 隔离性更高,不好的地方是安装和使用略微复杂。 具体使用哪个工具看个人喜好,github上面pyenv的关注度要高点,而且现在pyenv有一个virtualenv插件,可以使用后者同样的功能, 我个人还是推荐使用pyenv。 3.3 使用rvm安装ruby curl -L https://get.rvm.io | bash -s stable --autolibs=enabled --ruby rvm install 2.3.1 bash --login rvm use ruby-2.3.1 具体命令输入rvm help,很好掌握。
3.4 使用gvm安装go语言
curl -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer 由于hugo是使用go语言开发的,趁着这个机会向学习一些这个由google开发的编程语言,本博客就是使用 hugo搭建的,服务器使用firebase,firebase提供和github pages一样的免费静态服 务器的功能,稳定性比github要好,github在国内的访问速度实在不能再慢了,特别是在clone大一点的项目的时候。 go语言开发的程序有一个好处就是没有运行时依赖,打包成exe就能直接运行,简单方便,更多的内容以后再更新吧,这里集中在开发环境 搭建这个主题上面。 3.5 使用nvm安装nodejs curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.30.0/install.sh node.js可以说是从2015年以来最火的语言了,node.js是后端工程师转向前端最好的工具,博主一起就是java后端开发工程师,偶然的机会学习了node.js,然后开始了自己的前端工程师的进化之路,目标是全栈工程师。 node.js还有一个npm包n可以用来进行版本管理,不过你需要先安装一个node.js才能使用npm install -g n安装这个工具n和nvm都很好用,你可以随便选择一个,也可以两个都安装,他们之间没有冲突,可以共存。 这里注意一下,如果你使用的是 windows build 14352 的话,使用nvm安装nodejs可能会出现错误,详情参见这里:https://github.com/Microsoft/BashOnWindows/issues/426 我安装的时候是出现问题,但是又没有看到其他人遇到这个问题,如果你安装的windows预览版是比14352更新的版本的话,你可以自己测试下。 3.6 安装gcc工具链 sudo apt-get install python-software-properties sudo add-apt-repository ppa:nginx/stable sudo apt-get update sudo apt-get install nginx 这些工具不仅仅是c和c++开发者才会用到,如果你开发一个node.js native模块,你也需要这些工具。 (编辑:PHP编程网 - 湛江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |