使用包管理工具(Package Manager)去管理这些软件,这里说的是操作系统级别的包管理工具,也就是管理想要安装到操作系统上的软件的工具。这是相对于项目级别的包管理,比如前端项目用的 Bower ,还有管理 NodeJS 包的 npm 而言的。
包管理工具,可以让我们用几个简单的命令去安装,升级,还有删除软件,并且它会自动给我们解决软件之间的依赖的问题。这改变了你传统Windows安装软件模式。
Windows 用户可以使用 Chocolatey 这个包管理工具,Mac 用户可以使用 Homebrew 。
另外需要说明的是, Chocolatey 只是把官方下载路径封装到了 Chocolatey 中,所以下载源都是其官方路径,所以下载的一定是合法的,但是如果原软件是需要 Licence 注册的话,那么 Chocolatey 下载安装好的软件还是需要你去购买注册。不过 Chocolatey 一般还是会选用免费 Licence 可用的软件。
安装 Chocolatey
安装 Chocolatey,只需要在 Windows 系统的命令行工具下面去执行一行命令,这个命令行工具可以是 命令提示符(cmd),也可以是 Powershell ,只需要在其中的一个上面安装 Chocolatey 就可以了。你要用管理员的身份去运行命令行工具,不然会遇到权限问题。
以管理员身份打开命令行工具
Windows 7:点击 开始 菜单,在搜索框里输入 cmd 或者 powershell ,找到以后,用鼠标右键点击它们,选择 以管理员身份运行。
Windows 8 + :使用快捷键 win + Q ,搜索 cmd 或者 powershell ,然后右键点击它们,在窗口下面,选择 以管理员身份运行。
在 Cmd.exe 上安装 Chocolatey
@powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%ALLUSERSPROFILE%chocolateyin
PowerShell.exe
(Ensure Get-ExecutionPolicy is at least RemoteSigned)
iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))
PowerShell v3+
(Ensure Get-ExecutionPolicy is at least RemoteSigned)
iwr https://chocolatey.org/install.ps1 -UseBasicParsing | iex
遇到的问题及解决方法
其实你在实际操作中会面临失败,比如,没有以管理员身份打开,版本选择不对,更惨的是你的电脑禁止了脚本的运行
所以需要在 Powershell 装 Chocolatey 之前,先修改一下 Powershell 的执行策略,上图中的提示安装失败,解决的方法是执行下面的命令,意思就是把执行的策略设置成不限制:
set-ExecutionPolicy RemoteSigned
提示
执行策略更改
执行策略可以防止您执行不信任的脚本。更改执行策略可能会使您面临 about_Execution_Policies
帮助主题中所述的安全风险。是否要更改执行策略?
[Y] 是(Y) [N] 否(N) [S] 挂起(S) [?] 帮助 (默认值为“Y”):
y
以下文章对你的安装都有帮助,如果遇到失败,认真学习。
1、微软官方文档对组策略的详细介绍 https://technet.microsoft.com/zh-CN/library/hh847748.aspx
2、官方安装文档教程:https://chocolatey.org/install#before-you-install
3、英雄小强:http://www.cnblogs.com/Hero-Qiang/archive/2011/09/09/2172005.html
Chocolatey测试
在命令行工具的下面,输入:
choco help
如果出现一些有用的帮助信息,比如 Chocolatey 的版本号,安装到的目录,相关的命令,还有示例等等,这就说明我们已经可以在系统上使用 Chocolatey 了。
直接输入choco -?
则返回Chocolatey 的版本号
choco -?
Chocolatey用法
用 Chocolatey 做的事都是通过在命令行工具里面输入命令去做的,查看这些命令可以在使用 choco help 这个命令,Chocolatey 的命令都是用 choco 开头,后面接着是更具体的子命令,比如 install 就是去安装点什么,update 是去升级指定的包,uninstall 是把包从电脑上删除掉。
choco help //查看choco使用说明 choco search //搜索想要安装的包,用 -all 参数会显示所有可用的版本 choco install //安装包,用 -version 参数可以安装指定版本的包 choco uninstall //删除包 choco update //更新安装的包
搜索
在 Chocolatey 的官方网站上(https://chocolatey.org/packages),可以查看所有可以使用 Chocolatey 安装的东西,或者也可以在命令行工具的下面去搜索想要安装的东西:
我们直接命令行输入choco search则返回所有的支持的在线的安装包,我测试了一下目前有3974 packages founds
choco search
choco search keyword
跟 search 命令功能类似的还有 list 命令:
choco list keyword
比如搜索一下 nodeJS 相关的包,可以这样:
choco search nodeJS
上面的命令会在返回所以跟 nodeJS 相关的包,想要查看这些包所有的可用的版本,可以在命令的后面加上一个 -all 参数:
choco search nodeJS -all
包的类型
* (例:nodejs,git)
*.install (例:nodejs.install,git.install)
*.commandline(例:nodejs.commandline,未来会被抛弃)
*.portable(例:putty.portable)
Chocolatey 的包有不同的类型,有些包的名字里面会包含特殊的后缀,比如 .install ,.commandline,.portable ,有些包的名字不带这些后缀。
安装带 .install 后缀的包,这个包会出现在系统控制面板里的 卸载或更改程序 里面,你可以把 .install 的包想成是通过安装程序(msi)安装的包。
.commandline(未来会被抛弃) 与 .portable 后缀的包是压缩包(zip),安装这种后缀的包,你不能在 卸载或更改程序 里找到它们。
你也可以选择不带后缀的包,这样如果系统中已经安装了这个包,就会跳过去,如果没安装,Chocolatey 就会为你安装一个,默认安装的这个包的类型应该就是 .install 后缀的包。
安装
安装包,用的是 choco install 命令,把想要安装的包的名字放到 install 的后面,想一次去安装多个包,可以在 install 命令后面添加一个包的名字的列表,不同的包之间用空格分隔开。
choco install package1 package2 package3...
比如我们想去安装一个 cURL 工具,安装之前可以先用 search 命令搜索一下,搜索的时候加上 -all 参数,会显示出包的所有可用的版本,在安装的时候,你可以在 -version 参数的后面,指定一个具体要安装的版本,不使用 -version 参数,直接安装会安装包的最新发布的版本。
choco search curl -all
会返回一个列表:
... curl 7.21.7 curl 7.22.0 curl 7.23.1 curl 7.25.0 curl 7.28.1 ...
下面我们故意去安装一个旧版本的 curl , 一会儿再去升级一下它。比如我要安装的是 7.22.0 版本的 curl :
choco install curl -version 7.22.0
Chocolatey 不仅可以给我们安装指定版本的包,它还能解决包的依赖问题,也就是,如果你安装的这个包需要其它的包提供的功能,Chocolatey 会自动给你安装这个依赖的包。
安装以后,可以用 choco list 命令,加上一个 -localonly 或 -lo(简写形式) 参数,查看在本地安装的包的列表。
choco list -localonly
升级
升级安装在本地电脑上的包,用的是 choco upgrade 命令,后面加上要升级的包的名字:
choco upgrade package
在升级包之前,可以先先去查看一下有没有可用的升级。如果你想查看 Chocolatey 本身有没有可用的升级,执行命令:
choco versionv
在 choco version 命令的后面,输入具体的包的名字,可以查看指定的这个包有没有可用的新版本。比如查看一下前面我们安装的 cURL 这个小东西的升级:
choco version curl
返回的结果看起来是这样的:
name : curl found : 7.22.0 ... latest : 7.28.1 ...
name 对应的是包的名字,found 后面是安装在本地电脑上的版本,latest 后面是最新的可用的版本。这里 cURL 这个包的最新版本是 7.28.1 ,比我们安装的版本要新,所以可以去升级一下它。
choco upgrade curl
cURL 是一个命令行工具,所以在命令行工具的下面,查看这个小工具的版本可以这样:
curl -version
上面命令会返回当前安装在电脑上的 cURL 的版本,你会发现,它已经被 Chocolatey 升级成最新的版本了。
删除
想要删除掉用 Chocolatey 安装的包,用的是 choco uninstall ,后面加上要卸载或者删除掉的包的名字。
choco uninstall package
在删除包之前,可以查看一下所有安装在本地的包的列表:
choco list -localonly
比如我们要删除掉之前安装的 cURL 这个包:
choco uninstall curl
成功以后,再查看一下安装在本地的包的列表,已经看不到 cURL 了。
Commands
There are quite a few commands you can call - you should check out the command reference. Here are the most common:
- Help - choco -? or choco command -?
- Search - choco search something
- List - choco list -lo
- Config - choco config list
- Install - choco install baretail
- Pin - choco pin windirstat
- Outdated - choco outdated
- Upgrade - choco upgrade baretail
- Uninstall - choco uninstall baretail
To upgrade Chocolatey, run the following command from the command line or from PowerShell: