Windows 系统的包管理器
自从在 Mac 下使用了 Homebrew + iTerm 2 + Fish shell 后,瞬间感觉世界清静了不少。然后就在想 Windows 下面有没有类似的软件呢?毕竟在工作中使用 Windows 还是比较多的,然后在网上还真搜到了。对应于 Mac 下的 Homebrew + iTerm 2 + Fish shell , Windows 下是 Chocolatey( + Scoop) + ConEmu + PowerShell。
Chocolatey
官网号称 Chocolatey 是在 Windows 上管理软件的明智方式,轻松管理 Windows 软件的各个方面(安装,配置,升级和卸载)。其他介绍请看官网:https://chocolatey.org/。
Chocolatey 安装
Chocolatey 的安装要求用户系统至少是 Windows 7 以上或者 Server 版本 2003 以上,PowerShell 至少是 v2 以上。还需要 .NET Framework 4+
,不过在安装 Chocolatey 前会自动检查,如果没有就会自动安装。
Chocolatey 可以通过两种方式安装:使用 cmd.exe 来安装和使用 PowerShell.exe 来安装。安装的具体事项可以看官网的 Install。
使用 cmd.exe 方式安装
建议优先使用此方式安装,因为 cmd.exe 安装过程没有其他操作步骤。打开 CMD 命令行,然后输入如下命令:
1 | @"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin" |
注意:如果安装失败,安装过程报错,报错信息如下:
1 | Installation of Chocolatey to default folder requires Administrative permissions. Please run from elevated prompt. |
具体报错信息如下图:
上面这个错误产生的原因是因为没有以管理员身份启动 cmd.exe。如何以管理员身份启动 cmd.exe 请自行搜索,这里就不再啰嗦了。
使用 PowerShell.exe 方式安装
如果 cmd.exe 方式安装不成功再尝试这种方式, PowerShell.exe 安装过程会有安全性提示,要输入命令来确认。打开 PowerShell 命令行,然后输入如下命令:
1 | Set-ExecutionPolicy AllSigned; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')) |
安装过程可能会有安全性提示,按照提示来操作就行了。
使用
Win + R
快捷键,接着输入cmd
然后回车打开 CMD,输入powershell
然后回车打开 PowerShell。如果安装报错,也有可能跟第一种安装方式一样是因为没有使用管理员身份运行 PowerShell 的原因。默认以管理员身份启动 PowerShell 的设置可以参考让PowerShell控制台默认以管理员启动 。
常用命令
1 | choco -h # 查看帮助 |
更多命令请参考 Command Reference
注意:choco list
命令查看的是所有软件包,包括本地已安装和远程存在的软件包,所以这个命令执行很耗时。一般我们查看的都是本地已安装的软件包,所以要加上 --local-only
参数,如果要查看远程的软件包,直接使用 choco search
搜索指定软件包。
常用软件
1 | choco install googlechrome #安装 Chrome 浏览器 |
你所能想到的 Windows 上常用的软件差不多都能找到,想要找什么软件,直接使用 choco search <keyword>
用关键字搜索,如果不知道自己想要啥软件或者记不起来要装啥软件,可以去官网的 Packages 页下找找,几千个软件包,慢慢找去吧。
Scoop
Scoop 是 Windows 上的命令行安装程序,主要针对命令行下的开发者工具,和程序猿更配哦。个人的感觉是,Scoop 更像 Mac 上的 Homebrew, Chocolatey 更像 Homebrew-Cask。关于 Scoop 的更多介绍请看官网:http://scoop.sh/,同时,Scoop 是开源的项目,仓库地址点这里。
Scoop 安装
Scoop 的安装要求 Windows 上安装的 PowerShell 版本至少的 PowerShell 3,而且必须为你的用户帐户启用 PowerShell 。Windows 10 或 Windows Server 2012 应该默认安装的是 PowerShell 3,但 Windows 7 和Windows Server 2008 可能是比较老的版本。
升级 PowerShell
如果是 Windows 7 系统可能需要升级一下 PowerShell,有两种方式可以升级:一是直接下载 PowerShell 3 的安装包,二是通过 Chocolatey 升级。推荐使用第二种方式,下面重点介绍一下第二种方式的升级方法。
首先安装 Chocolatey , 安装方法见上文。使用 choco search powershell
命令只搜索到 PowerShell 4 和 PowerShell 5。虽然在官网 Packages 上搜索到了 PowerShell 3,但是好像没通过审核,而且我强行安装失败,最后我直接安装的 PowerShell 5,在 PowerShell 命令行下输入如下命令:
1 | choco install powershell #默认安装的最新版5.1 |
安装过程需要同意,提示 Do you want to run the script?([Y]es/[N]o/[P]rint):
时,输入y
就行了。
提示:可以使用
Get-Host
命令查看 PowerShell 版本,安装完后需要重启电脑,新版 PowerShell 才能生效。
开始安装 Scoop
安装 Scoop 前需要确保你已经允许 PowerShell 执行本地脚本,执行如下命令:
1 | set-executionpolicy remotesigned -scope currentuser |
执行这个命令时可能会提示:
1 | Do you want to change the execution policy? |
输入 y
或者 a
就可以了。接下来开始安装 Scoop,执行如下命令:
1 | iex (new-object net.webclient).downloadstring('https://get.scoop.sh') |
常用命令
1 | scoop help #查看帮助 |
其实只需要记住 scoop help
这一个命令就行了,其他命令忘记了直接通过这个命令查看就行了。
常用软件
1 | scoop install 7zip #安装压缩软件 |
上面的四条命令可以合并成一个命令 scoop install 7zip git openssh concfg
。支持的更多软件看这里:https://github.com/lukesampson/scoop/tree/master/bucket 。
Scoop 的其他配置
上图是 Scoop 官方给出的效果图,使用的是 Solarized 主题。主题和字体的配置需要用到 concfg 插件,concfg
插件是导入和导出 Windows 控制台配置(如字体和颜色)的一个工具。使用 scoop install concfg
命令来安装。
个人感觉 Scoop 最牛逼的地方在于 Buckets,甚至是可以制作自己的 Buckets,可配置性更高了,由于篇幅的原因,这个以后有机会了再写吧。
Scoop VS Chocolatey
Scoop 和 Chocolatey 不同的地方在于下面几点:
- 独立安装,和已有软件不冲突
- 没有权限对话框,因为程序安装到用户目录
- 不会污染路径
- 不使用 NuGet,无需担心依赖
- 不是软件包管理器,它仅读取一个关于如何安装程序的 JSON
- 不安装特定版本,仅仅支持最新版本
- 专注于开发者的工具
更多请参考 Chocolatey Comparison。国外有人把 Windows 下主流的包管理工具做了一个对比,分别列出了各自的优缺点,还有很多人投票,网站链接: What are the best Windows package managers?。
一键装机
当你在一台电脑上用 Chocolatey 和 Scoop(非程序员可以不装 Scoop) 配置过一次工作环境后,你只需要记住你所使用的软件包的名称,然后将所有的安装命令的清单云同步,那么当你换电脑了就可以很轻松的同步工作环境的配置,是不是非常酷,甚至是换工作时在新同事面前耍(装)帅(逼)。我的命令清单如下:
1 | #使用 Chocolatey 安装 |
清单会持续更新,先就列这么多吧,以后再更新其他命令,欢迎关注 Sheh 伟伟的个人博客。
同系列文章
Windows 系统的包管理器