在Ubuntu 22.04上安装最新版本的Nginx
假设
在安装了Ubuntu上的Nginx之后,版本号为1.18.0。
由于这是一个在2020年发布的旧版本,我想要将其升级到最新的版本。
据说Ubuntu有一个称为操作系统标准软件的东西,如果检查Ubuntu 22.04的操作系统标准软件Nginx,会显示1.18.0-6ubuntu14.3。
另外,我在类似的文章中经常看到使用apt-key的方法,但是使用这个方法的话,当执行$ sudo apt update的时候会一直出错,所以我要尝试不使用apt-key的方法。
您可以参考以下网址获取有关Nginx的Linux软件包相关信息:http://nginx.org/en/linux_packages.html
环境
Ubuntu 22.04 LTS
Nginx 1.18.0 → 1.22.1
Ubuntu 22.04长期支持版本
Nginx 1.18.0更新至1.22.1
设定
导入签名密钥
按照提供的 URL 进行设置。
$ sudo apt install curl gnupg2 ca-certificates lsb-release ubuntu-keyring
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg
确认
$ gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg
pub rsa2048 2011-08-19 [SC] [expires: 2024-06-14]
573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62
uid nginx signing key <signing-key@nginx.com>
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list
添加 Nginx 仓库
确认Ubuntu的发行版本名称。确认为Jammy。
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=22.04
DISTRIB_CODENAME=jammy
DISTRIB_DESCRIPTION="Ubuntu 22.04.1 LTS"
仓库信息将会变成这样。
deb https://nginx.org/packages/ubuntu/ jammy nginx
deb-src https://nginx.org/packages/ubuntu/ jammy nginx
我会在/etc/apt/sources.list.d/文件夹中创建一个名为nginx.list的文件,并将其写入。
无论使用nano还是vim,都可以,但是由于我习惯使用vim,所以我会使用vim。
$ sudo vi /etc/apt/sources.list.d/nginx.list
暂时确认一下吧。
$ cat /etc/apt/sources.list.d/nginx.list
deb https://nginx.org/packages/ubuntu/ jammy nginx
deb-src https://nginx.org/packages/ubuntu/ jammy nginx
安装
走吧,动! ba, !)
$ sudo apt update
$ sudo apt install nginx
并且,再次确认Nginx的软件包。
$ nginx -v
nginx version: nginx/1.22.1
喔喔喔喔喔!已经改为1.22.1。
再稍等一会。因为状态变为了inactive (dead)…
$ sudo systemctl status nginx
○ nginx.service - nginx - high performance web server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: inactive (dead) since Wed 2022-11-30 13:55:04 JST; 1min 2s ago
启动Nginx。
$ sudo systemctl start nginx
只要处于活动状态(运行状态)就可以了。
$ sudo systemctl status nginx
● nginx.service - nginx - high performance web server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2022-11-30 13:57:18 JST; 12s ago