Windows包管理器
Scoop
安装命令
set-executionpolicy remotesigned -scope currentuser #用powershell执行
iex (new-object net.webclient).downloadstring('https://get.scoop.sh') #然后执行
使用:
Scoop 基础语法
从上面的命令中,我们可以发现 Scoop 命令的设计很简单(和 Homebrew 等 Unix-style 的工具一样),是「scoop
+ 动作 + 对象」的语法。其中「对象」是可省略的。
最常用的几个基础动作有这些:
命令 | 动作 |
---|---|
🌟search | 搜索软件名 |
🌟install | 安装软件 |
update | 更新软件 |
🌟status | 查看软件状态 |
uninstall | 卸载软件 |
info | 查看软件详情 |
home | 打开软件主页 |
举几个例子,比如:
- 我们想要搜索一下有没有 Firefox 浏览器:
scoop search firefox
- 我们想要安装 aria2 下载器:
scoop install aria2
- 我们想要卸载7zip:
scoop uninstall 7zip
Scoop 把软件安装在哪儿?
- Scoop 在你的用户根目录(一般是 C:\Users\用户名)下创建了一个名为 scoop 的文件夹,并默认将软件下载安装到这个文件夹下
- Scoop 将软件安装到一个相对隔离的环境下(Each program you install is isolated and independent),从而保证环境的统一和路径不被污染
添加仓库
scoop自带的main bucket软件过少,我们需要添加官方维护的extras bucket:
scoop bucket add extras
# 之后就可以安装我们所需的软件了,附我的安装软件清单:
scoop install calibre gimp inkscape latex vscode-portable zotero
#第三方bucket
#若在scoop search中找不到需要的软件,可以上github上的第三方bucket查找一下。
#https://github.com/rasa/scoop-directory/blob/master/by-score.md
#比如安装cajviewer,添加bucket:
scoop bucket add scoopbucket https://github.com/yuanying1199/scoopbucket
#安装cajviewer:
scoop install scoopbucket/cajviewerlite
Chocolatey
安装:cmd以管理员身份运行
@"%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"
power以管理员身份运行
iex ((new-object net.webclient).DownloadString(‘https://chocolatey.org/install.ps1‘))
使用
#### 搜索软件
choco search curl -all
choco search node
#### 安装软件
choco install jdk8
choco install python
choco install ruby
choco uninstall ruby
#### 查看软件
choco list -localonly
choco list -li
choco list -lai
choco list --page=0 --page-size=25
choco search git
choco search git -s "'https://somewhere/out/there'"
choco search bob -s "'https://somewhere/protected'" -u user -p pass
#### 升级软件
choco upgrade curl
#### 卸载软件
choco uninstall curl
choco list -li #查看本地安装的软件
choco search nodejs #查找安装包
choco install sublimetext3 #下载
choco uninstall sublimetext3 #卸载
choco upgrade sublimetext3 #更新(update)
https://chocolatey.org/packages #包库,可以搜索软件,按照命令安装
https://chocolatey.org/docs/uninstallation #卸载Chocolatey
区别
从外观上来看Scoop和Chocolatey的界面比较相似。不过通过深入发掘你就会发现几个比较小但很重要的差异。其中最重要的差别在于两款工具是针对的不同的用户群。
Chocolatey的自我定位是Windows系统的“软件管理自动化”。它能够在无需人工干预的情况下自动安装超过20种Windows软件包类型,而且开箱即用,支持配置超过7000款主流软件,包括Google Chrome和VLC多媒体播放器等桌面热门应用程序。
Scoop同样可以通过单命令安装Windows软件,不过它的适用目标相对来说更狭窄,也更有针对性。这款软件包管理工具更多的时候是帮助开发者安装系统工具时使用,尤其是那些依赖于Linux但在Windows系统上不存在的软件程序。
根据该软件作者的描述,Scoop的定位主要是“开源、命令行的开发者工具”。Scoop同样能够安装诸如Chrome和VLC这样的常规Windows程序,但在做这些事情之前用户需要额外手动添加附加库。
对于那些只需要一个软件包管理工具的普通用户来说,Chocolatey应该是最佳的选择。用户不需要进行任何额外配置,就能安装数百款热门应用程序。此外如果用户并不希望使用终端,甚至还能获得GUI图形界面。
不过Chocolatey的普遍适用性也带来了额外的复杂性。Chocolatey依赖于Windows PowerShell及其NuGet包管理器系统,该系统主要用于解决软件库依赖关系。Chocolatey也往往需要管理员权限才能运行使用,这就意味着你将会被UAC弹出窗口打断。
相比之下,Scoop并不使用NuGet而且不会进行全局安装。相反,这些应用程序的范围会被限定在你的用户账户中,并安装到特殊目录以避免路径污染。 Scoop甚至将自己与被视为包管理器的距离保持距离,因为它只是“读取描述如何安装程序及其依赖关系的清单”。
但是,如果要将程序范围限定为用户帐户,没有管理员权限或主要寻找开发人员工具,Scoop应该是您的首选。它在技术上更简单,对系统的目录结构影响较小,而且比Chocolatey更轻量级。通过添加scoop-extras存储库可以轻松添加对流行的Windows桌面程序的支持。
当然,Chocolatey和Scoop都有许多额外的功能,优点和缺点,我们在这里没有讨论过。特别是,Chocolatey拥有许多针对企业的专业能力,使其更适合企业和系统管理员。同时,Scoop简化的“包”模型意味着应用程序开发人员添加支持相当简单 - Git存储库中的单个文件将通过Scoop实现安装。