Windows包管理器

Windows包管理器

Scoop

参考

安装命令

set-executionpolicy remotesigned -scope currentuser #用powershell执行
iex (new-object net.webclient).downloadstring('https://get.scoop.sh')  #然后执行

Scoop 基础语法

从上面的命令中,我们可以发现 Scoop 命令的设计很简单(和 Homebrew 等 Unix-style 的工具一样),是「scoop + 动作 + 对象」的语法。其中「对象」是可省略的。

img

最常用的几个基础动作有这些:

命令 动作
🌟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"

powershell以管理员身份运行

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 -local-only
  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
choco upgrade chocolatey   #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实现安装。

posted @ 2019-11-08 14:03  tomyyyyy  阅读(1001)  评论(0编辑  收藏  举报