windows上更酷的软件安装方式—chocolatey

Python016

windows上更酷的软件安装方式—chocolatey,第1张

Chocolatey 是一款Windows环境下的包管理工具。其依赖于微软旗下的Nuget项目及其核心,可以将其视为Windows的apt-get。

推荐使用win8/win10操作系统

以管理员身份运行CMD,执行以下脚本:

如果你习惯用PowerShell.exe,也可以使用管理员身份运行PowerShell后执行:

举个栗子,你如果想安装7Zip,你可以在命令行输入:

就会自动安装这个压缩软件。

安装go语言,输入:

安装Visual Studio 2013 Ultimate这个巨无霸也是可以的:

软件列表,可以在Chocolatey的软件索引查到。

Chocolatey在命令行里的命令是 choco ,具体的命令如下:

其中的 choco install 可以简化为 cinst

理想是美好的,然后现实里那无所不在的墙会让你崩溃,所以我们要使用一个私有源来解决这个尴尬的问题。

首先我们来看一下默认的源:

可以看到系统中只有一个官方的源,注意一下其中的Priority,来看看官方怎么解释的。

我们要的目的是加一个seuic内部源,并且让我们的源优先级高于官方源,let's go!好奇宝宝难道不问下为什么要内部源优先?这里主要是要解决choco安装依赖的问题。举栗子:比如安装android-sdk依赖jdk8,指定android-sdk在内部源查找,但是依赖的jdk8则会按照优先级挨个源去找。

让我们来检查一下吧。

可以用下面的命令来看看我们seuic源上的东西:

cmder是windows下替代cmd的神器,多说无益,一用就知道。安装完后win+R输入cmder即可使用。

androidstudio依赖android-sdk和jdk8,android-sdk依赖jdk8。choco安装时会自动安装依赖,所以三件套都装的话只要cinst androidstudio -y -s"seuic"即可。这些东西不是要翻墙就是要去oracle网站死磕,现在只要一行命令轻松搞定。

vagrant更适合给开发大爷们创造一个统一的开发、测试、接近于完全隔离的环境,以及提高对高配机的闲置利用。docker更方便地解决了同一机器上的环境隔离,以及提高运维锅们解决部署时环境依赖的效率。

1、下载go的zip文件。并且一定要把文件解压到c:\go目录下。

2、配置windows的高级环境变量。包括:GOROOT、GOOS、GOBIN、GOARCH。并且在path变量里面把c:\go\bin加入。以便可以在命令行直接运行go命令。

举例:我的机器:

GOPATH= c:\goc:\go\srcF:\workspace\goSample01

GOBIN=c:\go\binF:\workspace\goSample01\bin

其中,c:\go是go的安装路径;

F:\workspace\goSample01是我写的go语言项目的工程目录;

F:\workspace\goSample01\bin是go语言项目的工程目录下的可执行文件路径

3、在完成环境变量配置后,打开一个命令行窗口,直接输入go,然后回车,看看是否出现go的帮助信息。如果出现,那么go的基本环境就OK了。

注意:这个基本环境不包含开发工具,也不能直接编译带C代码的go程序。

4、(可选)为了支持Import远程包,最好装个gomingw。下载地址:http://code.google.com/p/gomingw/downloads/list。如果下的是压缩包,请把它解压到C盘。例如,C:\gowin-env。里面有个Console.bat是以后使用go get的环境。举例:有个文件a.go,里面import(

"fmt"

"github.com/astaxie/beedb"

_ "github.com/ziutek/mymysql/godrv"

为了编译该a.go文件,需要启动Console.bat,然后在该命令行窗口,进入c:\go\src目录下,执行go getgithub.com/astaxie/beedb

Go get github.com/ziutek/mymysql/godrv .

Go会自动下载该远程包并编译和安装这些包。

配置goclipse(可选)

(如果不喜欢eclipse开发工具,请跳过这个配置。)

1、下载并安装goclipse插件。Goclipse是go语言for eclipse的插件,下载地址:http://code.google.com/p/goclipse/

2、启动eclipse并创建go项目。然后写个最简单的helloworld.go文件,并运行。代码如下:

packagemainimport"fmt"func main(){fmt.Printf("hello, world")}

配置gocode(可选)

如果不需要go语法辅助和eclipse里面的(按ALT+/)弹出go语言自动辅助功能,请跳过这个配置。

1、下载gocode的zip文件,解压后放在go的bin目录下。

2、下载并安装Git软件。并且在path里面配置git的执行路径。例如c:\git\bin

3、在命令行执行:go build .\gocode。如果一切正常,那么将会编译生成一个gocode.exe文件在go的bin目录下。如果编译失败,那么就转第4步。

4、如果第3步直接编译gocode源文件成功,那就直接到第5步。否则,就需要通过git下载gocode源文件,然后再编译。在命令行执行:go get -u github.com/nsf/gocode 。就会生成gocode.exe文件。

5、在goclipse插件里面指定gocode的路径。就可以在elcipse里面调用gocode来帮助写编码了。

