如何在Ubuntu中添加Apt仓库

时间:2020-03-05 15:27:04  来源:igfitidea点击:

使用Ubuntu软件中心或者命令行实用程序(如“ apt”或者“ apt-get”)安装软件包时,将从一个或者多个apt软件存储库中下载软件包。
APT存储库是网络服务器或者本地目录,其中包含可被APT工具读取的deb包和元数据文件。

尽管默认的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.com/ubuntu distro component...
  • 该行的第一个条目定义了存档的类型。存档类型可以是deb或者deb-src。 Deb表示存储库包含“ .deb”软件包,而deb-src表示源软件包。
  • 第二个条目是存储库URL。
  • 第三个条目指定分发代码名称,例如beaver,xenial等。
  • 最后的条目是存储库组件或者类别。默认的Ubuntu存储库分为四个组件-主组件,受限组件,Universe和multiverse。通常,第三方存储库只有一个类别。

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

大多数存储库都提供公用密钥,以对需要下载和导入的已下载软件包进行身份验证。

为了能够添加或者删除存储库,我们需要以具有sudo访问权限或者root用户的身份登录。

通常,有关如何启用特定存储库的说明包含在软件文档中。

安装“ add-apt-repository”(未找到add-apt-repository命令)

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

如果系统上没有“ add-apt-repository”,我们将收到一条错误消息,提示“找不到add-apt-repository命令”。

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

sudo apt updatesudo apt install software-properties-common

使用“ add-apt-repository”添加存储库

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

add-apt-repository [options] repository

其中“存储库”可以是可以添加到“ sources.list”文件(例如“ deb http://repo.com/ubuntu发行版组件”)的常规存储库条目,也可以是“ ppa:<user>”中的PPA存储库/<ppa-name>'格式。

要查看“ add-apt-repository”命令的所有可用选项,请在终端中键入“ man 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存储库

个人软件包档案(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

将存储库行添加到文件末尾:

/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