【Ubuntu】apt命令安装最新版本Nginx

目录

  • 环境
  • 前言
  • 添加Nginx仓库步骤
    • 1、仓库公钥
    • 2、文本公钥转二进制GPG公钥(可选)
    • 3、添加apt软件源
    • 4、安装新版Nginx
  • 参阅

环境

Ubuntu 22.04

前言

ubuntu官方apt软件仓库(或者叫软件源)的软件版本可能会比较旧,导致无法安装最新版的软件包,例如在Ubuntu 22.04中,默认情况下,执行apt install nginx命令安装到的 Nginx 版本是1.18.0(2020年4月发布),比较旧。

如果希望安装最新版本的Nginx,需要添加 Nginx 的外部仓库,其它软件也同理。

另外一种方法是到 Nginx 的官网下载新版本tar.gz源码包,手动编译安装,本文暂不讨论。

添加Nginx仓库步骤

1、仓库公钥

每一个外部仓库都有一个公钥,此公钥用来验证软件包是否真的来自此仓库。

仓库的公钥有两种类型,一种是文本公钥,一种是二进制GPG公钥(扩展名为.gpg)。

文本公钥适用于 apt 版本 >= 1.4的,而二进制GPG公钥适用于所有版本。

查看apt版本的命令:

apt --version

一般软件都有提供自己的仓库公钥下载地址,例如 Nginx 的是:

https://nginx.org/keys/nginx_signing.key

Docker的是:

https://download.docker.com/linux/ubuntu/gpg

如何确定公钥的类型?如果公钥的内容全部都是文本,不是乱码,而且第一行内容含有BEGIN PGP PUBLIC KEY BLOCK字样的,就是文本公钥。

例如Nginx仓库的公钥就是文本公钥:
在这里插入图片描述

下载文本公钥,保存到/etc/apt/keyrings/目录(此目录需要手动创建):

curl -fsSL https://nginx.org/keys/nginx_signing.key -o /etc/apt/keyrings/nginx-repo-keyring.key

正如上文讲到的,1.4版本以上的apt已经支持文本公钥,下载好后就可以直接使用。如果你还是想要将文本公钥转换为二进制GPG公钥,请看下面第二步骤。

在旧版本的Ubuntu中,仓库公钥下载后,是使用apt-key add命令添加的,但通过该命令添加的公钥,不仅仅会被当前仓库使用,还会被其它的所有仓库共用,会有安全风险。因此自从Ubuntu 20.10版本开始,apt-key命令就被标记为“过时”,并且在22.04版本(不含)后会被正式移除。而新的方法是在source文件中使用signed-by关键字指定仓库公钥的位置(见下面第三步骤)

2、文本公钥转二进制GPG公钥(可选)

使用gpg命令将文本公钥转换为二进制公钥,同样是保存到/etc/apt/keyrings/目录,不过文件的后缀名是.gpg

curl -fsSL https://nginx.org/keys/nginx_signing.key \| sudo gpg --dearmor -o /etc/apt/keyrings/nginx-repo-keyring.gpg

3、添加apt软件源

创建source文件,名字为nginx.list,并往里写入内容:

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/nginx-repo-keyring.gpg] https://nginx.org/packages/ubuntu/ $(lsb_release -cs) nginx" \| sudo tee /etc/apt/sources.list.d/nginx.list > /dev/null

注意signed-by后面跟的是Nginx仓库公钥的路径,根据实际情况修改。

生成的nginx.list文件内容示例:

deb [arch=amd64 signed-by=/etc/apt/keyrings/nginx-repo-keyring.gpg] https://nginx.org/packages/ubuntu/ jammy nginx

4、安装新版Nginx

添加好 Nginx 仓库后,就可以安装新版的 Nginx 了:

apt update
apt install nginx

参阅

  • Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead
  • How To Handle apt-key and add-apt-repository Deprecation Using gpg to Add External Repositories on Ubuntu 22.04

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1420800.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Linux网络编程】传输层中的TCP和UDP(UDP篇)

【Linux网络编程】传输层中的TCP和UDP(UDP篇) 目录 【Linux网络编程】传输层中的TCP和UDP(UDP篇)传输层再谈端口端口号范围划分认识知名端口号netstatiostatpidofxargs UDP协议UDP协议端格式UDP的特点面向数据报UDP的缓冲数据UDP使…

贪吃蛇——C语言实践

目录 1. 游戏效果演示 2. 课程目标 3.项目适合对象 4.技术要点 5. Win32 API介绍 5.1 Win32 API 5.2 控制台程序 5.3 控制台屏幕上的坐标COORD 5.4 GetStdHandle 5.5 GetConsoleCursorInfo 5.5.1 CONSOLE_CURSOR_INFO 5.6 SetConsoleCursorInfo 5.7 SetConsoleCurs…

简单贪吃蛇的实现

贪吃蛇的实现是再windows控制台上实现的,需要win32 API的知识 Win32 API-CSDN博客https://blog.csdn.net/bkmoo/article/details/138698452?spm1001.2014.3001.5501 游戏说明 ●地图的构建 ●蛇身的移动(使用↑ . ↓ . ← . → 分别控制蛇的移动&am…

图片逐层矢量化

摘要 图像光栅化是计算机图形学中一个成熟的技术,而图像向量化,即光栅化的逆过程,仍然是一个主要的挑战。最近,基于深度学习的先进模型实现了向量化和向量图的语义插值,并展示了生成新图形的更好拓扑结构。然而&#…

在vue3中,如何优雅的使用echarts之实现大屏项目

