如何在 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...
- 该行中的第一个条目定义了存档的类型。存档类型可以是 deb 或 deb-src。 Deb 暗示软件仓库包含
.deb
包,而 deb-src 包含源程序包。 - 第二个条目是软件仓库 URL 。
- 第三个条目指定分发代码名称,例如
beaver
,xenial
等。 - 最后的条目是软件仓库组件或类别。默认的 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/
目录下创建一个新的软件仓库文件。
手动配置软件仓库时,还需要手动将公共软件仓库密钥导入系统。要做到这一点,使用 wget
或 curl
:
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 。