1 常见的包管理器基本语法

包管理器是软件开发中不可或缺的工具,它们帮助开发者安装、更新、配置、卸载软件包或依赖。不同的编程语言和操作系统通常有自己的包管理器。下面是一些常见包管理器的基本介绍和用法:

1.1 . npm (Node.js)

npm 是 Node.js 的默认包管理器,用于管理和共享 JavaScript 代码。

  • 安装包: npm install <package_name>
    参数:
    • -g--global:全局安装,将包安装到全局目录,即 /usr/local/lib/node_modules/
    • -S--save:将包信息写入 package.json 文件。
    • -D--save-dev:将包信息写入 package.json 文件的 devDependencies 字段。
    • -O--save-optional:将包信息写入 package.json 文件的 optionalDependencies 字段。
    • -E--save-exact:将包版本号写入 package.json 文件。
    • -f--force:强制安装,即如果包已经安装过,则重新安装。
    • -s--silent:安静模式,即不输出安装信息。
    • -v--verbose:冗长模式,即输出详细安装信息。
    • -h--help:显示帮助信息。
  • 更新包: npm update <package_name>
  • 卸载包: npm uninstall <package_name>
  • 查看已安装包列表: npm list

1.2 . pip (Python)

pip 是 Python 的包管理器,用来安装和管理 Python 软件包。

  • 安装包: pip install <package_name>
    参数:
    • -i--index-url:指定包索引 URL。
    • -r--requirement:从文件中读取依赖包列表。
    • -t--target:指定安装包的目标位置。
    • -U--upgrade:升级包。
    • -V--verbose:冗长模式,输出详细信息。
    • -h--help:显示帮助信息。
  • 更新包: pip install --upgrade <package_name>
  • 卸载包: pip uninstall <package_name>
  • 列出所有已安装包: pip list

1.3 . Maven (Java)

Maven 是 Java 的一个项目管理和理解工具。它包含了一个项目信息管理系统,还有用来处理项目的依赖关系。

  • 安装依赖: 通过在 pom.xml 文件中声明依赖,然后执行 mvn install
  • 更新依赖: 通常通过 mvn dependency:purge-local-repo 清除本地仓库后再次执行 mvn install
  • 编译项目: mvn compile
  • 打包项目: mvn package

1.4 . apt (Debian/Ubuntu Linux)

apt 是 Debian 和基于 Debian 的系统(如 Ubuntu)中的高级包工具。

  • 安装包: sudo apt install <package_name>
    参数:
    • -y--yes:自动回答 Y 确认提示。
    • -q--quiet:安静模式,不输出安装信息。
    • -s--simulate:模拟安装,只输出将要安装的包列表。
    • -f--fix-missing:修复依赖关系。
    • -h--help:显示帮助信息。
  • 搜索包: apt search <package_name>
  • 更新包列表: sudo apt update
  • 升级包: sudo apt upgrade
  • 卸载包: sudo apt remove <package_name>

1.4.1 更换apt源

如果需要更换 apt 源,可以编辑 /etc/apt/sources.list 文件,例如:

1
2
3
4
5
6
7
8
9
10
11
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
# 预发布软件源,不建议启用

让我们来逐一解释这些源的区别:

  1. deb 行表示只下载二进制文件,而 deb-src 行则用于下载源代码文件。这在需要编译软件包的情况下有用。

  2. bionic 是主要的Ubuntu发行版,包含了所有官方发布的稳定版本的软件包。

  3. bionic-security 包含了对 bionic 发行版的安全更新。通常情况下,安全更新会定期发布以修复已知的安全漏洞。

  4. bionic-updates 包含了除了安全更新以外的其他更新,比如bug修复和新的功能发布。这些更新通常是周期性的,并且不会破坏系统的稳定性。

  5. bionic-proposed 包含了测试中的更新,这些更新可能还没有经过充分测试,因此可能含有不稳定因素。通常只有开发者或者测试人员会使用这个仓库。

  6. bionic-backports 包含了一些较新的软件包版本,这些版本是从更晚的Ubuntu版本中回退到当前版本的。这些软件包可能是为了获得最新的功能或者修复重要的bug。

1.5 . yum (Fedora/CentOS/RHEL Linux)

yum 曾经是 Fedora、CentOS 和 RHEL 等 Linux 发行版的默认包管理器,现在许多发行版已经转向使用 DNF。

  • 安装包: sudo yum install <package_name>
    参数:
    • -y--assumeyes:自动回答 Y 确认提示。
    • -q--quiet:安静模式,不输出安装信息。
    • -h--help:显示帮助信息。
  • 更新包: sudo yum update <package_name>
  • 卸载包: sudo yum remove <package_name>
  • 列出可更新的包: sudo yum check-update

1.6 . Homebrew (macOS/Linux)

Homebrew 是 macOS 和 Linux 的包管理器。

  • 安装包: brew install <formula_name>
  • 更新包: brew upgrade <formula_name>
  • 卸载包: brew uninstall <formula_name>
  • 更新 Homebrew 自身以及所有已安装的包: brew update && brew upgrade

这些是最基本的操作命令,每个包管理器都有更丰富的功能集,可以通过各自的官方文档来学习更多详细信息。