当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 如何安装 Chocolatey 并立即开始

作者:精品下载站 日期:2024-12-14 20:53:06 浏览:16 分类:玩电脑

如何安装 Chocolatey 并立即开始


如果您在整个环境中管理和维护软件方面遇到困难,那么您将会大受裨益。在本文中,您将学习如何安装 Chocolatey 并掌握您的软件包!

在本文中,您将亲自学习如何安装 Chocolatey、管理软件并基本了解该产品的运作原理。

相关:如何创建您的第一个巧克力包装

先决条件

本教程将是一个演练。如果您打算继续,请确保满足以下先决条件。

  • Windows 10 - 本教程将使用 Windows 10 1903。
  • Windows PowerShell 5.1(可选) - 尽管从技术上讲,Chocolatey 并不要求这样做,但本文中的所有示例都将使用它。

有关所有技术要求的完整详细信息,请查看巧克力要求页面。

安装巧克力

开始使用 Chocolatey 时,您的第一个任务是下载并安装 Chocolatey 客户端。从技术上讲,Chocolatey 也有一个服务器组件,但在本文中,您将重点关注使用客户端下载、安装和更新软件。

您可以通过多种不同的方式安装 Chocolatey。在本文中,您将学习最常见的方法,即使用 PowerShell。

有关以多种不同方式安装 Chocolatey 客户端的详细信息,请查看 Chocolatey 安装指南。

为了安装 Chocolatey,该公司提供了一个方便的 PowerShell 脚本来在您的系统上执行。在运行安装脚本之前,您应该首先在下载之前检查它。您可以在此处找到该脚本。

相关:如何以管理员身份运行 PowerShell

以管理员身份打开 PowerShell 控制台后,通过一个命令即可下载并执行脚本。

下面的代码片段:

  • 确保 PowerShell 可以导航 Chocolatey.org 服务器上的 SSL 证书
  • https://chocolatey.org/install.ps1下载脚本
  • 下载后运行脚本
  • %ALLUSERSPROFILE%\chocolatey\bin 文件夹添加到 PATH 环境变量
[System.Net.ServicePointManager]::SecurityProtocol = 3072
Invoke-Expression ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))"
SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"

[玩转系统] 如何安装 Chocolatey 并立即开始

您可能会遇到提及执行策略的错误。如果是这样,您当前的执行策略可能不允许脚本执行。要解决此问题,请务必放宽执行策略,将其变为 Unrestricted 或 RemoteSigned。

验证安装

PowerShell 脚本完成并且您返回到 PowerShell 控制台后,确认您可以运行名为 choco.exe 的 Chocolatey 客户端。

当您运行choco时,您应该会看到已安装的版本和一些基本帮助信息,如下所示。

PS51> choco
Chocolatey v0.10.15
Please run 'choco -?' or 'choco <command> -?' for help menu.~~

寻求帮助

Chocolatey CLI 客户端最好的事情之一就是它的帮助系统。内置帮助系统出色地记录了 Chocolatey 的所有功能。

要访问帮助系统,请为 choco 命令提供 -? 开关,如下所示。

您可以看到 Chocolatey 客户端具有各种命令,您可以在其中执行许多不同的功能来管理软件。

PS51> choco -?
This is a listing of all of the different things you can pass to choco.
 
Commands
 
 * list - lists remote or local packages
 * find - searches remote or local packages (alias for search)
 * search - searches remote or local packages (alias for list)
 * info - retrieves package information. Shorthand for choco search pkgname --exact --verbose
 * install - installs packages from various sources
 * pin - suppress upgrades for a package
 * outdated - retrieves packages that are outdated. Similar to upgrade all --noop
 * upgrade - upgrades packages from various sources
 * uninstall - uninstalls a package
 * pack - packages up a nuspec to a compiled nupkg
 * push - pushes a compiled nupkg
 * new - generates files necessary for a chocolatey package from a template
 * sources - view and configure default sources (alias for source)
 * source - view and configure default sources
 * config - Retrieve and configure config file settings
 * feature - view and configure choco features
 * features - view and configure choco features (alias for feature)
 * setapikey - retrieves, saves or deletes an apikey for a particular source (alias for apikey)
 * apikey - retrieves, saves or deletes an apikey for a particular source
 * unpackself - have chocolatey set itself up
 * version - [DEPRECATED] will be removed in v1 - use `choco outdated` or `cup <pkg|all> -whatif` instead
 * update - [DEPRECATED] RESERVED for future use (you are looking for upgrade, these are not the droids you are looking for)
 
 
