在 Ubuntu 上如何添加 Apt 软件源

2020-05-09 17:34:16 浏览数 (1)

当使用 Ubuntu 软件中心或者从终端命令行输入apt或者apt-get安装软件包时,软件包被从一个或者多个软件源下载下来。一个 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文件中的通用格式是下面这样:

代码语言:javascript复制
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文件格式一样。

大部分源提供了一个用于授权下载软件公开的 key,需要下载并且导入。

想要添加或者移除一个软件源,你需要以 root 或者 sudo 权限用户登录。

通常,关于如何启用某个特殊的软件源的指令,都包含在软件的文档中。

二、安装add-apt-repository (add-apt-repository command not found )

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软件包。想要安装它,运行下面的命令:

代码语言:javascript复制
sudo apt update
sudo apt install software-properties-common

三、使用add-apt-repository添加软件源

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

代码语言:javascript复制
add-apt-repository [options] repository

repository可以是一个正常的可以被添加到sources.list文件的软件源条目,例如deb http://repo.tld/ubuntu distro component,也可以是一个类似ppa:<user>/<ppa-name>格式的 PPA 源。

想要查看add-apt-repository命令所有的选项,在终端输入man add-apt-repository

默认情况下,在 Ubuntu 18.04 或者更新的发行版上,如果公开的 key 被导入,add-apt-repository还会更新软件包的索引。

软件包索引是一个数据库,它记录了在你的系统上,来自软件源的所有可用软件包。

比如说,你想从它们的官方软件源中安装 MongDB。

首先导入软件源的公开 Key:

代码语言:javascript复制
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4

使用下面的命令添加 MongoDB 软件源:

代码语言:javascript复制
sudo add-apt-repository 'deb [arch=amd64] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse'

这个软件源将会被添加到sources.list文件中。

你现在可以从最新启用的软件源中安装任何软件包了:

代码语言:javascript复制
sudo apt install mongodb-org

如果因为任何原因,你想移除一个之前启用的软件源,使用--remove选项:

代码语言:javascript复制
sudo add-apt-repository --remove 'deb [arch=amd64] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse'

四、添加 PPA 软件源

个人软件包归档(PPA)是一个服务,它允许用户上传通过 Launchpad 构建和公开的 Ubuntu 源码软件包。

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

例如,添加提供 FFmpeg 的 Jonathon F 的 PPA,你需要运行:

代码语言:javascript复制
sudo add-apt-repository ppa:jonathonf/ffmpeg-4

当被提示时,按Enter,这个源将被启用。

代码语言:javascript复制
Press [ENTER] to continue or Ctrl-c to cancel adding it.

PPA 软件源的公开 Key 将会被自动下载并导入。

一旦 PPA 被添加到你的系统中,你可以安装软件源的软件包:

代码语言:javascript复制
sudo apt install ffmpeg

apt命令将会安装软件包和它所有的依赖软件包。

五、手动添加软件源

如果你想对于你的软件源如何组织拥有更多控制操作,你可以手动编辑文件/etc/apt/sources.list并且在文件中添加 apt 软件源的地址。

为了演示,我们将会启用 CouchDB 软件源并且安装软件。CouchDB是一个免费并且开源的容错 NoSQL 数据库,由 Apache 自由软件基金会维护。

想要添加源,使用你的文本编辑器打开sources.list文件。

代码语言:javascript复制
sudo nano /etc/apt/sources.list

将软件源添加到文件最后一行:

代码语言:javascript复制
deb https://apache.bintray.com/couchdb-deb bionic main

如果不用文本编辑器,你也可以通过下面的命令,直接将软件源添加到sources.list文件:

代码语言:javascript复制
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/目录下创建一个新的软件源文件。

当手动配置软件源时,你仍然需要手动导入公开源 key 到我们的系统。想要这么做,使用wget或者curl

代码语言:javascript复制
curl -L https://couchdb.apache.org/repo/bintray-pubkey.asc | sudo apt-key add -

上面的命令将会打印出OK,这代表 GPG key 已经被城管导入,并且这个软件源的软件包可以被信任。

在安装最近添加的软件源中的软件包时,你必须更新软件包索引:

代码语言:javascript复制
sudo apt update

一旦软件包索引更新完成,你可以从最近添加的软件源中安装软件包:

代码语言:javascript复制
sudo apt install couchdb

六、总结

我们已经展示了如何在 Ubuntu 中添加 apt 软件源。同样的指令同样适合于基于 Debian 的任何 Linux 发行版,包括 Kubuntu, Linux Mint 和 Elementary OS。

0 人点赞