Scoop&Chocolatey不完全上手指南
Scoop
1.前言
Scoop是一个 Windows 包管理工具,类似于 Debian 的 apt
、macOS 的 homebrew
。它由开源社区驱动,体验可能是是目前所有 Windows 包管理工具中最好的。对开发者来说,包管理器能非常方便的部署开发环境,比如 Python、Node.js。而对于普通的计算机使用者来说,可以方便的安装一些常用软件,尤其是开源软件,免去了手动去官网下载的繁琐步骤,而且后续对软件进行升级只需要输入一行命令,非常便捷。
2.环境要求
- Windows 7 SP1 + / Windows Server 2008 +
- PowerShell 5 + 和.NET Framework 4.5 +
- Windows 用户名为英文(Windows 用户环境变量中路径值不支持中文字符)
- 正常、快速的访问GitHub并下载资源
3.Scoop安装
- 设置
powershell
1 | set-executionpolicy remotesigned -scope currentuser |
- 默认安装(安装到
C:\Users\<user>\scoop
), 在powershell
里面运行:
1 | iex (new-object net.webclient).downloadstring('https://get.scoop.sh') |
- 安装到指定目录(
D:\tool\scoop
)(逐行执行命令)
1 | [environment]::setEnvironmentVariable('SCOOP', 'D:\tool\scoop', 'User') |
- 全局安装到指定目录(
D:\tool\scoop_global
)(逐行执行命令)
1 | [environment]::setEnvironmentVariable('SCOOP_GLOBAL','D:\tool\scoop\scoop_global','Machine') |
- 执行
scoop help
查看是否安装成功
4.基础使用
-
scoop search <app>
- 搜索软件 -
scoop install <app>
- 安装软件 -
scoop info <app>
- 查看软件详细信息 -
scoop list
- 查看已安装软件 -
scoop uninstall <app>
- 卸载软件,-p
删除配置文件。 -
scoop update
- 更新 scoop 本体和软件列表 -
scoop update <app>
- 更新指定软件 -
scoop update *
- 更新所有已安装的软件 -
scoop checkup
- 检查 scoop 的问题并给出解决问题的建议 -
scoop help
- 查看命令列表 -
scoop help <command>
- 查看命令帮助说明
5.进阶使用
5.1.添加常用的bucket
1 | scoop bucket add extras |
5.2.清理安装包缓存
Scoop 会保留下载的安装包,对于卸载后又想再安装的情况,不需要重复下载。但长期累积会占用大量的磁盘空间,如果用不到就成了垃圾。这时可以使用 scoop cache
命令来清理。
-
scoop cache show
- 显示安装包缓存 -
scoop cache rm <app>
- 删除指定应用的安装包缓存 -
scoop cache rm *
- 删除所有的安装包缓存
如果你不希望安装和更新软件时保留安装包缓存,可以加上 -k
或 --no-cache
选项来禁用缓存:(可能会有报错)
-
scoop install -k <app>
-
scoop update -k *
5.3.删除旧版本软件
当软件被更新后 Scoop 还会保留软件的旧版本,更新软件后可以通过 scoop cleanup
命令进行删除。
-
scoop cleanup <app>
- 删除指定软件的旧版本 -
scoop cleanup *
- 删除所有软件的旧版本
与安装软件一样,删除旧版本软件的同时也可以清理安装包缓存,同样是加上 -k
选项。
-
scoop cleanup -k <app>
- 删除指定软件的旧版本并清除安装包缓存 -
scoop cleanup -k *
- 删除所有软件的旧版本并清除安装包缓存
5.4.全局安装(一般用于环境安装)
全局安装就是给系统中的所有用户都安装,且环境变量是系统变量,对于需要设置系统变量的一些软件就需要全局安装,比如 Node.js、Python,否则某些情况会出现无法找到命令的问题。
使用 scoop install <app>
命令加上 -g
或 --global
选项可对软件进行全局安装,全局安装需要管理员权限,所以需要提前以管理员权限运行的 PowerShell 。更简单的方式是先安装 sudo
,然后用 sudo
命令来提权执行:
1 | scoop install sudo |
使用 scoop list
命令查看已装软件时,全局安装的软件末尾会有 *global*
标志。
此外对于全局软件的更新和卸载等其它操作,都需要加上 -g
选项:
-
sudo scoop update -g *
- 更新所有软件(且包含全局软件) -
sudo scoop uninstall -g <app>
- 卸载全局软件 -
sudo scoop uninstall -gp <app>
- 卸载全局软件(并删除配置文件) -
sudo scoop cleanup -g *
- 删除所有全局软件的旧版本 -
sudo scoop cleanup -gk *
- 删除所有全局软件的旧版本(并清除安装包包缓存)
5.5.代理设置
Scoop 默认使用系统代理,手动指定代理,可以输入下面的命令。需要注意的是只支持 http 协议。
1 | scoop config proxy localhost:端口号 |
设置完可以通过
scoop config proxy
查看。
如果你想取消代理,那么输入下面的命令,这将会恢复使用系统代理。
1 | scoop config rm proxy |
5.6.常用命令总结
1 | # 安装软件 ## |
5.7.重装系统后如何恢复使用Scoop
重装系统之后, 如果把原有的scoop文件夹粘贴回去user文件夹,然后在powershell
中再次输入安装命令,会得到一个Scoop is already installed错误,要想正确恢复scoop,根据官方回答,请按照以下步骤:
重装系统之前,先完整复制用户目录下的scoop文件夹到别的地方
重装系统之后,将scoop文件夹粘贴回去用户目录
在环境变量设置中,新建一个用户变量,名字为SCOOP,值为当前scoop文件夹的地址,即:
C:\Users\xxxx\scoop
允许脚本执行:
set-executionpolicy remotesigned -s currentuser
双击用户变量中的path,新建一个路径,填入 :
%SCOOP%\shims
管理员权限powershell中运行:
scoop reset *
即可恢复所有软件的正常使用.
6.尾巴
Chocolatey
1.关于Chocolatey
Chocolatey是Windows平台上的包管理器,通过它可以集中安装、管理、更新各种各样的软件。类似Scoop,相比而言Scoop对环境的污染较小(软件都安装在C:\Users\xxx\scoop\apps
下),Chocolatey安装的包会在默认路径下,也就是C:\Program Files
目录下。故将Chocolatey作为备选项。
2.Chocolatey的安装(建议使用PowerShell)
考虑到这篇文章的信息会过时,安装的详细信息可依照官方指示。
- 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” |
- Windows PowerShell(管理员权限运行)
1 | Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1')) |
- 执行
choco
查看是否安装成功
3.常用命令
1 | #安装包 |
4.尾巴
国内建议使用Scoop(限速),Chocolatey已无法访问,若使用黑科技,可两者结合使用。