网易首页 > 网易号 > 正文 申请入驻

详解在 Ubuntu 从外部存储库安装软件包 | Linux 中国

0
分享至

导读:我来解释一下这些代码背后的逻辑。

本文字数:4184,阅读时长大约: 6分钟

你大概知道怎么在 Ubuntu 中使用apt命令安装软件包。那些软件包都是来自 Ubuntu 的官方存储库。

那第三方或者外部存储库呢?不,我这里并不是要讲 PPA。

早晚你会碰到那种至少四行的安装说明:你需要安装名为apt-transport-https的包、操作一下 GPG 和 源列表(source list) 之后,你才能正常安装软件包。

没有什么印象的话,那我分享一个 itsfoss.com 的例子:

  1. sudo apt install apt-transport-https curl

  2. curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -

  3. sudo sh -c 'echo "deb https://dl.yarnpkg.com/debian/ stable main" >> /etc/apt/sources.list.d/yarn.list'

  4. sudo apt update && sudo apt install yarn

当你需要直接从开发者那里安装编程工具的时候,大概率会碰到这种安装方式。

许多人只是按照说明进行操作,并不会去思考其中的原理。这也没什么不对,但了解该过程实际上可以提升你在这方面的知识,而且有助于之后排除故障。

我来解释一下这些代码背后的逻辑。

理解从外部存储库安装的过程

在你继续往下阅读之前,我强烈建议你先看看下面这两篇文章,方便理解后续的概念:

◈ itsfoss.com

◈ itsfoss.com

为了让你有点印象,这里有一张软件包存储库和 itsfoss.com 的图片。

Illustration of repository and package manager

整件事情其实就是在系统中添加一个新的外部存储库。这样,你就可以从这个新存储库下载并安装可用的软件包。如果这个存储库提供了包版本的更新,你可以在更新系统的同时更新这些软件包(apt update && apt upgrade)。

那么,这是什么工作原理呢?让我们一条一条地过一遍。

第 1 部分:为 apt 获取 HTTPS 支持

第一行是这样的:

  1. sudo apt install apt-transport-https curl

curl是一个 itsfoss.com。这里主要的部分是安装apt-transport-https,但事实上已经不需要了。

明白了吗?这个apt-transport-https包让你的系统通过 HTTPS 协议安全访问存储库。按照设计,Ubuntu 的存储库使用 http 而不是 https 协议。

看看下面的截图。https 这张图是我已经添加到系统中的外部存储库。Ubuntu 的存储库和 PPA 使用 http 协议。

在旧版本的apt包管理器中,不支持 https 协议。apt-transport-https包为apt添加了 https 支持。要新增一个使用 https 的存储库,首先就得先安装此包。

我之前不是说不需要安装这个包了吗?是的,因为较新版本的apt(高于 1.5)已经支持 https,所以你不需要再安装apt-transport-https

但是你依然看到我在说明中提到了这个包。这更多是出于遗留原因,而且可能还有很旧的发行版在使用旧版本的apt包。

现在,你可能想知道既然 https 是安全协议,那为什么 Ubuntu 的存储库还要使用 http 而不是 https。这难道没有安全风险吗?接着往下看你就知道答案了。

第 2 部分:添加远程存储库的 GPG 密钥

Linux 存储库内置了基于 GPG 密钥的安全机制。每个存储库都将其 GPG 公钥添加到你的系统信任密钥中。来自存储库的包由这个 GPG 密钥“签名(signed)”,并且通过这份存储的公钥,系统能够验证软件包正是来自这个存储库。

如果 itsfoss.com,而不会继续从该存储库安装或者更新软件包。

到目前为止,一切都很顺利。下一步是将外部存储库的 GPG 公钥添加到你的 Linux 系统,以便它能接收来自该存储库的软件包。

  1. curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -

在上面的命令中,你使用curl从指定的 URL 下载 GPG 密钥。选项-sS能够让你不看多余的输出(静默模式),但会显示错误(如果有的话)。最后一个-告诉apt-key使用标准输入(stdin)而不是文件(在本例中是curl命令的输出)。

apt-key add命令已经将下载的密钥添加到系统中。

你可以通过apt-key list命令查看系统中各种存储库添加的 GPG 密钥。

List GPG keys

这是将 GPG 密钥添加到系统的一种方法。你会看到一些其它的命令,看起来略有不同,但效果一样,都是将存储库的公钥添加到你的系统里面。

  1. sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9

