包管理参考文档

本文档提供了各种编程语言常用的包管理工具参考信息,帮助开发者快速了解和使用不同语言的包管理系统。

各语言包管理工具对比

语言 包管理工具 描述 主要特点
JavaScript npm Node.js 官方包管理器 最大的 JavaScript 包仓库,命令简单易用
JavaScript Yarn Facebook 开发的替代 npm 的包管理器 速度快、离线模式、确定性安装
JavaScript pnpm 高效的 Node.js 包管理器 节省磁盘空间、快速安装、符号链接机制
JavaScript Bun 新一代 JavaScript 运行时和包管理器 极快的安装速度、内置构建工具
Python pip Python 官方包管理器 简单易用,支持 PyPI 仓库
Python poetry Python 依赖管理和打包工具 依赖锁定、虚拟环境管理、构建支持
Python conda Anaconda 发行版的包管理器 支持跨平台、二进制包、环境隔离
Python pipenv Python 依赖管理工具 结合 pip 和 virtualenv 的功能
Java Maven Java 项目管理和构建工具 基于项目对象模型(POM),依赖管理强大
Java Gradle 灵活的构建工具 支持多种语言,基于 Groovy/Kotlin DSL
Java Ant Java 构建工具 灵活配置,基于 XML
PHP Composer PHP 依赖管理工具 支持 Packagist 仓库,自动加载功能
PHP PEAR PHP 扩展与应用仓库 早期 PHP 包管理,现已逐渐被 Composer 取代
Ruby gem RubyGems 包管理器 管理 Ruby 库和应用程序
Ruby bundler Ruby 依赖管理工具 确保项目在不同环境中使用相同版本的 gems
Go go mod Go 模块系统 内置依赖管理,支持语义化版本
Go dep Go 依赖管理工具 Go 1.11 前的主流工具,现已被 go mod 取代
Rust cargo Rust 包管理器和构建工具 依赖管理、项目构建、测试、文档生成一体化
C# NuGet .NET 平台的包管理器 支持 .NET 项目的依赖管理
Swift Swift Package Manager Swift 官方包管理器 内置 Swift 工具链,支持跨平台
Objective-C CocoaPods iOS/macOS 包管理工具 基于 Ruby,管理 Objective-C/Swift 依赖
Objective-C Carthage iOS/macOS 依赖管理工具 轻量级,非侵入式

各语言包管理工具详细介绍

JavaScript

npm (Node Package Manager)

  • 命令示例
    bash
    # 安装包
    npm install <package-name>
    
    # 全局安装
    npm install -g <package-name>
    
    # 安装开发依赖
    npm install --save-dev <package-name>
    
    # 查看已安装的包
    npm list
    

Yarn

  • 命令示例
    bash
    # 安装包
    yarn add <package-name>
    
    # 全局安装
    yarn global add <package-name>
    
    # 安装开发依赖
    yarn add --dev <package-name>
    
    # 查看已安装的包
    yarn list
    

pnpm

  • 命令示例
    bash
    # 安装包
    pnpm add <package-name>
    
    # 全局安装
    pnpm add -g <package-name>
    
    # 安装开发依赖
    pnpm add -D <package-name>
    
    # 查看已安装的包
    pnpm list
    

Python

pip

  • 命令示例
    bash
    # 安装包
    pip install <package-name>
    
    # 安装指定版本
    pip install <package-name>==1.0.0
    
    # 升级包
    pip install --upgrade <package-name>
    
    # 列出已安装的包
    pip list
    
    # 导出依赖
    pip freeze > requirements.txt
    
    # 安装依赖文件
    pip install -r requirements.txt
    

poetry

  • 命令示例
    bash
    # 创建新项目
    poetry new <project-name>
    
    # 初始化现有项目
    poetry init
    
    # 安装包
    poetry add <package-name>
    
    # 安装开发依赖
    poetry add --dev <package-name>
    
    # 查看依赖
    poetry show
    
    # 运行虚拟环境
    poetry shell
    
    # 安装所有依赖
    poetry install
    

Java

Maven

  • 配置文件pom.xml
  • 命令示例
    bash
    # 编译项目
    mvn compile
    
    # 运行测试
    mvn test
    
    # 打包项目
    mvn package
    
    # 安装到本地仓库
    mvn install
    
    # 清理项目
    mvn clean
    

Gradle

  • 配置文件build.gradlebuild.gradle.kts
  • 命令示例
    bash
    # 编译项目
    gradle compileJava
    
    # 运行测试
    gradle test
    
    # 打包项目
    gradle build
    
    # 清理项目
    gradle clean
    

PHP

Composer

  • 配置文件composer.json
  • 命令示例
    bash
    # 初始化项目
    composer init
    
    # 安装包
    composer require <vendor/package>
    
    # 安装开发依赖
    composer require --dev <vendor/package>
    
    # 安装所有依赖
    composer install
    
    # 更新依赖
    composer update
    
    # 自动加载生成
    composer dump-autoload
    

Go

go mod

  • 命令示例
    bash
    # 初始化模块
    go mod init <module-path>
    
    # 下载依赖
    go mod download
    
    # 添加依赖
    go get <package-path>
    
    # 更新依赖
    go get -u
    
    # 整理依赖
    go mod tidy
    

Rust

cargo

  • 命令示例
    bash
    # 创建新项目
    cargo new <project-name>
    
    # 构建项目
    cargo build
    
    # 运行项目
    cargo run
    
    # 运行测试
    cargo test
    
    # 添加依赖
    cargo add <crate-name>
    
    # 安装所有依赖
    cargo install --path .
    

包管理工具选择建议

  • 选择标准

    • 项目需求和规模
    • 团队熟悉度
    • 生态系统支持
    • 性能要求
    • 功能需求
  • 通用建议

    • 使用语言官方推荐的包管理器作为首选
    • 考虑工具的社区活跃度和维护状态
    • 对于大型项目,优先选择支持依赖锁定和虚拟环境的工具
    • 关注工具的安全性和漏洞扫描能力

总结

不同编程语言都有其特定的包管理工具,选择合适的工具可以大大提高开发效率和项目的可维护性。建议开发者根据自己的项目需求和团队情况选择最适合的包管理工具,并熟悉其核心功能和最佳实践。

最后更新:2026-02-07