らくがきちょう

なんとなく ~所属組織/団体とは無関係であり、個人の見解です~

CentOS8 に Nginx 公式リポジトリから Nginx をインストールする

CentOS8 では新たに AppStream という仕組みが導入されたそうです。 まだ AppStream の詳細を理解出来ていないのですが、従来通りの手順で Nginx の公式リポジトリから Nginx をインストールしようとすると AppStream リポジトリが優先されてしまい、Nginx 公式リポジトリからインストールすることが出来ません。 そこで、今回は AppStream リポジトリが使われることを回避し、Nginx 公式リポジトリからインストールする手順をメモしておきます。 当然、プラットフォームは CentOS8 を使ってテストします。

Nginx 公式リポジトリの定義

Nginx 公式の Mainline リポジトリを定義します。 尚、CentOS8 になって dnf ベースになりましたが、リポジトリの定義は (/etc/dnf.repos.d では無く、従来通り) /etc/yum.repos.d に存在します。

cat << EOF > /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/\$releasever/\$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
EOF

AppStream を無効化して Nginx をインストール

Nginx のリポジトリは定義出来たのですが、このまま dnf で Nginx をインストールしようとすると AppStream リポジトリが優先されてしまいます。 以下では dnf info nginx で優先されるリポジトリを確認しています。

# dnf info nginx
nginx repo                                                                               54 kB/s | 229 kB     00:04
Last metadata expiration check: 0:00:01 ago on Tue Oct 22 01:30:17 2019.
Available Packages
Name         : nginx
Epoch        : 1
Version      : 1.14.1
Release      : 9.module_el8.0.0+184+e34fea82
Arch         : x86_64
Size         : 570 k
Source       : nginx-1.14.1-9.module_el8.0.0+184+e34fea82.src.rpm
Repo         : AppStream
Summary      : A high performance web server and reverse proxy server
URL          : http://nginx.org/
License      : BSD
Description  : Nginx is a web server and a reverse proxy server for HTTP, SMTP, POP3 and
             : IMAP protocols, with a strong focus on high concurrency, performance and low
             : memory usage.

これは明示的に AppStream リポジトリを無効化することで Nginx 公式リポジトリを参照出来るようになります。

# dnf --disablerepo=AppStream info nginx
Last metadata expiration check: 0:03:26 ago on Tue Oct 22 01:30:17 2019.
Available Packages
Name         : nginx
Epoch        : 1
Version      : 1.17.4
Release      : 1.el7.ngx
Arch         : x86_64
Size         : 767 k
Source       : nginx-1.17.4-1.el7.ngx.src.rpm
Repo         : nginx
Summary      : High performance web server
URL          : http://nginx.org/
License      : 2-clause BSD-like license
Description  : nginx [engine x] is an HTTP and reverse proxy server, as well as
             : a mail proxy server.

明示的に AppStream リポジトリを無効化し、dnf install で Nginx をインストールします。

dnf --disablerepo=AppStream -y install nginx

これで Nginx がインストール出来ました。

起動&自動起動の設定

後は Nginx の起動&自動起動をすれば完了です。

systemctl enable nginx
systemctl start nginx