Please run chocolatey with `choco command -help` for specific help on
 each command.

如果您在尝试弄清楚如何执行特定操作时遇到困难,请查看帮助系统!

寻找包裹

安装并运行 Chocolatey 客户端后,就可以查看可以安装哪些类型的软件包。客户端具有三个命令,允许您执行列表、搜索和查找的操作。这些命令在 Chocolatey 存储库中搜索可用的包或列出计算机上的包。

您将在下面找到帮助系统中的细分和示例。

PS51> choco list --help

List/Search Command
 
Chocolatey will perform a search for a package local or remote.
 
* choco list - lists remote or local packages
* choco search - searches remote or local packages (alias for list)
* choco find - searches remote or local packages (alias for search)
 
Usage:
 
choco search <filter> [<options/switches>]
choco list <filter> [<options/switches>]
clist <filter> [<options/switches>]
 
Popular Switch --localonly or -lo
Usage of -lo:
 
choco <search,list,find> --localonly

作为示例,下面是枚举本地计算机 (-lo) 上安装的所有软件包 (list) 的示例。

PS51> choco list -lo
Chocolatey v0.10.15
chocolatey 0.10.15
chocolatey-core.extension 1.3.3
GoogleChrome 77.0.3865.90
3 packages installed.

下载前检查 Chocolatey 包

在下载软件包之前,您应该始终了解该软件包的实际用途。幸运的是,您有 info 命令。此命令查找位于 Chocolatey 存储库上的包的详细信息。

通过 choco info,您可以查找包属性,例如包作者、下载计数、校验和、来源等。

请查看下面运行 choco info 的选项。

PS51> choco info --help

Info Command
 
Chocolatey will perform a search for a package local or remote and provide
detailed information about that package. This is a synonym for
`choco search <pkgname> --exact --detailed`.
 
* choco info pkgname - retrieves package information.
* Shorthand for choco search pkgname --exact --verbose
* Shorthand for choco search pkgname --exact --detailed
 
 
Usage:
 
choco info [<options/switches>]

例如,假设您需要安装 Google Chrome,并且您注意到有一个名为 googlechrome 的可用软件包。运行 choco info googlechrome 并注意您可以找到什么类型的信息。

PS51> choco info googlechrome
Chocolatey v0.10.15
GoogleChrome 77.0.3865.90 [Approved] Downloads cached for licensed users
Title: Google Chrome | Published: 9/18/2019
Package approved as a trusted package on Sep 18 2019 20:15:10.
Package testing status: Passing on Sep 18 2019 18:45:17.
Number of Downloads: 19851699 | Downloads for this version: 262131
Package url
Chocolatey Package Source: <https://github.com/chocolatey-community/chocolatey-coreteampackages/tree/master/automatic/googlechrome>
Package Checksum: 'v7bDDUTo21k31xqUW+1amzaEWjeOqsEgS3txYNRgRaO3Q7ZnkzYz4S69AxTFn4r0HUB5Wi7NHXZBag/OaJTPKA==' (SHA512)
Tags: google chrome web internet browser admin
Software Site: <https://www.google.com/chrome/browser/>
Software License: <https://www.google.it/intl/en/chrome/browser/privacy/eula_text.html>
Description: Chrome is a fast, simple, and secure web browser, built for the modern web.

安装软件包

获取有关软件包的信息已经足够了。是时候实际安装一些软件了!为此,请使用 choco install。

choco install 命令非常强大且必不可少。如果有一个命令是您应该记住并成为专家的,那就是这个。

一旦您知道需要什么,choco install 命令就会安装您提供的软件包或软件包列表。

运行 choco install --help 来查看您的选项。

