この記事では、DebianにNginx公式リポジトリにある最新バージョンのNginxをインストールする手順を紹介します。
※Debianのデフォルトの設定でapt install nginx
した場合、Nginx公式リポジトリからではなく、Debian公式リポジトリから少し古いバージョンのNginxがインストールされます。
実行環境
- Debian 11 bullseye
手順
1. 必要なパッケージのインストール
Nginxのインストールに必要な以下のパッケージをインストールします。
以下のコマンドを実行してパッケージをインストール。
$ sudo apt install curl gnupg2 ca-certificates lsb-release debian-archive-keyring
- パッケージの情報を表示:
apt show <パッケージ名>
- インストール済みパッケージの確認:
apt list --installed <パッケージ名>
2. 署名鍵のインポート
aptがパッケージの信頼性を確認できるようにするために、Nginxが公式に公開している署名鍵をインポートします。
以下のコマンドを実行して署名鍵をインポート。
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
- コマンドの意味
curl https://nginx.org/keys/nginx_signing.key
- curlコマンドで署名鍵ファイルをダウンロード
gpg --dearmor
- 署名鍵ファイルをgpgコマンドで暗号化
sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg
- teeコマンドで /usr/share/keyrings 配下に nginx-archive-keyring.gpg というファイル名で保存
>/dev/null
- コマンド実行時の出力結果を /dev/null に渡している
以下のコマンドを実行して、ダウンロードした署名鍵が正しいことを確認します。
$ gpg --dry-run --quiet --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>
出力されたフィンガープリントの値が573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62
であることを確認します。
フィンガープリントの値が異なる場合は、署名鍵をインポートし直してください。
3. リポジトリの追加
aptの設定ファイルにNginxの公式リポジトリを追加します。
以下のコマンドを実行して /etc/apt/sources.list.d 配下に設定ファイルを作成します。
$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/mainline/debian `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list
作成された /etc/apt/sources.list.d/nginx.list の内容は以下のようになります。
deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/mainline/debian bullseye nginx
上記の設定ではmainlineのリポジトリを追加しています。
- NginxのMainline versionとStable versionのどちらを使うべきか
- Announcing NGINX 1.6 and 1.7 as Stable & Mainline Versions
- Mainline version→特に理由がなければこっち
- Stable version→新機能の追加によるバグなどを懸念している場合はこっち
- Announcing NGINX 1.6 and 1.7 as Stable & Mainline Versions
4. Nginxのインストール
最後に、以下のコマンドを実行してNginxをインストールします。
$ sudo apt update $ sudo apt install nginx
以上で終了です。
【番外編】apt-keyコマンドを使う
番外編として、署名鍵のインポートにapt-keyコマンドを使った場合のインストール手順を紹介します。
※apt-keyコマンドは2022年ごろの廃止が予定されています。
1. 署名鍵のインポート
以下のコマンドを実行して、署名鍵をインポートします。
$ sudo wget https://nginx.org/keys/nginx_signing.key $ sudo apt-key add nginx_signing.key
- apt-key addで追加した署名鍵の確認:
apt-key list
- apt-key addで追加した署名鍵の削除:
apt-key del <keyid>
2. リポジトリの追加
/etc/apt/sources.list を編集します。
$ sudo vi /etc/apt/sources.list
以下を追記。
deb https://nginx.org/packages/mainline/debian/ <CODENAME> nginx deb-src https://nginx.org/packages/mainline/debian/ <CODENAME> nginx
コードネームの確認:lsb_release -cs
Debian 11 bullseyeの場合
deb https://nginx.org/packages/mainline/debian/ bullseye nginx deb-src https://nginx.org/packages/mainline/debian/ bullseye nginx
3. Nginxのインストール
以下のコマンドを実行して、Nginxをインストールします。
$ sudo apt update $ sudo apt install nginx
以上で終了です。
【参考】
- 公式インストールマニュアル
- 【nginx.org】nginx: Linux packages←本稿では主にこちらを参考
- 【nginx.com】Install | NGINX
- 【docs.nginx.com】Installing NGINX Open Source | NGINX Plus
- nginx: download
- apt(8) — apt — Debian unstable — Debian Manpages
- 第675回 apt-keyはなぜ廃止予定となったのか:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
- What is GPG / PGP and how do I use it?
- Linux(Debian) に最新版 Nginx をインストールする方法メモ - Just do IT
- Ubuntu 20.04 LTSに最新版Nginxをインストールする | ジコログ
- 【Ubuntu】nginx公式リポジトリを使用してインストール | server-memo.net