你会注意到apt-key已被弃用的警告。在 Ubuntu 22.04 之前,你还可以使用apt-key命令,但它最终会被删除。现在不需要杞人忧天。

第 3 部分:将外部存储库添加到源列表

下个命令是在系统的源列表中添加一个新条目。这样,你的系统就会知道它得检查该存储库中的包和更新。

  1. sudo sh -c 'echo "deb https://dl.yarnpkg.com/debian/ stable main" >> /etc/apt/sources.list.d/yarn.list'

有一个文件/etc/apt/sources.list包含 Ubuntu 存储库的详细信息。最好不要随便动这个文件。所有新增的存储库都应放在/etc/apt/sources.list.d目录中相应的文件里(约定以.list结尾)。

External repository should have their own sources list file in the /etc/apt/sources.list.d directory

这使得包管理变得更容易。如果你要从系统中删除一个存储库,只需删除相应的源文件即可。无需修改主sources.list文件。

让我们再仔细地看一下这行命令。

  1. sudo sh -c 'echo "deb https://dl.yarnpkg.com/debian/ stable main" >> /etc/apt/sources.list.d/yarn.list'

使用sh可以在一个新的 shell 进程中运行命令,而不是 linuxhandbook.com。-c选项告诉sh命令从参数而不是标准输入读取命令。然后它运行echo命令,也就是把deb https://dl.yarnpkg.com/debian/ stable main这一行添加到/etc/apt/sources.list.d/yarn.list文件(会创建该文件)。

现在,你可以通过各种方法在指定目录中创建.list文件并在其中添加包含存储库详细信息的数据行。你也可以像这样使用:

  1. echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list

明白了吧?

第 4 部分:从新添加的存储库安装应用程序

到目前为止,你已经将存储库的 GPG 密钥和存储库的 URL 添加到系统中。

但是系统仍然不晓得这个新存储库中有哪些可用的包。这就是为什么你需要先使用下面这个命令更新包元数据的本地缓存:

  1. sudo apt update

这时你的系统就已经知道新增存储库中可用软件包的信息,现在可以试试安装软件包:

  1. sudo apt install yarn

为了节省时间,你可以在 itsfoss.come。

  1. sudo apt update && sudo apt install yarn

&&可以确保第二个命令只会在前一个命令没有任何报错的前提下运行。

整个流程就是这样。

有没有豁然开朗呢,还是一脸懵逼?

我已经解释了在 Ubuntu 中使用外部存储库背后的逻辑。希望你现在能更好地理解它,当然可能还有很多细节会让你困惑。

如果你还不清楚或者还有其他问题,可以联系我。如果你发现了技术上的纰漏,记得在评论区告诉我。

via:

作者: 选题: 译者: 校对:

本文由 原创编译, 荣誉推出

LCTT 译者 :jx.zeng

翻译: 6.0 篇

贡献: 890 天

2020-06-22

2022-11-29

https://linux.cn/lctt/nophDog

欢迎遵照 CC-BY-SA 协议规定转载,

如需转载,请在文章下留言 “ 转载:公众号名称”,

我们将为您添加白名单,授权“ 转载文章时可以修改”。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
第一批小米车主,已经成了二手车贩子

第一批小米车主,已经成了二手车贩子

李东阳朋友圈
2024-06-20 16:07:32
卸下心理包袱?陈梦再次被力挺,马琳给最后机会,孙颖莎时代到来

卸下心理包袱?陈梦再次被力挺,马琳给最后机会,孙颖莎时代到来

忠橙家族
2024-06-18 11:25:03
0-3惨遭横扫出局!历经磨难成中国第一人,在质疑和嘲讽声中成长

0-3惨遭横扫出局!历经磨难成中国第一人,在质疑和嘲讽声中成长

宏堃趣侃体育
2024-06-01 10:28:35
停业11万家!昔日购物天堂,如今靠餐饮“续命”

停业11万家!昔日购物天堂,如今靠餐饮“续命”

餐饮老板内参
2024-06-20 09:57:29
空前绝后的无敌大满贯球王,梅西的伟大成就超乎你们的想象

空前绝后的无敌大满贯球王,梅西的伟大成就超乎你们的想象

林子说事
2024-05-16 07:10:02
长得好看,7次拒绝土豪求婚,如今40岁的她低调结婚被宠成宝!

