Ubuntu 系列软件包管理命令

在 Ubuntu 上安装软件包主要通过使用 apt 命令来完成。apt 是高级包装工具(Advanced Package Tool)的缩写,提供了一个易用的命令行界面,用于处理软件包的安装、更新和删除等操作。

环境信息

  • Ubuntu 22

apt

查看软件包信息

  • 查看系统已安装的软件包

    apt list --installed

    apt list 列出系统上所有可用的软件包,包括已安装的软件包可供安装的软件包

  • 列出特定的软件包

    apt list <package-name>
  • 搜索特定软件包是否已安装

    apt list --installed  <package-name>
  • 查看软件包的依赖关系

    apt depends <package_name>

下载软件包

  • 下载软件包但不安装
    apt download <package_name>

安装软件包

  • 更新软件包列表。在安装新软件包之前,最好先更新本地软件包列表,以确保你安装的是最新版本的软件包。

    sudo apt update

    此命令会从配置的源中检索新的软件包列表。

  • 安装软件包。安装软件包的基本命令格式为:

    sudo apt install <package_name>
  • 安装特定版本的软件包

    如果你需要安装软件包的特定版本,可以通过指定版本号来完成安装。首先,使用 apt policy 命令查找可用版本

    apt policy <package_name>

    然后,安装特定版本的软件包

    sudo apt install <package_name>=<version>

    sudo apt install nginx=1.18.0-0ubuntu1
  • 安装推荐的软件包。

    当安装某些软件包时,APT 可能会建议安装一些推荐的软件包以增强功能。默认情况下,apt install 命令会安装推荐的软件包。 如果你不想安装推荐的软件包,可以使用 --no-install-recommends 选项

    sudo apt install --no-install-recommends <package_name>

卸载软件包

  • 卸载软件包但保留配置文件

    sudo apt remove <package_name>
  • 卸载软件包并删除配置文件。如果相关目录不为空,将不会删除,会输出提示

    sudo apt purge <package_name>

    或者

    sudo apt remove --purge <package_name>
  • 清理未使用的依赖包

    当你卸载一个软件包时,它可能会留下一些不再需要的依赖软件包。为了清理这些不再使用的依赖,可以执行:

    sudo apt autoremove

    这个命令会检查并自动删除那些被安装为其他软件包依赖但现在不再被任何已安装软件包需要的软件包。

dpkg

列出系统上已安装的软件包

dpkg -l

查找文件所属的软件包

dpkg -S /path/to/file

APT 仓库管理

APT 通过读取配置文件(主要是 /etc/apt/sources.list/etc/apt/sources.list.d/*.list)来获取软件包仓库(repository)的信息。

APT 的软件源配置文件是 /etc/apt/sources.list ,此外还可以包含 /etc/apt/sources.list.d/ 目录下的 .list 文件。这些文件定义了 APT 从哪里下载软件包和更新信息。

一个典型的 sources.list 条目格式如下:

deb [options] url distribution component1 component2 component3

  • deb:表示这是一个二进制软件包的仓库,对应的 deb-src 表示源代码仓库。
  • options:可选项,例如可以指定架构。
  • url:仓库的 URL。
  • distribution:发行版的代号,如 focalbuster 等。
  • component :仓库中的组成部分,如 mainrestricted 等。

Repository 的类型

在 APT 的上下文中,软件包仓库是网络或本地的存储位置,它们存储了软件包及其元数据。主要有以下几种类型的仓库:

  • Main:官方支持的免费软件。
  • Universe:社区维护的免费软件。
  • Restricted:官方支持的非自由软件。
  • Multiverse:非自由软件,不包括官方支持。

添加新的软件源

要添加新的软件源,你可以直接编辑 sources.list 文件或在 sources.list.d/ 目录下创建一个新的 .list 文件。例如,添加一个新的 PPA(Personal Package Archive):

sudo add-apt-repository ppa:<repository_name>

这个命令不仅会添加软件源,还会自动导入仓库的公钥,确保软件包的安全性。

删除软件源

要删除软件源,可以直接编辑 sources.list 文件或删除 sources.list.d/ 目录下相应的 .list 文件。之后,运行 sudo apt update 来更新软件包列表。