在今年的微软Build2016大会上,最让开发者兴奋的一个消息是,linuxbash可以在Windows上原生运行,这是开发者最喜欢的消息。
1。安装
您必须安装开发者预览版才能使用windows的linux子系统功能。
让我们在windows环境下实际测试一下ubuntu吧!
2。系统检测和更新
版本2.1检测
运行uname-a的结果如下:
webmaster@FEKETERIGO-PC:~$uname-a LinuxFEKETERIGO-PC3.4.0+#1PREEMPTThuAug117:06:05CST2013x86_64x86_64x86_64GNU/Linux webmaster@FEKETERIGO-PC:~$
运行lsb_release-a的结果如下:
webmaster@FEKETERIGO-PC:~$lsb_release-a NoLSBmodulesareavailable. DistributorID:Ubuntu Description:Ubuntu14.04.4LTS Release:14.04 Codename:trusty可以看到,安装了ubuntu14.04trusty。
2.2系统更新
既然是ubuntu,可以用apt-get进行包管理。
首先替换自己的更新源。
sudomv/etc/apt/sources.list/etc/apt/sources.list.save
将以下Alisource内容粘贴到/etc/etc/apt/sources.list中
debhttp://mirrors.aliyun.com/ubuntu/trustymainrestricteduniversemultiverse debhttp://mirrors.aliyun.com/ubuntu/trusty-securitymainrestricteduniversemultiverse debhttp://mirrors.aliyun.com/ubuntu/trusty-updatesmainrestricteduniversemultiverse debhttp://mirrors.aliyun.com/ubuntu/trusty-proposedmainrestricteduniversemultiverse debhttp://mirrors.aliyun.com/ubuntu/trusty-backportsmainrestricteduniversemultiverse deb-srchttp://mirrors.aliyun.com/ubuntu/trustymainrestricteduniversemultiverse deb-srchttp://mirrors.aliyun.com/ubuntu/trusty-securitymainrestricteduniversemultiverse deb-srchttp://mirrors.aliyun.com/ubuntu/trusty-updatesmainrestricteduniversemultiverse deb-srchttp://mirrors.aliyun.com/ubuntu/trusty-proposedmainrestricteduniversemultiverse deb-srchttp://mirrors.aliyun.com/ubuntu/trusty-backportsmainrestricteduniversemultiverse也可以使用163源等。选择原则是更新速度。目前的测试显示,阿里云的更新速度最快。
然后运行以下命令来更新系统。如果速度很慢,请尝试使用其他信号源。另外,ubuntu的源码是版本依赖的。注意不要添加错误版本的源代码。
sudoapt-get更新
sudoapt-get升级
在使用sudo命令之前,可以运行passwd来更新当前用户的命令。默认情况下,bashonwindows在用户模式下运行。
Windows会将当前用户添加到sudoer列表中。如果要切换到超级管理员,需要手动输入su-
3。构建开发环境
3.1用apt和ppa库安装Git
ubuntutrusty的默认git版本是1.9.1。
如果不想用最新版本的git,可以运行sudoapt-getinstallgit直接安装。
如果你想安装最新的git版本,请参考下面的命令
sudoadd-apt-repositoryppa:git-core/ppa sudoapt-getupdate sudoapt-getinstallgitsudoAdd-apt-RepositoryPPA:git-core/PPA会在/etc/apt/sources.list.d目录下生成一个git-core-ppa-trusty.list文件,然后当你运行sudoapt-get更新时,你会从相应的仓库中获得新的git版本信息。
因为每个人的网络环境不同,如果你的更新失败,无法使用apt-get安装最新版本的git,请从github下载源代码编译安装,过程也很简单。
这里就不写源代码编译教程了。点击git源代码:https://github.com/git/git.
3.2用pyenv构建python开发环境
命令如下
sudoapt-getinstallcurl curl-Lhttps://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer|bash pyenvinstall2.7.11 pyenvinstall3.5.1 pyenvshell3.5.1
python的2.x和3.x版本不兼容,所以在本地安装两个版本,并在必要时切换版本。使用命令pyenvshell2.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-Lhttps://get.rvm.io|bash-sstable--autolibs=enabled--ruby rvminstall2.3.1 bash--login rvmuseruby-2.3.1在rvm帮助中输入具体命令,很容易掌握。
3.4使用gvm安装go语言
curl-Lhttps://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer|bash gvminstallgo1.6 gvmusego1.6--default
因为hugo是用go语言开发的,所以借此机会学习一些google开发的编程语言,这个博客是用的。
Hugo搭建的,服务器使用firebase,提供和githubpages一样的免费静态服务。
服务器的功能和稳定性都比github好,国内github的访问速度也不能再慢了,尤其是克隆体比较大的项目。
用go语言开发的程序有一个好处就是没有运行时依赖,打包成exe就可以直接运行,简单方便。后面会有更多的内容更新,集中在这里的开发环境。
建立在这个主题上。
3.5使用nvm安装nodejs
curl-o-https://raw.githubusercontent.com/creationix/nvm/v0.30.0/install.sh|bash nvminstallv6.2.0 nvmusev6.2.0
Node.js可以说是2015年以来最火的语言。node.js是后端工程师转前端的最佳工具。博主一起是java后端开发工程师。一个偶然的机会,他们学习了node.js,然后开始了自己前端工程师的进化,目标是全栈工程师。
Node.js还有一个npm包N,可以用于版本管理。不过需要先安装node.js,用NPMInstall-GN安装这个工具,N和nvm都非常好用。你可以选择一个或两个都选。它们之间没有冲突,可以共存。
这里请注意,如果使用的是windowsbuild14352,使用nvm安装nodejs时可能会出现错误。详情见此:https://github.com/Microsoft/BashOnWindows/issues/426.
我装的时候有问题,但是没看到其他人遇到这个问题。如果安装的windows预览版比14352新,可以自己测试。
3.6安装gcc工具链
sudoapt-getinstallpython-software-properties sudoadd-apt-repositoryppa:nginx/stable sudoapt-getupdate sudoapt-getinstallnginx这些工具不仅被C和c++开发人员使用。如果开发node.js原生模块,还需要这些工具。
3.7安装nginx
sudoapt-getinstallpython-software-properties sudoadd-apt-repositoryppa:nginx/stable sudoapt-getupdate sudoapt-getinstallnginx就像安装git的时候,通过添加nginx的第三方库,实现apt-get方法来安装最新版本的nginx,比源码编译安装方法要方便一点。
3.8安装带外壳的防锈漆
命令,很简单。
卷曲-sSfhttps://static.rust-lang.org/rustup.sh|上海
Rust是一种和node.js一样流行的新兴编程语言,但和node.js不同的是,rust不是前端编程语言,而是系统编程语言。
Rust安全,高并发,大量吸收现代高级编程语言,尽量避免现有编程语言的各种缺点。给我印象最深的一个特点是
rust的垃圾收集机制,
一开始rust也是用类似java语言的垃圾收集器方法来实现垃圾收集,后来受不了gc了。
运行时性能损失,我实现了更高效的垃圾收集机制,大大提高了系统的稳定性和性能。
而且rust在1.0的时候就已经bootstrapped(自编译)了,以后的rust版本都是rust自己编译,包括编译器。
唯一不好的是rustlanguage使用了极其复杂的语法,最大程度上帮助开发者避免犯错。不建议初学者学习编程语言。
Rust,因为rust的学习曲线很陡,所以选择C或者java作为入门语言就不错了。
4。最终总结
本文虽然不谈一些深刻的内容(水平有限),但还是总结了一些。
4.1关于包管理
无论 *** 作系统,linux,mac,windows,还是编程语言,java,node.js,rust,流行的趋势是自带包管理工具。linux有apt,centos有yum,mac有brew,windows目前没有,以后也不排除。win10应用商店已经有了,估计应用管理工具也不行。
Java没有自己的包管理工具,但是maven,node.js有npm,rust有cargo。
使用包管理工具可以帮助开发者解决很多问题,比如版本管理、依赖管理甚至软件发布。node.jsd的包由npm发布。
所以我觉得自带包管理工具应该是未来编程语言的趋势,而这方面做的最差的就是java,从make到ant到ivy到maven到gradle,java的包。
管理最复杂。如果建议学习java,也可以用gradle打包android项目。是目前最好的工具。
此外, *** 作系统的包管理工具比编程语言有更长的历史,几乎每个类似linux的 *** 作系统都有自己的包管理工具。
4.2版本管理
软件版本管理
每个软件都会进行版本迭代,有时候在版本更新的时候会出现破更新。为了便于版本切换,许多编程语言
两者都提供版本管理工具(第三方的),所以不知道能不能在编程语言中加入这个功能。简而言之,编程语言可以带有版本管理。
工具(就像包管理工具一样),可以更快的实现版本切换。
4.3以开发者为中心
随着windows开始拉拢开发者和软件工程师,我认为在以开发者为中心的时代,开发者的春天正在到来。
我的个人博客网站https://ideras.me
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)