windows 系统的包管理器
如果使用过Linux的话,一定会被其简洁的软件包管理系统所折服。在Linux世界中,安装一个软件不需要在浏览器中寻找软件的官网,然后将其下载下来,然后双击进行安装。只需要一条简单的命令,就可以完成搜索、安装、更新、卸载等所有操作
Debian / Ubuntu 下有 apt-get
Fedora 下有yum / dnf
Arch 下有pacman
Mac 下有 Homebrew + iTerm 2 + Fish shell
Windows 下 Chocolatey / Scoop + Cmder
国外有人把 Windows 下主流的包管理工具做了一个对比,分别列出了各自的优缺点,还有很多人投票,网站链接: What are the best Windows package managers?
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 的更多介绍请看官网: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 #默认安装的最新版 |
安装过程需要同意,提示 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 install 7zip #安装压缩软件 |
其实只需要记住 scoop help
这一个命令就行了,其他命令忘记了直接通过这个命令查看就行了
常用软件
1 | scoop install 7zip #安装压缩软件 |
上面的四条命令可以合并成一个命令 scoop install 7zip git openssh concfg
支持的更多软件看这里:https://github.com/lukesampson/scoop/tree/master/bucket
Scoop VS Chocolatey
Scoop 和 Chocolatey 不同的地方在于下面几点:
- 独立安装,和已有软件不冲突
- 没有权限对话框,因为程序安装到用户目录
- 不会污染路径
- 不使用 NuGet,无需担心依赖
- 不是软件包管理器,它仅读取一个关于如何安装程序的 JSON
- 不安装特定版本,仅仅支持最新版本
- 专注于开发者的工具
更多请参考 Chocolatey Comparison
一键装机
当你在一台电脑上用 Chocolatey 和 Scoop(非程序员可以不装 Scoop) 配置过一次工作环境后,你只需要记住你所使用的软件包的名称,然后将所有的安装命令的清单云同步,那么当你换电脑了就可以很轻松的同步工作环境的配置,非常便捷。我的命令清单如下:
1 | 使用 Chocolatey 安装 |