如何在 Ubuntu 中添加 apt 仓库

使用 Ubuntu 软件中心或命令行实用程序安装软件包时, apt 或者 apt-get 从一个或多个 apt 软件软件仓库下载软件包。 APT 软件仓库是一个网络服务器或本地目录,包含 deb 软件包和元数据文件,由 APT 工具读取。

虽然默认的 Ubuntu 软件仓库中有数千个应用程序可用,但有时您可能需要从第三方软件仓库安装软件。

在本教程中,我们将向您展示在 Ubuntu 和 Debian 系统上添加 apt 软件仓库的两种方法。第一种方法是使用 add-apt-repository 命令,第二种方法是使用文本编辑器手动添加软件仓库。

Apt 源

在 Ubuntu 和所有其他基于 Debian 的发行版中, apt 软件软件仓库在 /etc/apt/sources.list 文件中或在 /etc/apt/sources.list.d/ 目录下的单独文件中定义。

/etc/apt/sources.list.d/ 目录中的软件仓库文件的名称必须以 .list 结尾。

/etc/apt/sources.list 文件的一般语法采用以下格式:

deb http://repo.tld/ubuntu distro component...
  • 该行中的第一个条目定义了存档的类型。存档类型可以是 debdeb-src。 Deb 暗示软件仓库包含 .deb 包,而 deb-src 包含源程序包。
  • 第二个条目是软件仓库 URL 。
  • 第三个条目指定分发代码名称,例如 beaverxenial 等。
  • 最后的条目是软件仓库组件或类别。默认的 Ubuntu 软件仓库分为四个组件 - main , restricted , universe 和 multiverse 。通常,第三方软件仓库只有一个类别。

目录 /etc/apt/sources.list.d/ 下的文件格式与常规 sources.list 文件的格式相同。

大多数软件仓库都提供公钥来验证需要下载和导入的下载软件包。

为了能够添加或删除软件仓库,您需要以具有 sudo 访问权限或 root 权限的用户身份登录。

通常,有关如何启用某个软件仓库的说明包含在软件文档中。

安装 add-apt-repository

add-apt-repository 是一个 Python 脚本,允许您将 APT 软件仓库添加到 /etc/apt/sources.list 文件或 /etc/apt/sources.list.d 目录中单独的文件中。该命令还可用于删除已存在的软件仓库。

如果 add-apt-repository 您的系统上没有,您将收到一条错误消息,指出“add-apt-repository command not found”。

add-apt-repository 实用程序包含在 software-properties-common 包中。要安装它,请运行以下命令:

sudo apt update
sudo apt install software-properties-common

使用 add-apt-repository 添加软件仓库

add-apt-repository 命令的基本语法如下:

add-apt-repository [options] repository

repository 可以是可以添加到 sources.list 文件中的常规软件仓库条目(比如 deb http://repo.tld/ubuntu distro component),也可以是 PPA 软件仓库 ppa:<user>/<ppa-name>

在终端中输入 man add-apt-repository 可查看 add-apt-repository 命令的所有可用选项。

默认情况下,在 ubuntu 18.04 及更高版本上,如果导入了软件仓库公钥, add-apt-repository 还将更新包索引。

包索引是一个数据库,用于保存系统中启用的软件仓库中可用包的记录。

假设你想从他们的官方软件仓库安装 MongoDB

首先导入软件仓库公钥:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4

使用以下命令添加 MongoDB 软件仓库。

sudo add-apt-repository 'deb [arch=amd64] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse'

软件仓库将附加到 sources.list 文件。

您现在可以从新启用的软件仓库安装任何软件包:

sudo apt install mongodb-org

如果出于任何原因要删除以前启用的软件仓库,请使用以下 --remove 选项:

sudo add-apt-repository --remove 'deb [arch=amd64] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse'

添加 PPA 软件仓库

Personal Package Archives(PPA) 是一项服务,允许用户上传使用 Launchpad 构建和发布的 Ubuntu 源包作为 apt 软件仓库。

添加 PPA 软件仓库时,add-apt-repository 命令会在 /etc/apt/sources.list.d/ 目录下创建一个新文件。

例如,要添加提供 FFmpeg 版本 4.x  的 Jonathon F 的 PPA ,您将运行:

sudo add-apt-repository ppa:jonathonf/ffmpeg-4

出现提示时输入 Enter ,将启用软件仓库。

Press [ENTER] to continue or Ctrl-c to cancel adding it.

PPA 软件仓库公钥将自动下载并注册。

将 PPA 添加到系统后,您可以安装软件仓库包:

sudo apt install ffmpeg

apt 命令将安装包及其所有依赖项。

手动添加软件仓库

如果您想要更好地控制源的组织方式,可以手动编辑 /etc/apt/sources.list 文件并将 apt 软件仓库行添加到文件中。

为了演示,我们将启用 CouchDB 软件仓库并安装该软件。 CouchDB 是 Apache Software Foundation 维护的免费开源容错 NoSQL 数据库。

要添加软件仓库 sources.list ,请使用文本编辑器打开文件:

sudo nano /etc/apt/sources.list

将软件仓库行添加到文件末尾:

deb https://apache.bintray.com/couchdb-deb bionic main

您可以使用以下命令将软件仓库行附加到文件,而不是使用文本编辑器编辑 sources.list 文件:

echo "deb https://apache.bintray.com/couchdb-deb $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list

$(lsb_release -cs) 将打印 Ubuntu 代号。例如,如果您有 Ubuntu 版本  18.04 ,则该命令将打印 bionic

另一种选择是在 /etc/apt/sources.list.d/ 目录下创建一个新的软件仓库文件。

手动配置软件仓库时,还需要手动将公共软件仓库密钥导入系统。要做到这一点,使用 wgetcurl

curl -L https://couchdb.apache.org/repo/bintray-pubkey.asc | sudo apt-key add -

上面的命令应输出 OK ,这意味着已成功导入 GPG 密钥,并且此软件仓库中的包将被视为可信任。

在从新添加的软件仓库安装软件包之前,您必须更新软件包索引:

sudo apt update

更新包索引后,您可以从新添加的软件仓库中安装包:

sudo apt install couchdb

结论

我们已经向您展示了如何在 Ubuntu 中添加 apt 软件仓库。相同的说明适用于任何基于 Debian 的发行版,包括 Kubuntu , Linux Mint 和 Elementary OS 。