PS51> choco install --help
 Install Command
 Installs a package or a list of packages
 Usage:
 choco install  [ ] []
     cinst  [ ] []
 Examples:
 choco install sysinternals
 choco install notepadplusplus googlechrome atom 7zip
 choco install notepadplusplus --force --force-dependencies
 choco install notepadplusplus googlechrome atom 7zip -dvfy
 choco install git -y --params="'/GitAndUnixToolsOnPath /NoAutoCrlf'"
 choco install git -y --params="'/GitAndUnixToolsOnPath /NoAutoCrlf'" --install-arguments="'/DIR=C:\git'"
     # Params are package parameters, passed to the package
     # Install args are installer arguments, appended to the silentArgs
     #  in the package for the installer itself
 choco install nodejs.install --version 0.10.35
 choco install git -s "'https://somewhere/out/there'"
 choco install git -s "'https://somewhere/protected'" -u user -p pass

保持巧克力包装更新

一旦安装了软件包,您无疑会希望使其保持最新状态。这是Chocolatey 的一个强大功能。

一旦安装了一些软件包,您很快就会发现 Chocolatey 不仅仅会在后台自动更新软件包。 Chocolatey 客户端不作为服务运行。

要更新已安装的 Chocolatey 软件包,您必须在每次需要升级时手动调用 choco。为此,请运行 choco Upgrade 命令以及需要升级的软件包。

如果系统上不存在该软件包,upgrade 命令将安装该软件包。

您将在下面找到帮助系统中的细分和示例。

PS51> choco upgrade --help
 Upgrade Command
 Upgrades a package or a list of packages. Some may prefer to use cup
  as a shortcut for choco upgrade. If you do not have a package
 installed, upgrade will install it.
 Usage:
 choco upgrade  [ ] []
 cup  [ ] []
 Examples:
 choco upgrade chocolatey
 choco upgrade notepadplusplus googlechrome atom 7zip
 choco upgrade notepadplusplus googlechrome atom 7zip -dvfy
 choco upgrade git -y --params="'/GitAndUnixToolsOnPath /NoAutoCrlf'"
 choco upgrade git -y --params="'/GitAndUnixToolsOnPath /NoAutoCrlf'" --install-args="'/DIR=C:\git'"
 Params are package parameters, passed to the package
 Install args are installer arguments, appended to the silentArgs
 in the package for the installer itself
 choco upgrade nodejs.install --version 0.10.35
 choco upgrade git -s "'https://somewhere/out/there'"
 choco upgrade git -s "'https://somewhere/protected'" -u user -p pass
 choco upgrade all
 choco upgrade all --except="'skype,conemu'"

您可以通过运行 choco update all 将所有软件包升级到最新版本。

查找本地、过时的软件包

如果您想在盲目运行 choco Upgrade 之前检查您的软件包是否有新版本,该怎么办?您可以使用outdated命令。 outdated 命令扫描您已安装的软件包并交叉引用您指定的软件包存储库以获取潜在的软件包更新。

看看下面的 choco outdated --help 可以做什么。

PS51> choco outdated --help

Outdated Command
 
Returns a list of outdated packages.
 
* outdated - retrieves packages that are outdated. Similar to upgrade all --noop
 
Usage:
 
choco outdated [<options/switches>]
 
Examples:
 
choco outdated
choco outdated -s <https://somewhere/out/there>
choco outdated -s "'<https://somewhere/protected>'" -u user -p pass

例如,如果您想查找所有本地安装的过期软件包,可以使用 choco outdated 来实现。

PS51> choco outdated
Chocolatey v0.10.15
Outdated Packages
Output is package name | current version | available version | pinned?
 
 
Chocolatey has determined 0 package(s) are outdated.

抑制包更新

绝对建议保持软件最新,但是如果您有需要明确防止这种情况的软件包怎么办?你为什么想这么做?

抑制更新的原因之一是避免更新冗余。例如,也许您可能只是想自动执行软件包的初始安装。您不想维护软件包的整个软件生命周期。

也许您需要在强制 Chocolatey 更新所有软件包时进行一些排除。在这种情况下,您可以固定包。

当您运行各种 Chocolatey 命令时,您将看到一个固定属性。例如,当运行outdated命令时,您可以清楚地看到该属性,如下所示。

