平时在 Windows 下,安装软件都是在各种网站上下载,运气好的话在官网上直接可以找到正版软件,运气不好的话找半天还下载了一些乱七八糟的软件,容易中病毒还浪费时间。并且下载好后的软件,一方面要指定它的安装位置(如果自己没有指定一个固定位置的话使用默认位置,每个软件的默认位置还不一定一样),另一方面还要配置环境变量之类的信息更麻烦了,最最最后,如果你要删除该软件,使用 Windows 卸载/删除程序还不一定能删除干净。总而言之,在 Windows上缺乏一个像Ubuntu 的apt-get
之类的包管理工具。
正好,最近发现了一款不错的包管理工具: Scoop
Scoop有如下优点:
通过这款工具,我们可以轻松方便的管理Windows上的软件了
$psversiontable.psversion.major # should be >= 5.0
set-executionpolicy remotesigned -scope currentuser
其中remotesigned
当然可以换成Unrestricted
,但是安全性不那么高,如果不确定的话最好还是使用remotesigned
# config env
$env:SCOOP='D:\scoop'
[environment]::setEnvironmentVariable('SCOOP','D:\scoop','User')
全局安装目录配置:
# config app install dir
[environment]::setEnvironmentVariable('SCOOP_GLOBAL','D:\software','Machine')
$env:SCOOP_GLOBAL='D:\software'
在 Powershell 命令行内执行如下脚本:
iex (new-object net.webclient).downloadstring('https://get.scoop.sh')
然后静待脚本执行完成即可,安装成功后,可以在终端内输入scoop
,如果如下所示则说明安装成功
使用Scoop的命令十分简单,它的语法组成是:
scoop + 动作 + 对象
安装软件的方法很简单,例如需要安装’firefox和
git`等软件,只需要
scoop install firefox git
可以一次性安装多个软件,只需要使用空格隔开
如果需要安装在全局位置,则需添加-g
参数,即:
scoop install -g firefox git
基础语法如下:
命令 | 动作 |
---|---|
⭕search | 搜索软件名 |
⭕install | 安装软件 |
update | 更新软件 |
status | 查看软件状态 |
uninstall | 卸载软件 |
info | 查看软件详情 |
home | 打开软件主页 |
list | 显示已安装软件 |
cleanup | 清理旧版软件 |
其中最常用的就是search
和install
了
软件安装正如上所说,只需要scoop install
即可
但是可能安装的软件有多个版本,安装前应该使用scoop search
查看各种版本,选择需要的版本
如果search
不到软件,可能实在scoop
中没有该软件,需要额外手动添加到scoop
的bucket
里,添加命令如下:
scoop bucket add
因为scoop自带的下载APP比较少,如果每遇到一个找不到的软件就自己重新添加实在是太麻烦,正巧官方已经提供了需要额外的app列表,里面涵盖了大量常用的软件,只需要执行如下命令将其全部添加到scoop
中:
# 需要提前安装 git
scoop bucket add extras https://github.com/lukesampson/scoop-extras.git
安装好后如果需要安装该软件,只需要在软件名字前添加一个extra
,比如安装Firefox
scoop install extras/firefox
更多的库:lukesampson/scoop/blob/master/buckets
{
"main": "https://github.com/ScoopInstaller/Main",
"extras": "https://github.com/lukesampson/scoop-extras",
"versions": "https://github.com/ScoopInstaller/Versions",
"nightlies": "https://github.com/ScoopInstaller/Nightlies",
"nirsoft": "https://github.com/kodybrown/scoop-nirsoft",
"php": "https://github.com/ScoopInstaller/PHP",
"nerd-fonts": "https://github.com/matthewjberger/scoop-nerd-fonts",
"nonportable": "https://github.com/oltolm/scoop-nonportable",
"java": "https://github.com/ScoopInstaller/Java",
"games": "https://github.com/Calinou/scoop-games",
"jetbrains": "https://github.com/Ash258/Scoop-JetBrains"
}
以及Github上一个收集了大量bucket
及打分情况的项目,如果需要安装更多软件,可以在这里寻找需要的bucket
。
添加自己的bucket
:
GitHub
仓库,例如名为my-bucket
bucket
中添加一些你需要安装的app
git clone https://github.com/<your-username>/my-bucket
cd my-bucket
'{ version: "1.0", url: "https://gist.github.com/lukesampson/6446238/raw/hello.ps1", bin: "hello.ps1" }' > hello.json
git add .
git commit -m "add hello app"
git push
scoop bucket add my-bucket https://github.com/<your-username>/my-bucket
scoop bucket list # -> you should see 'my-bucket'
scoop search hello # -> you should see hello listed under, 'my-bucket bucket:'
scoop install hello
hello # -> you should see 'Hello, !'
Scoop默认在用户根目录(C:\Users\用户名
)下,创建一个名为 scoop 的文件夹,并默认将软件下载安装到该文件下。
将软件安装到一个相对隔离的环境下(Each program you install is isolated and independent),从而保证环境的统一和路径不被污染。
scoop 文件夹下的 apps 存放有安装的所有应用。值得一提的是:scoop 是通过 shim 来软链接一些应用,这样的设计让应用之间不会互相干扰,十分方便。
需要不时检查scoop
的版本状态,使用scoop status
命令,如果出现
WARN Scoop is out of date. Run 'scoop update' to get the latest changes.
则需要运行scoop update
更新版本
scoop updata
scoop updata * # 更新所有软件
对于其他已安装的软件的更新,需要运行如下脚本:
scoop install aira2
),安装后 scoop 会优先调用 aria2 来下载软件; aria2-enabled (default: true)
aria2-retry-wait (default: 2)
aria2-split (default: 5)
aria2-max-connection-per-server (default: 5)
aria2-min-split-size (default: 5M)
[1] Scoop Wiki
[2] GitHub地址
[3] 再谈谈 Scoop 这个 Windows 下的软件包管理器
[4] 「一行代码」搞定软件安装卸载,用 Scoop 管理你的 Windows 软件
[5] 使用 scoop 安装管理 windows 软件
[6] 用 Scoop 改善 Windows Powershell