#Windows 常用的包管理工具介绍
Windows 下常用的包管理工具包括 vcpkg,choco,nuget,winget,scoop
- vcpkg 是 VC++包管理工具
- nubet 是.Net 包管理工具
- Winget 是官方出品安装工具,有时候可以代替 Microsoft Store 下载
- Scoop 把所有的库或者程序都放在单独管理的目录下。
- Choco 是最早的包管理工具,库多但是容易出问题,而且需要管理员权限。
个人推荐:装工具的话,优先级排序 Winget > Scoop > Choco
vcpkg
Vcpkg是一个跨平台的C++库管理工具,由微软开发,支持在Windows、Linux和macOS等操作系统上使用。12
Vcpkg的主要特点包括:
支持超过1500个C++库,如Boost、OpenSSL、SDL2等,简化了这些库的下载和配置过程。
自动化下载开源库的源代码,并支持一键安装第三方库。
提供源码包的缓存管理和版本管理,允许用户安装指定的版本。
自动检查库的依赖关系,并安装其依赖项。
无缝集成Visual Studio,无需手动设置任何库相关的路径。
支持Visual Studio的全平台编译,包括Debug/Release、x86/x64以及UWP、ARM平台。
Vcpkg也支持自定义安装选项,允许用户根据自己的需求配置库的安装。它还提供了一个清单文件格式,用于声明直接依赖项并添加可选功能或版本约束。此外,vcpkg还具有处理包版本的独特方法,确保了依赖项管理的轻便性和无冲突性。
nuget
它就是一个包(package)管理平台,确切的说是 .net平台的包管理工具,它提供了一系列客户端用于生成,上传和使用包(package),以及一个用于存储所有包的中心库即NuGet Gallery,如果有需要也可以搭建自己的私有NuGet库
对于一个现代化的开发平台,建立一种让开发者创建,分享与使用可复用代码的机制是十分必要的。这种“可复用代码”被打包后的文件通常被称作“包”(package),对于.NET(包括 .NET Core)平台来说这个机制的实现就是NuGet平台。
NuGet的实现均为开源项目,包括了客户端工具,服务器,官方网站以及各语言的文档等。 这些项目可以在下面的链接中找到。
winget
Winget 是一个免费的下载管理器,主要用于 Windows系统,支持多线程下载和断点续传,能够处理 HTTP、FTP、BT等多种下载方式。
Winget 的特点包括功能简洁全面,如搜索、下载、安装、升级和卸载软件包。它旨在通过命令行操作,提供便捷的软件管理体验,同时确保安全可靠,因为软件包来自微软官方或可信的源。Winget 的命令相对简单,易于学习,并且可以与 Windows Terminal、PowerShell或 CMD等集成,用户在这些环境中直接使用 winget 命令。此外,Winget 还支持多种格式的软件包,如.zip格式,能够从.zip 文件中提取并运行安装程序,或安装多个可移植软件包。然而,Winget 也存在一些缺点,如软件源可能有限,且对于不熟悉命令行操作的用户可能存在一定的学习门槛。Winget 由微软开发,旨在帮助用户更轻松地管理和安装 Windows 应用程序。
scoop
Scoop一个用于 Windows 系统的命令行安装程序,它旨在简化软件安装和管理过程。Scoop 的设计理念类似于 Linux上的包管理器,如 apt、yum 或 pacman。以下是 Scoop 的几个关键特点:1
命令行安装:允许用户通过命令行界面安装、更新和卸载软件,适合喜欢使用命令行或需要自动化软件管理的用户。
无需管理员权限:Scoop 可以在没有管理员权限的情况下安装软件,因为它将程序安装在用户目录下,避免了对系统环境的更改。
便于维护:通过 Scoop 安装的程序易于更新和移除,这些操作可以通过简单的命令完成。
软件隔离:每个应用程序及其依赖项安装在独立的目录中,避免库之间的冲突。
软件仓库:Scoop 依赖于软件仓库(称为“桶”),包含大量应用程序的描述(包括安装脚本等)。用户可以添加第三方仓库以扩展可用软件的范围。
脚本化和自动化:适合于自动化脚本,尤其在配置新机器或自动化开发环境设置时非常有用。
使用 Scoop,Windows 用户可以更轻松地管理和维护他们的软件,特别是对于那些更习惯于 Unix-like 环境的用户。它提供了一种更灵活、更符合命令行工作流的方式来处理软件安装和管理。
choco
Chocolatey 是一种软件管理解决方案,不同于您在 Windows 上体验过的任何解决方案。 可以这样想 - 您使用一个小 PowerShell 创建一个软件部署包,然后您可以将它部署到任何拥有 Windows 的地方(例如 Puppet、SCCM、Altiris、Connectwise Automate 等。