长得好看,7次拒绝土豪求婚,如今40岁的她低调结婚被宠成宝!

娱乐白名单
2024-06-20 11:37:06
印度神童阿南德2024预言:日本大地震,美国动荡,中国龙年迎新机

印度神童阿南德2024预言:日本大地震,美国动荡,中国龙年迎新机

飞云如水
2024-04-29 23:56:12
归化奥斯卡悬了,人民日报曾批判:只是为了钱,没有国家荣誉感!

归化奥斯卡悬了,人民日报曾批判:只是为了钱,没有国家荣誉感!

宝哥精彩赛事
2024-06-21 03:41:38
惨不忍睹!广州火灾现场电动车爆燃,多辆轿车受影响。

惨不忍睹!广州火灾现场电动车爆燃,多辆轿车受影响。

小毅讲历史
2024-06-20 14:30:19
幼儿园的老师才是知道秘密最多的人!因为小朋友什么都给老师讲!

幼儿园的老师才是知道秘密最多的人!因为小朋友什么都给老师讲!

开玩笑的水母
2024-06-19 18:24:56
乔治:去年莫雷对哈登顶薪的食言会影响76人的名声

乔治:去年莫雷对哈登顶薪的食言会影响76人的名声

懂球帝
2024-06-20 15:47:11
笑麻了!江苏一女子在医院诊断出“包皮过长”,医院工作人员回应

笑麻了!江苏一女子在医院诊断出“包皮过长”,医院工作人员回应

滑稽斑马呀
2024-06-20 19:48:11
网友发帖:BOSS直聘这么一个小app,员工为啥要5000人?

网友发帖:BOSS直聘这么一个小app,员工为啥要5000人?

闲醉山人
2024-06-19 23:59:16
美籍华裔科学家李飞飞放言:若我夺下诺贝尔奖,想以中国人身份领

美籍华裔科学家李飞飞放言:若我夺下诺贝尔奖,想以中国人身份领

蜉蝣说
2024-06-20 21:42:14
以色列竟要求黎巴嫩不要晚上袭击以色列,原因是以色列士兵要休息

以色列竟要求黎巴嫩不要晚上袭击以色列,原因是以色列士兵要休息

橘色数码
2024-06-18 08:33:26
杭州一公司拖欠工资并威胁员工?当地街道办:正调查处置

杭州一公司拖欠工资并威胁员工?当地街道办:正调查处置

新京报
2024-06-20 17:22:17
乔治:在这个阶段,我并不一定是追逐总冠军,下一个明星是班凯罗

乔治:在这个阶段,我并不一定是追逐总冠军,下一个明星是班凯罗

好火子
2024-06-21 04:22:27
90后产妇生娃时遇上“生理需求”,男医生:见怪不怪,现场解决

90后产妇生娃时遇上“生理需求”,男医生:见怪不怪,现场解决

大果小果妈妈
2024-06-20 13:21:12
47万人连夜大逃亡,以色列,做梦也没想到,历史会再次重演?

47万人连夜大逃亡,以色列,做梦也没想到,历史会再次重演?

户外阿崭
2024-06-19 13:32:18
绝美身材,意味无穷

绝美身材,意味无穷

阿芒娱乐说
2024-06-03 21:35:12
2024-06-21 06:12:49
Linux
Linux
Linux 中国开源社区
8016文章数 73124关注度
往期回顾 全部

科技要闻

小米SU7流量泼天,富贵却被蔚来接住了

头条要闻

欧洲杯:西班牙1-0意大利提前出线

头条要闻

欧洲杯:西班牙1-0意大利提前出线

体育要闻

千夫所指的关系户 成了拯救葡萄牙的英雄

娱乐要闻

叶舒华参加柯震东生日聚会,五毒俱全

财经要闻

楼市新“王炸”!释放何信号?

汽车要闻

售价11.79-14.39万元 新一代哈弗H6正式上市

态度原创

艺术
亲子
本地
时尚
公开课

艺术要闻

穿越时空的艺术:《马可·波罗》AI沉浸影片探索人类文明

亲子要闻

夫妻俩趁孩子睡着后聊聊一天的琐事,这就是向往的婚姻吧?

本地新闻

2024·合肥印象|用崭新视角对话城市发展

当男人不耍帅时,就是最帅的时候(穿衣篇)

公开课

近视只是视力差?小心并发症

无障碍浏览 进入关怀版