PS51> choco outdated
Chocolatey v0.10.15
Outdated Packages
Output is package name | current version | available version | pinned?

下面您将在帮助系统中找到详细信息和示例

PS51> choco pin --help

Pin Command
 
Pin a package to suppress upgrades.
 
This is especially helpful when running `choco upgrade` for all
 packages, as it will automatically skip those packages. Another
 alternative is `choco upgrade --except="pkg1,pk2"`.
 
Usage
 
	choco pin [list]|add|remove [<options/switches>]
 
Examples
 
	choco pin
	choco pin list
	choco pin add -n=git
	choco pin add -n=git --version 1.2.3
	choco pin remove --name git
* pin - suppress upgrades for a package

卸载 Chocolatey 软件包

最后,也许您决定不再需要安装软件。无需手动进入控制面板,查找软件并以这种方式将其删除,而是使用 choco uninstall 命令来快速处理它。

choco uninstall 命令可以一次性删除一个或多个软件包。

请注意如何通过下面的帮助内容使用 choco uninstall 命令。

PS51> choco uninstall --help

Uninstall Command
 
Uninstalls a package or a list of packages.
 
Usage:
 
choco uninstall <pkg | all> [pkg2 pkgN] [options/switches]
cuninst <pkg | all> [pkg2 pkgN] [options/switches]
 
NOTE: `all` is a special package keyword that will allow you to
uninstall all packages.
 
Examples:
 
choco uninstall git
choco uninstall notepadplusplus googlechrome atom 7zip
choco uninstall notepadplusplus googlechrome atom 7zip -dv
choco uninstall ruby --version 1.8.7.37402
choco uninstall nodejs.install --all-versions

进行更改之前请谨慎行事 (choco Whatif)

如果执行不当,自动化软件管理可能会成为一项破坏性任务。与其立即进行大量更改,不如先运行测试看看会发生什么,这会更明智。幸运的是,Chocolatey 客户端有一些参数可以做到这一点。

WhatIf 开关

每个 choco 命令都有一个名为 --whatif 的开关,其别名为 --noop--what-if 。如果这些开关与 choco 命令一起使用,Chocolatey 不会实际执行该操作,但会告诉您将会发生什么。

您可以看到下面的示例,尝试卸载本地系统上的所有软件包,但使用 whatif 开关来阻止实际执行任何操作。

PS51> choco uninstall all -whatif

Chocolatey v0.10.15
_ Chocolatey:ChocolateyUninstallCommand - Noop Mode _
Would have uninstalled chocolatey v0.10.15.
Would have uninstalled GoogleChrome v77.0.3865.90.
Would have uninstalled chocolatey-core.extension v1.3.3.

确认行动

当您运行 choco install 来安装软件包时,系统通常会提示您确认是否要继续安装过程。 Choco 还需要确认作为初始包的依赖项被调用的其他包。

您可以在下面看到 Chocolatey 如何在实际执行操作之前首先提示安装 Firefox 的示例。

PS51> choco install firefox
Chocolatey v0.10.15
Installing the following packages:
firefox
By installing you accept licenses for the packages.
Progress: Downloading Firefox 69.0.1... 100%
 
Firefox v69.0.1 [Approved]
firefox package files install completed. Performing other installation steps.
The package Firefox wants to run 'chocolateyInstall.ps1'.
Note: If you don't run this script, the installation will fail.
Note: To confirm automatically next time, use '-y' or consider:
choco feature enable -n allowGlobalConfirmation
Do you want to run the script?([Y]es/[A]ll - yes to all/[N]o/[P]rint):

确认过程是万无一失的,但它可能会减慢您的速度。如果您希望该过程不间断地继续,请在命令末尾添加 -y、--yes--confirm 开关。

在无人值守的情况下运行命令(例如在计划任务中)时,使用 -y 开关效果很好。

后续步骤

现在您已经知道如何安装 Chocolatey 并在较高级别上使用它,接下来该做什么?现在尝试找到一个通常需要反复安装和升级的通用软件。

尝试构建一个脚本来使用 Chocolatey 来管理该软件,以入门并开始了解有关这个方便的 Windows 包管理器的更多信息!

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