Chocolatey - 类似于yum或apt-get,但适用于Windows
你可以直接叫我choco。
构建状态
聊天室
来加入我们的社区聊天室,讨论有关Chocolatey的话题。
请确保你已阅读并同意关于沟通的礼仪。
支持Chocolatey!
看看Chocolatey的实际操作
Chocolatey FOSS安装,展示了Tab自动完成和refreshenv
(一种无需重启shell即可更新环境变量的方法):
Chocolatey Pro 展示了私有CDN下载缓存和病毒扫描保护:
关于沟通的礼仪
如果你是一个请求支持的开源用户,请记住Chocolatey社区中的大多数人都是志愿者,他们在开源之外还有自己的生活,并不是为确保一切都为你正常运作而获得报酬,所以在请求帮助时请考虑他人的时间。我们中的许多人也有需要时间照顾的家庭,每天能够付出的时间是有限的。一点体贴和耐心可以产生很大的影响。毕竟,你正在免费使用一个相当不错的工具。它可能还不是完美的(暂时),我们都知道这一点。 如果您使用的是Chocolatey的商业版本,条款有所不同!请参阅支持页面。
信息
- Chocolatey网站和社区包存储库
- 邮件列表 / 仅发布公告的邮件列表 / 构建状态邮件列表
- Twitter / Facebook / GitHub
- 博客 / 通讯
- 文档 / 支持
文档
请查看文档
尝试使用 choco.exe -?
或 choco.exe -h
。对于特定命令,添加命令后加上帮助开关,例如 choco.exe install -h
。
系统要求
- .NET Framework 4.8+
- PowerShell 2.0+
- Windows Server 2008 R2+ / Windows 10+
- 有关更多信息,请参阅我们的文档中关于支持生命周期和支持的操作系统的部分
许可证 / 致谢
Apache 2.0 - 请查看 LICENSE 和 NOTICE 文件。
提交问题
- 如果您遇到包的问题,请参阅"请求包修复或更新 / 成为现有包的维护者"。
- 如果您希望向社区源添加包(即 https://community.chocolatey.org/packages),请参阅"包请求"。
- 首先查看故障排除和常见问题解答,看看您的问题或疑问是否已有答案。
- 如果没有找到或解决,请按以下途径之一进行:
- 如果您是付费客户,请查看支持页面。您也可以在Licensed Issues提交问题,我们将代表您向其他渠道提交问题。另一种方式是使用电子邮件支持,让我们代表您提交工单和其他渠道(以保护您的隐私)。
- 如果是网站(社区包存储库,即https://community.chocolatey.org)的功能请求或问题,请在Chocolatey.org仓库提交问题。
- 如果您发现GUI(Chocolatey GUI)的问题或想提交功能增强,请查看ChocolateyGUI仓库。
- 如果您发现客户端(choco.exe)的问题,您来对地方了。请继续阅读下面的内容。
提交问题时请注意以下帮助:
先决条件:
- 问题必须与choco本身有关,而不是包或网站问题。
- 请快速搜索现有问题,检查您的问题是否已存在。从一个相关术语开始,如果结果太多再添加其他术语。
- 您不是提交"功能增强"。功能增强应遵循CONTRIBUTING指南。
- 您不是提交问题 - 问题最好通过电子邮件或社区聊天提出。
- 请确保您已阅读并同意有关沟通的礼仪。
提交工单:
- 我们需要调试和详细输出,请运行并使用
-dv
或--debug --verbose
捕获日志。您可以将其与问题一起提交或创建 gist 并提供链接。 - 请注意,某些命令的调试/详细输出可能包含与 Chocolatey 相关的敏感数据(密码或 API 密钥),因此在提交问题之前,请先删除这些信息。
- choco.exe 会将日志记录到
$env:ChocolateyInstall\log\
目录下的文件中。您可以从那里获取特定的日志输出,而无需捕获或重定向屏幕输出。请将包含的内容限制为仅运行的命令(每个命令都会追加到日志中)。 - 请将日志输出保存在 gist 中(将文件保存为
log.sh
),并在问题中提供 gist 的链接。可以将其设为私密,以避免占用您的公开 gist。任何拥有直接链接的人仍然可以访问私密 gist。如果您不小心在 gist 中包含了机密信息,请删除它并创建一个新的(任何人都可以查看 gist 历史记录),然后更新问题中的链接(问题历史记录不会保留,除非通过电子邮件 - 删除 gist 可确保没人能访问它)。以这种方式使用 gist 还可以防止意外的机密信息被直接分享在问题中。 - 我们需要完整的运行日志输出,请不要将其限制在您认为相关的区域。您可能会错过一些我们需要了解的重要细节。这将有助于加快问题分类的速度。
- 包含 choco 版本、操作系统版本和 PowerShell (Posh) 版本会很有帮助 - 调试脚本应该能捕获所有这些信息。
- 尽可能包含截图和/或动画 GIF,它们可以帮助我们准确了解问题所在。
贡献
如果您想贡献代码或帮助解决一两个 bug,那太棒了。请先熟悉 CONTRIBUTING。
本项目使用 .editorconfig 文件以帮助保持代码的一致性。 未遵循这些定义的约定而产生的错误和警告将来会在构建时强制执行,因此请确保您的贡献遵守其中定义的规则,并且在 Visual Studio 中不会产生警告或错误。
提交者
提交者,您应该非常熟悉 COMMITTERS。
编译/构建源代码
有一个 build.bat
/build.sh
文件用于创建必要的生成文件 SolutionVersion.cs
。在 Visual Studio 构建之前,必须至少运行一次。
Windows
先决条件:
- .NET Framework 4.8+
- Visual Studio 2019+
- ReSharper 非常有帮助(有一个
.sln.DotSettings
文件可以帮助遵守代码约定)。
构建过程:
- 运行
build.bat
。
在 Windows 上运行构建应该会生成经过测试并可以使用的产物。
其他平台
先决条件:
- 安装并配置 Mono。Mono 6.6 或更新版本应该可以工作,请参阅
docker/Dockerfile.linux
了解当前推荐的 Mono 版本。- Linux 系统;请参阅 Linux 的 Mono 安装说明
- Mac 系统;请参阅 Mac 的 Mono 安装说明
- 安装 .NET 6.0 SDK 或更新版本。这用于构建脚本。
- Linux 系统;请参阅 在 Linux 上安装 .NET
- Mac 系统;请参阅 在 macOS 上安装 .NET
- 这是 Cake 构建过程中使用的一些 Dotnet Global Tools 所必需的。.NET Frameworks 等效构建在 Mono 上不起作用。
- 如果从 Git 构建,则需要安装 Git 2.22+ 版本。
- MonoDevelop 对处理源代码很有帮助。
构建前:
- 考虑将以下内容添加到您的
~/.profile
(或其他相关的点源文件)中:
# Mono
# http://www.michaelruck.de/2010/03/solving-pkg-config-and-mono-35-profile.html
# https://cloudgen.wordpress.com/2013/03/06/configure-nant-to-run-under-mono-3-06-beta-for-mac-osx/
export PKG_CONFIG_PATH=/opt/local/lib/pkgconfig:/Library/Frameworks/Mono.framework/Versions/Current/lib/pkgconfig:$PKG_CONFIG_PATH
- 正确设置您的权限:
chmod +x *.sh
构建过程:
- 运行
./build.sh
。
在 Mono 上运行构建会产生类似于 Windows 的构建结果,但可能会有更多粗糙的边缘。在构建脚本中可能会出现一两个可以安全忽略的失败。
在其他平台上安装:
- 获取源代码副本并构建。
- 将
./code_drop/temp/_PublishedApps/choco
的内容复制(或链接)到您首选的安装目录。在 Linux 上,首选目录是/opt/chocolatey
。 - 导出
ChocolateyInstall
环境变量,指向构建输出被复制到的安装目录。 - 将
./docker/choco_wrapper
复制到$PATH
上的一个目录,重命名为choco
,如果安装目录不是/opt/chocolatey
,则编辑它以指向正确的路径。
致谢
Chocolatey 由众多人员和框架共同打造。详见 CREDITS(在 zip 文件夹中即为 LEGAL/Credits.md)。