前置知识 效果图 使用技术 Vue3 Echarts Gasp Gasp:是一个 JavaScript动画库,它支持快速开发高性能的 Web 动画。在本项目中,主要是用于做轨迹运动 所需安装的插件 npm i echarts npm i countup.js 数字滚动特效 npm i gsap javascript动画库 np…

适合优化yaml文件编辑效果的.vimrc简单配置

yaml文件编辑最重要的就是缩进对齐(一个tab键对应2个空格),最后加上添加横,纵线的效果 某xx.yaml文件或者xx.yml在vim编辑器中效果如图所示:: 简单的~/.vimrc文件配置内容: vim ~/.vimrc set…

2024中国(重庆)人工智能展览会8月举办

2024中国(重庆)人工智能展览会8月举办 邀请函 主办单位: 中国航空学会 重庆市南岸区人民政府 招商执行单位: 重庆港华展览有限公司 【报名I59交易会 2351交易会 9466】 展会背景: 2024中国航空科普大会暨第八届全国青少年无人机大赛在…

JVM的原理与性能

1 JVM 内存结构 1.1 运行时数据区 1.1.1 栈(虚拟机栈) 每个线程在创建时都会创建一个私有的Java虚拟机栈,在执行每个方法时都会打包成一个栈帧,存储了局部变量表、操作数栈、动态链接、方法出口等信息,然后放入栈中。…

MF自定义控件方法

在MFC中,您可以通过自定义控件来实现特定的用户界面元素或功能,以满足您的应用程序需求。自定义控件通常是从CWnd类派生的子类,您可以在其中重写绘制、处理事件等方法,以实现您想要的功能和外观。以下是一般步骤: 创建…

Linux 操作系统MySQL 数据库1

1.MySQL 数据库 数据库是“按照数据结构来组织、 存储和管理数据的仓库”。 是一个长期存储在计算机内的、 有组织的、 可共享的、 统一管理的大量数据的集合。 它的存储空间很大, 可以存放百万条、 千万条、 上亿条数据。 但是数据库并不是随意地将数据进行…

在另外一个页面,让另外一个页面弹框显示操作(调佣公共的弹框)

大概意思是,登录弹框在另外一个页面中,而当前页面不存在,在当前页面中判断如果token不存在,就弹框出登录的弹框 最后一行 window.location.href … 如果当前用户已登录,则执行后续操作(注意此处,可不要)

哈希表Hash table

哈希表是根据关键码的值而直接进行访问的数据结构。 数组就是⼀张哈希表。 哈希表中关键码就是数组的索引下标,然后通过下标直接访问数组中的元素,如下图所示: 那么哈希表能解决什么问题呢,一般哈希表都是用来快速判断⼀个元素是…

Git Bash和Git GUI设置中文的方法

0 前言 Git是一个分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。一般默认语言为英文,本文介绍修改Git Bash和Git GUI语言为中文的方法。 1 Git Bash设置中文方法 (1)鼠标右键,单击“Git B…

redis深入理解之实战

1、SpringBoot整合redis 1.1 导入相关依赖 <dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId> </dependency> <dependency><groupId>org.springframework.boot</groupId><artifactId&g…

HTML标签快速入门

文章目录 一、HTML语法规范1.1 基本语法概述1.2 标签关系 二、HTML基本结构标签2.1 第一个HTML网页2.2 基本结构标签总结 三、网页开发工具3.1 文档类型声明标签3.2 lang 语言种类3.3 字符集3.4 总结 四、HTML常用标签4.1 标签语义4.2 标题标签\<h1> - \<h6>&#…

[Linux][网络][数据链路层][一][以太网][局域网原理]详细讲解

目录 0.对比理解"数据链路层"和网络层1.以太网1.认识以太网2.以太网帧格式3.认识MAC地址4.以太网帧格式如何封装/解包&#xff1f;5.以太网帧格式如何分用&#xff1f; 2.重谈局域网通信原理0.如何形象的理解&#xff1f;1.理解局域网通信2.在发送数据的时候&#xf…

STC8增强型单片机开发【LED呼吸灯(PWM)⭐⭐】

目录 一、引言 二、硬件准备 三、PWM技术概述 四、电路设计 五、代码编写 EAXSFR&#xff1a; 六、编译与下载 七、测试与调试 八、总结 一、引言 在嵌入式系统开发中&#xff0c;LED呼吸灯是一种常见的示例项目&#xff0c;它不仅能够展示PWM&#xff08;脉冲宽度调制…

STM32快速入门(总线协议之I2C一主多从(软件实现 硬件实现))

STM32快速入门&#xff08;总线协议之I2C一主多从&#xff08;软件实现 & 硬件实现&#xff09;&#xff09; 前言 支持一对多&#xff08;一主多从&#xff09;、多对多传输&#xff08;多主多从&#xff09;&#xff0c;只支持半双工&#xff0c;一般有两根数据线&…

使用Baidu Comate五分钟 , 工作时间摸鱼8小时

Baidu Comate&#xff1a;引领智能编码新时代 文章目录 Baidu Comate&#xff1a;引领智能编码新时代一、明日工具&#xff0c;今日领先——百度Comate智能编码助手二、万变不离其宗——适配场景需求三、功能研究3.1 指挥如指掌——指令功能3.2 助手增援——插件功能使用3.3 实…

8个免费无版权视频素材网站,高清无水印视频任性下载

在数字化时代&#xff0c;优质的视频素材成为各种项目不可缺少的元素&#xff0c;从短片制作到商业广告&#xff0c;高品质的视频能显著提高作品的吸引力和传播效果。然而&#xff0c;寻找既免费又无版权问题的高清视频素材并非易事。以下介绍几个优秀的免费视频素材网站&#…