分享

Chocolatey 心得

 小仙女本仙人 2020-12-30

Chocolatey官网

Chocolatey是一款Windows平台的包管理工具,类似于centos的yum或ubuntu的apt。通过Chocolatey,可以实现软件,尤其是各式开源软件的一键安装与一键升级。

Chocolatey的文档写的非常好,这点即使在众多新兴软件中也不多见,强烈建议直接看官方文档:https:///docs

安装Chocolatey

官网教程为https:///install,在有管理员权限的powershell下执行以下安装脚本即可:

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https:///install.ps1'))

查找包

可用 search/find/list 指令查找包,支持模糊查询。如果想看有哪些包,可以直接去官网看:https:///packages

注意,现在的官网文档不再列出find指令,之后可能会被废弃。具体指令为:

choco search <filter> [<options/switches>]
choco list <filter> [<options/switches>]
clist <filter> [<options/switches>]
  • 列出本地的包 clist -l-l--lo--localonly--lolcal-only的简写
  • 列出本地的包与电脑安装过的软件 choco list -li 或 choco list -l -i
    • -i需要配合-l使用,用于列出不归Chocolatey管理的程序
 
clist 是 `choco -list` 的简写。
clist -l
clist potplayer

outdated 列出可升级的包

在大于0.9.9.6的版本中,可通过指令choco outdated列出待升级的包

upgrade 升级

update 指令已/即将被弃用,现在升级只用upgrade

choco upgrade all -y

choco upgrade 指令可简写为 cup,如cup all -y

pin 固定

用于固定软件,使得在执行升级全部包时自动跳过;通过维护一张固定列表实现该效果

用法:

  • 添加至固定列表:choco pin add -n=git,其中-n-name的简写
  • 从固定列表移除:choco pin remove -n=git
  • 列出固定列表:choco pin list

install 安装

choco install 可简写为 cinst,语法为:

choco install <pkg|packages.config> [<pkg2> <pkgN>] [<options/switches>]
cinst <pkg|packages.config> [<pkg2> <pkgN>] [<options/switches>]
  • 添加参数以跳过包校验:--ignore-checksums
  • 可一次性下载多个包,如:choco install a b c ... -y

如用代理安装vscode并自动确认:

choco install vscode -y --proxy=127.0.0.1:10809

uninstall 卸载

choco uninstall,可简写为 choco cuinst

功能扩展

Chocolatey 定时自动升级所有软件

choco install choco-upgrade-all-at

有一个非官方的包(choco-upgrade-all-at)提供了该功能,介绍地址:https:///packages/choco-upgrade-all-at

该包添加了两个计划任务,一个定时执行choco upgrade all -y来升级所有包,一个定时结束升级指令。如果不需要升级,请用pin指令固定版本。

  • 若不设置任何参数,默认每天的2点开始升级,4点结束升级
  •  choco install choco-upgrade-all-at --params "'/TIME:23:00'"  设置每天晚上11点开始升级,凌晨4点结束升级
  •  choco install choco-upgrade-all-at --params "'/DAILY:yes /TIME:04:00 /ABORTTIME:08:00'"  设置凌晨4点到8点升级
  •  choco install choco-upgrade-all-at --params "'/WEEKLY:yes /DAY:SUN /TIME:01:00'"  设置每周周1的1点到4点升级

 

 

Chocolatey 开机自动升级所有包

上一节的简化版(同一个人在维护),同样是通过定时任务实现,效果是开机后自动升级所有包。https:///packages/choco-upgrade-all-at-startup

指令:choco install choco-upgrade-all-at-startup

 

feature 配置

  • 查看配置项choco feature list,有非常详细的说明
  • 启用/禁用配置项choco enable/disable -n={feature},其中-n 为-name 的简写

 

默认不启用的常用配置项:

  • 启用全局的自动确认:allowGlobalConfirmation
  • 启用病毒检查:virusCheck
  • 检测到需要重启时,不执行安装、升级、卸载指令:exitOnRebootDetected
  • 执行升级时,继续使用安装时所使用的参数(这样升级全部包时会比较方便,目前仅测试,在新版本正式上线后将默认启用):useRememberedArgumentsForUpgrades
  • 去掉输出内容的颜色:logWithoutColor

付费功能

Pro Edition (Individual) 要700+,可用1-8台电脑

状态同步

所有付费版本都支持功能。当从外部移除或升级Chocolatey管理的软件时,Chocolatey会更新其状态(移除包记录或提示升级)。

sync 自动同步

仅支持商业版!Chocolatey商业版可以检测电脑安装的软件,将不归Chocolatey管理的软件纳入管理。官方文档地址:https:///docs/features-synchronize#sync-command

指令很简单:choco sync

 

尚未实现的功能

不创建桌面图标

很遗憾,目前Chocolatey不支持该功能,可见 github issue https://github.com/chocolatey/choco/issues/4

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多