云网牛站
所在位置:首页 > 初入Linux圈 > 教你在Ubuntu/Debian系统中添加Apt存储库的两种方法

教你在Ubuntu/Debian系统中添加Apt存储库的两种方法

2019-08-27 11:09:18作者:乐时稿源:云网牛站

在本文中,我们将向你展示在Ubuntu和Debian系统上添加apt存储库的两种方法,以Ubuntu 18.04为例,第一种方法是使用add-apt-repository命令,第二种方法是使用文本编辑器手动添加存储库。使用Ubuntu软件中心或命令行实用程序(如apt或apt-get)安装软件包时,将从一个或多个apt软件存储库下载软件包,APT存储库是网络服务器或包含可由APT工具读取的deb包和元数据文件的本地目录。虽然默认的Ubuntu存储库中有数千个应用程序可用,但有时你可能需要从第三方存储库安装软件。

教你在Ubuntu/Debian系统中添加Apt存储库的两种方法

 

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...

1、该行中的第一个条目定义了存档的类型,存档类型可以是deb或deb-src,Deb表示存储库包含.deb包,而deb-src包含源包。

2、第二个条目是存储库URL。

3、第三个条目指定分发代码名称,例如beaver、xenial等。

4、最后的条目是存储库组件或类别,默认的Ubuntu存储库分为四个组件:main、restricted、universe和multiverse,通常,第三方存储库只有一个类别。

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

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

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

通常,有关如何启用某个存储库的说明包含在软件文档中,参考Ubuntu存储库的定义及启用和禁用Ubuntu存储库的方法

 

安装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 command not found”。

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

$ sudo apt update

$ sudo apt install software-properties-common

参考:Ubuntu 18.04/16.04/Debian 9上安装add-apt-repository的方法

 

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

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

add-apt-repository [options] repository

其中,存储库可以是常规存储库条目,可以添加到sources.list文件中,例如deb http://repo.tld/ubuntu distro component或ppa中的PPA存储库ppa:<user>/<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存储库

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

将存储库行添加到/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。

 

相关主题

在Ubuntu系统中删除存储库和GPG密钥的方法

子频道
精选文章
热门文章