从开发工具这块看,go语言还不够成熟,开发工具都还不完善,有待改进。

下载go-tour教程源代码(可选)

Google有个在线运行go语言的教程(http://tour.golang.org/#2),很不错。支持在web上直接运行大部分的go程序,想了解这个教程的源代码的朋友可以通过以下方式获取。如果没兴趣,可以跳过这个步骤。

1、下载安装Mercurial软件。

2、在命令行下输入:

hg clone http://[email protected]/r/qinhui99-go-tour/

http://[email protected]/r/qinhui99-go-tour/这个URL是我从google的go-tour源代码的一个clone。作为测试用的。如果把http改成https协议,下载就会失败。搞不懂。

编译带调用C代码的go文件(可选)

1、为了在windows下编译带C代码的go程序,你首先需要下载并安装MinGW或者Cygwin。

2、首选安装MinGW。在安装MinGW之后,记得要把MinGW安装目录\bin路径设置在path环境变量里面,以便能在dos窗口下直接调用gcc。

3、下载一个gowin-env。下载地址:gowin-env。下载后解压到某个目录下,例如:C:\gowin-env. 然后,编辑go-env.bat。配置相关的go参数。例如,我的配置是:

set GOARCH=386

set GOOS=windows

set GOROOT=c:\go

set GOBIN=%GOROOT%\bin

set GOPATH=%GOROOT%F:\workspace\goSample01

设置好go-env.bat后,就可以点击Console.bat来启动编译和运行窗口。

4、编写一个带C代码的go程序。例如,testc.go

5、编译

例如:

go build -compiler gccgo test_c.go

运行调用C代码的go文件(可选)

1、testc.go.

创建rand目录,然后在rand里面创建testc.go. 代码如下:

package rand

/*

//

#include <stdio.h>

*/

import "C"

func PrintHello() {

C.puts(C.CString("Hello, world\n"))

}

2、a.go

在rand下创建a.go.代码如下:

package rand

import "fmt"

func SayHello(name string){

fmt.Println(name)

}

3、test_import.go

在rand的上一级创建test_import.go。代码如下:

package main

import "./rand"

func main(){

rand.SayHello("tom")

rand.PrintHello()

}

4、运行test_import.go

go run test_import.go

在测试其它几个C代码的时候,发现windows版本的cgo还有些编译问题,同样的代码转移到苹果的XCODE下就没有问题。后来终于发现原因了,原来有些例子是unix平台下的,而在windows平台下,方法名和参数需要做调整。

例如:下面代码在windows下编译报一堆错误。

package rand

/*

#include <stdlib.h>

*/

import "C"

func Random() int {

return int(C.random())

}

func Seed(i int) {

C.srandom(C.uint(i))

}

这里需要把return int(C.random()) 修改为“return int(C.rand())”

C.srandom(C.uint(i))修改为“C.srand(C.uint(i))”编译就OK了。

1.1Go安装Go的三种安装方式Go有多种安装方式,你可以选择自己喜欢的。这里我们介绍三种最常见的安装方式:Go源码安装:这是一种标准的软件安装方式。对于经常使用Unix类系统的用户,尤其对于开发者来说,从源码安装可以自己定制。Go标准包安装:Go提供了方便的安装包,支持Windows、Linux、Mac等系统。这种方式适合快速安装,可根据自己的系统位数下载好相应的安装包,一路next就可以轻松安装了。**推荐这种方式**第三方工具安装:目前有很多方便的第三方软件包工具,例如Ubuntu的apt-get、Mac的homebrew等。这种安装方式适合那些熟悉相应系统的用户。最后,如果你想在同一个系统中安装多个版本的Go,你可以参考第三方工具GVM,这是目前在这方面做得最好的工具,除非你知道怎么处理。Go源码安装在Go的源代码中,有些部分是用Plan9C和AT&T汇编写的,因此假如你要想从源码安装,就必须安装C的编译工具。在Mac系统中,只要你安装了Xcode,就已经包含了相应的编译工具。在类Unix系统中,需要安装gcc等工具。例如Ubuntu系统可通过在终端中执行sudoapt-getinstallgcclibc6-dev来安装编译工具。在Windows系统中,你需要安装MinGW,然后通过MinGW安装gcc,并设置相应的环境变量。你可以直接去官网下载源码,找相应的goVERSION.src.tar.gz的文件下载,下载之后解压缩到$HOME目录,执行如下代码:cdgo/src./all.bash运行all.bash后出现"ALLTESTSPASSED"字样时才算安装成功。上面是Unix风格的命令,Windows下的安装方式类似,只不过是运行all.bat,调用的编译器是MinGW的gcc。如果是Mac或者Unix用户需要设置几个环境变量,如果想重启之后也能生效的话把下面的命令写到.bashrc或者.zshrc里面,exportGOPATH=$HOME/gopathexportPATH=$PATH:$HOME/go/bin:$GOPATH/bin如果你是写入文件的,记得执行bash.bashrc或者bash.zshrc使得设置立马生效。如果是window系统,就需要设置环境变量,在path里面增加相应的go所在的目录,设置gopath变量。当你设置完毕之后在命令行里面输入go,看到如下图片即说明你已经安装成功图1.1源码安装之后执行Go命令的图如果出现Go的Usage信息,那么说明Go已经安装成功了;如果出现该命令不存在,那么可以检查一下自己的PATH环境变中是否包含了Go的安装目录。关于上面的GOPATH将在下面小节详细讲解Go标准包安装Go提供了每个平台打好包的一键安装,这些包默认会安装到如下目录:/usr/local/go(Windows系统:c:\Go),当然你可以改变他们的安装位置,但是改变之后你必须在你的环境变量中设置如下信息:exportGOROOT=$HOME/goexportGOPATH=$HOME/gopathexportPATH=$PATH:$GOROOT/bin:$GOPATH/bin上面这些命令对于Mac和Unix用户来说最好是写入.bashrc或者.zshrc文件,对于windows用户来说当然是写入环境变量。如何判断自己的操作系统是32位还是64位?我们接下来的Go安装需要判断操作系统的位数,所以这小节我们先确定自己的系统类型。Windows系统用户请按Win+R运行cmd,输入systeminfo后回车,稍等片刻,会出现一些系统信息。在“系统类型”一行中,若显示“x64-basedPC”,即为64位系统;若显示“X86-basedPC”,则为32位系统。Mac系统用户建议直接使用64位的,因为Go所支持的MacOSX版本已经不支持纯32位处理器了。Linux系统用户可通过在Terminal中执行命令arch(即uname-m)来查看系统信息:64位系统显示x86_6432位系统显示i386Mac安装访问下载地址,32位系统下载go1.4.2.darwin-386-osx10.8.pkg,64位系统下载go1.4.2.darwin-amd64-osx10.8.pkg,双击下载文件,一路默认安装点击下一步,这个时候go已经安装到你的系统中,默认已经在PATH中增加了相应的~/go/bin,这个时候打开终端,输入go看到类似上面源码安装成功的图片说明已经安装成功如果出现go的Usage信息,那么说明go已经安装成功了;如果出现该命令不存在,那么可以检查一下自己的PATH环境变中是否包含了go的安装目录。Linux安装访问下载地址,32位系统下载go1.4.2.linux-386.tar.gz,64位系统下载go1.4.2.linux-amd64.tar.gz,假定你想要安装Go的目录为$GO_INSTALL_DIR,后面替换为相应的目录路径。解压缩tar.gz包到安装目录下:tarzxvfgo1.4.2.linux-amd64.tar.gz-C$GO_INSTALL_DIR。设置PATH,exportPATH=$PATH:$GO_INSTALL_DIR/go/bin然后执行go图1.2Linux系统下安装成功之后执行go显示的信息如果出现go的Usage信息,那么说明go已经安装成功了;如果出现该命令不存在,那么可以检查一下自己的PATH环境变中是否包含了go的安装目录。Windows安装访问GoogleCode下载页,32位请选择名称中包含windows-386的msi安装包,64位请选择名称中包含windows-amd64的。下载好后运行,不要修改默认安装目录C:\Go\,若安装到其他位置会导致不能执行自己所编写的Go代码。安装完成后默认会在环境变量Path后添加Go安装目录下的bin目录C:\Go\bin\,并添加环境变量GOROOT,值为Go安装根目录C:\Go\。验证是否安装成功在运行中输入cmd打开命令行工具,在提示符下输入go,检查是否能看到Usage信息。输入cd%GOROOT%,看是否能进入Go安装目录。若都成功,说明安装成功。不能的话请检查上述环境变量Path和GOROOT的值。若不存在请卸载后重新安装,存在请重启计算机后重试以上步骤。第三方工具安装GVMgvm是第三方开发的Go多版本管理工具,类似ruby里面的rvm工具。使用起来相当的方便,安装gvm使用如下命令:bash<<(curl-s-S-Lhttps://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)安装完成后我们就可以安装go了:gvminstallgo1.4.2gvmusego1.4.2也可以使用下面的命令,省去每次调用gvmuse的麻烦:gvmusego1.4.2--default执行完上面的命令之后GOPATH、GOROOT等环境变量会自动设置好,这样就可以直接使用了。apt-getUbuntu是目前使用最多的Linux桌面系统,使用apt-get命令来管理软件包,我们可以通过下面的命令来安装Go,为了以后方便,应该把gitmercurial也安装上:sudoapt-getinstallpython-software-propertiessudoadd-apt-repositoryppa:gophers/gosudoapt-getupdatesudoapt-getinstallgolang-stablegit-coremercurialhomebrewhomebrew是Mac系统下面目前使用最多的管理软件的工具,目前已支持Go,可以通过命令直接安装Go,为了以后方便,应该把gitmercurial也安装上:brewupdate&&brewupgradebrewinstallgobrewinstallgitbrewinstallmercurial