OS: windows
说明(core)
- choco默认安装到C盘,choco工具本身的安装位置可以修改
- 通过choco安装的软件的默认安装位置也是在C盘,也是可以修改
- 在通过choco安装其他软件的时候,通过参数指定安装的位置,否则就安装到默认的位置下
环境变量设置
- 变量名: ChocolateyInstall
- 变量值: G:\Chocolatey
# 设置choco这个工具的安装目录,结果是将choco这个工具直接解压在该目录下
安装choco
通过CMD安装(需要仔细看完说明)
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "[System.Net.ServicePointManager]::SecurityProtocol = 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
- 说明
- // 可以看出这句话是通过
cmd
调用终端来执行命令 - // 最后的
&& SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin其中的SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin
,是这只环境变量,让bin下的choco命令全局暴露 - // 安装choco的时候不是默认目录安装的话,不需要
&& SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin
这句话[该命令中的%ALLUSERSPROFILE%
表示C:\ProgramData
] - //
&& SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin
其中的SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin
可以直接不要,安装的时候会自动加上找到choco安装目录,并添加path
- // 可以看出这句话是通过
通过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://community.chocolatey.org/install.ps1'))
安装好了设置通过choco安装的软件的安装位置
choco config set --name installLocation --value "D:\Your\Custom\Install\Path"
查看choco的各种配置(如通过choco安装的软件的默认安装目录)
choco config list
通过choco工具安装其他软件并指定安装目录
choco install git -ia "'/DIR=G:\Programs\Git'" # ia==install-arguments
问题
-
以下是一些可能导致软件包不按预期安装到默认目录的原因:
-
软件包配置: 一些软件包可能在其 Chocolatey 脚本中硬编码了安装目录,而不考虑 Chocolatey 配置文件的设定。
-
软件包的支持程度: 不同的软件包创建者可能对 Chocolatey 的支持程度有所不同。有些软件包可能更注重用户定制,而有些可能更固定在默认的安装目录中。
-
Chocolatey 配置: 如果你已经通过 Chocolatey 配置文件(chocolatey.config)设置了默认安装目录,一些软件包可能会使用该配置,而其他可能忽略。
常用的choco命令
choco -v # 查看版本
choco config list # 查看安装了的软件
choco config get <configName
choco config set <configName> <value> # 设置配置
choco config set proxy http://localhost:1080 # 设置VPN,加速下载
choco config unset proxy # 取消代理
choco find keyword # 搜索
choco list keyword # 同上
# 搜索结果中 带有 [Approved] 是经过认证的,意味着更加安全,质量也有保障。
# Possibly broken 可能损坏了,不推荐安装
choco -? # - 后面是选项参数
choco list keyword -a # 搜索所有版本
choco list keyword -e # 精确匹配 -e 是 --exact 的缩写
choco list keyword --approved-oly # 只搜索通过的认证的包
choco list keyword --version=value # 搜索特定版本的包
choco -h #帮助
choco -y # 默认同意所有操作询问
choco list -l # 只显示本地安装的包
choco list --localonly # 同上
choco install pkgname1 pkgname2 # 安装
choco install pkgname -version 7.22.0 # 安装特定版本的包
# 如何安装特定范围的版本?目前还不支持
choco install pkgname -y # 直接安装,不需要再次确认运行脚本
# 指定目录安装
choco install <packageName> --install-arguments="'/INSTALLDIR=C:\Your\Custom\Install\Path'"
choco uninstall pkgname # 卸载
choco list -l # 查看版本号
choco outdated # 查看过时的包,可更新的包,最后一个 pinned 选项是说明包是否禁止升级
choco pin add -n=pkgname # 禁 止包升级,在升级所有时特别有用
choco pin add -n=git # 禁止 git 升级
choco pin add -n=git --version 1.2.3 # 禁止某个版本升级
choco pin remove --name git # 从禁止升级列表中移除
choco upgrade pkgname # 更新
choco upgrade --except="pkg1,pk2" # 更新是排除某些包和 pin 功能类似
choco upgrade all # 更新所有
知识点
- 环境变量
- 用户级环境变量
- 系统级别环境变量
- cmd 和 powershell
- powershell可以看成cmd的plus,并逐渐取代cmd
经验
- (建议使用Microsoft20推出的winget)
- choco工具安装软件的时候使用默认安装目录(上面提到过)
- 如果安装的时候指定安装目录(意思就是不是在choco官方指定的安装路径、很有可能安装出错),如果自已经修改了默认安装目录,那么choco就会将该软件安装到官方指定的目录
- 指定安装目录说明
- 安装目录需要安装包的支持
- 指定安装目录说明