想必小伙伴们苦恼 Windows 下没有和 Ubuntu 等 Linux 下方便的包管理吧,不过经过较长时间的体验我觉得 Scoop 可能是 Windows 上体验最好的「包管理器」。
那么如何安装 Scoop 呢?
首先你需要打开 PowerShell ,然后输入以下命令允许执行本地脚本。
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
然后运行以下命令安装 Scoop
Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')
# 或者使用短命令
iwr -useb get.scoop.sh | iex
Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')
# 或者使用短命令
iwr -useb get.scoop.sh | iex
静待脚本执行完成就可以了,安装成功后,让我们尝试一下:
# 显示帮助
scoop help
# 显示帮助
scoop help
这说明了 Scoop 安装成功了,通过 Scoop 安装的软件默认会位于 C:\Users\<user>\scoop
如果是安装到 global
环境的是 C:\ProgramData\scoop
。
Scoop 安装成功后我们就可以利用它来安装其他软件了,Scoop 的命令和 Linux 下的包管理器非常类似都是「scoop
+ 动作 + 对象」的语法,比较常用的动作主要是以下几种操作。
Scoop 常用操作
? 搜索,比如我们不清楚 Scoop 中是否有我们想要的软件或者不清楚 Scoop 中软件的名称,就可以使用 scoop search <app>
来查找软件。
# 搜索软件
scoop search aria2
# 搜索软件
scoop search aria2
? 查看软件相关信息,当我们通过搜索找到软件的名称,但是不确定是否是该软件的时候,我们就可以通过 scoop [info|home] <app>
进一步确认软件
# 查看软件信息
scoop info firefox
# 打开软件主页
scoop home firefox
# 查看软件信息
scoop info firefox
# 打开软件主页
scoop home firefox
? 安装,确认软件了,我们就可以开始安装了 scoop install <app>
,注意:Scoop 偶尔 可能会因为网络错误安装失败,但是 Scoop 会显示已安装,这时可以用 scoop uninstall <app>
卸载,然后再次安装
# 安装软件
scoop install aria2
# 先安装sudo用以提权
scoop install sudo
# 全局安装
sudo scoop install -g aria2
# 安装软件
scoop install aria2
# 先安装sudo用以提权
scoop install sudo
# 全局安装
sudo scoop install -g aria2
? 卸载,安装后如果不喜欢这个软件怎么办?当然是卸载呀,那么 Scoop 如何卸载呢,很简单 scoop uninstall <app>
即可完成卸载,不过作为 Debian Apt 党怎么可能喜欢 uninstall
,remove
走起(。・∀・)ノ
# 卸载软件
scoop uninstall aria2
# 或者可以执行以下命令将remove添加到alias,这样就可以用remove了
scoop alias add remove 'scoop uninstall $args' 'Uninstalls app'
# 如果提示重复就删除掉再重新添加
scoop alias rm remove
# 这时就可以用remove来卸载软件了
scoop remove aria2
# 卸载软件
scoop uninstall aria2
# 或者可以执行以下命令将remove添加到alias,这样就可以用remove了
scoop alias add remove 'scoop uninstall $args' 'Uninstalls app'
# 如果提示重复就删除掉再重新添加
scoop alias rm remove
# 这时就可以用remove来卸载软件了
scoop remove aria2
? 升级,那么软件有新版了如何升级呢?用 scoop update <app>
就可以了,那我要一键升级所有的软件呢?用 scoop update *
,或者可以添加 upgrade 的别名,那我的一个软件不想升级怎么办?可以利用 scoop hold <app>
放置某个软件更新
# 升级一个软件
scoop update aria2
# 升级所有软件
scoop update *
# 添加upgrade别名
scoop alias add upgrade 'scoop update *' 'Update all app'
# 添加后就可以用scoop upgrade升级所有软件了
scoop upgrade
# 禁止软件更新
scoop hold aria2
# 允许软件更新
scoop unhold aria2
# 升级一个软件
scoop update aria2
# 升级所有软件
scoop update *
# 添加upgrade别名
scoop alias add upgrade 'scoop update *' 'Update all app'
# 添加后就可以用scoop upgrade升级所有软件了
scoop upgrade
# 禁止软件更新
scoop hold aria2
# 允许软件更新
scoop unhold aria2
? 清除旧版本,升级后 Scoop 并不会自动删除旧版本,而只是将当前版本切换到新版,当我们需要删除的时候就可以使用 scoop cleanup [<app>]
清除旧版本
# 清除单个软件的旧版本
scoop cleanup aria2
# 清楚所有安装软件的旧版本
scoop cleanup
# 清除单个软件的旧版本
scoop cleanup aria2
# 清楚所有安装软件的旧版本
scoop cleanup
? 切换版本,有时候我们需要使用到旧版的软件怎么办?比如 Python3 和 Python2 的切换,这时我们可以用 scoop reset <app>@<version>
# 我个人比较推荐的方式
scoop reset php@7.4.1
# 或者
scoop reset python27
# 我个人比较推荐的方式
scoop reset php@7.4.1
# 或者
scoop reset python27
? 检查状态,有时候我们不想直接升级,而是想看看是否有新版本,或者有的应用安装失败需要重新安装的我们没注意到怎么办?用 scoop status
就行啦
# 检查状态
scoop status
# 检查状态
scoop status
? 列出已安装软件列表
# 列出已安装软件列表
scoop list
# 列出已安装软件列表
scoop list
? 添加软件源,当我们需要的软件不在列表中怎么办?这时我们就可以看看有没有软件源中包含了我们需要的软件,Scoop 的软件源称之为桶 bucket
,在 rasa/scoop-directory 上可以找到所有的 Scoop 桶,添加桶 scoop bucket add <bucket_name> <bucket_url>
,删除桶 scoop bucket rm <bucket_name>
# 添加桶
scoop bucket add extras https://github.com/lukesampson/scoop-extras.git
# 删除桶
scoop bucket rm extras
# 添加桶
scoop bucket add extras https://github.com/lukesampson/scoop-extras.git
# 删除桶
scoop bucket rm extras
? 清除缓存
# 查看缓存
scoop cache
scoop cache show aria2
# 删除缓存
scoop cache rm *
scoop cache rm aria2
# 查看缓存
scoop cache
scoop cache show aria2
# 删除缓存
scoop cache rm *
scoop cache rm aria2
? 别名,有的时候,我们不喜欢 Scoop 的某些命令,比如 scoop uninstall <app>
怎么办?可以添加别名来解决 scoop alias add <name> <command> <description>
# 添加
scoop alias add remove 'scoop uninstall $args' 'Uninstall apps'
# 删除
scoop alias rm remove
# 添加
scoop alias add remove 'scoop uninstall $args' 'Uninstall apps'
# 删除
scoop alias rm remove
结语
至此你应该能很好的使用 Scoop 来管理你的 Windows 软件了。
Windows 下还有一个 Chocolatey 这个包管理器,为什么不使用 Chocolatey 呢?毕竟它毕竟全,若你用过了 Chocolatey ,你一定会苦恼 Chocolatey 乱放软件,一会儿 C:/tools
一会儿 C:/Program Files
,这是因为它是使用传统软件安装的方式来安装软件了,只是将找软件,下软件,删软件的步骤省掉了而已,并没有解决放置软件的问题。Scoop 的 Wiki 有 完整的对比
对了,若你也是 Laragon 的使用者的话我后续会发布将 Laragon 和 Scoop 集成的文章,如果等不及也可以直接上手 star2000/scoop-ext-laragon
「一行代码」优雅管理 Windows 软件
https://blog.ixk.me/post/one-line-of-code-elegantly-manages-windows-software许可协议
BY-NC-SA
本文作者
Otstar Lin
发布于
2020/01/22
转载或引用本文时请遵守许可协议,注明出处、不得用于商业用途!