DNF(dnf module)でNginx mainlineをインストール

2020年2月10日LinuxCentOS8,nginx

dnf moduleを使ってNginxのmainlineをインストールします。

以前の記事を書いた当時は、依存関係の解決ができない的なエラーが出てインストールできなかったのですが、最近確認したところ普通にインストールできました。

dnf module・・・?

CentOS 7までは、パッケージ管理システムとしてyumが使われていましたが、CentOS 8では代わりにDNFが使われています。

DNFにはモジュールという概念が導入されたようで、これによってソフトのバージョン指定、切り替えが簡単にできるようになりました。

インストールできるバージョンは、dnf module listで確認できます。例えば、インストールできるNginxのバージョンを確認してみると、

dnf module list nginx
CentOS-8 - AppStream
Name        Stream             Profiles        Summary
nginx       1.14 [d]           common [d]      nginx webserver
nginx       1.16               common          nginx webserver

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

と出てきます。Nginxは「CentOS-8 – AppStream」で配信されていること、1.14と1.16のバージョンが選択できること、デフォルトでは1.14/commonがインストールされることが分かります。

Nginx mainlineのインストール

既に何らかのバージョンのNginxをインストールしている人(上記で[i]や[e]の表示がある人)は、いったんリセットします。このコマンドを行うだけでは、特にNginxのアンインストールなどは行われないようです。

sudo dnf module reset nginx 

Nginxのmainlineは、epel-modularで配信されているようですので、EPELリポジトリをインストールします。

sudo dnf install epel-release && \
sudo dnf update

次に、 mainlineバージョンを指定してNginxをインストールします。

sudo dnf module install nginx:mainline/common

これを実行すると、mainline版のNginxがインストールされます。既に別バージョンをインストールしていた人も、旧バージョンが削除されてmainlineがインストールされます。

確認のため、dnf module listを実行してみます。

dnf module list nginx
CentOS-8 - AppStream
Name        Stream            Profiles        Summary
nginx       1.14 [d]          common [d]      nginx webserver
nginx       1.16              common          nginx webserver

Extra Packages for Enterprise Linux Modular 8 - x86_64
Name        Stream            Profiles        Summary
nginx       mainline [e]      common [i]      nginx webserver

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

また、Nginxのバージョンを確認します。

nginx -V
nginx version: nginx/1.17.8
以下省略

現時点の最新版がインストールされています。無事、nginx mainlineのインストールができました。

created by Rinker
インプレス - impress top gear シリーズ
渡辺 高志 著、2017/2/16 発売
私もこの本を参考にして環境を構築しました。Cent OS 7にnginxを入れて、PHP+WordPress環境を構築したり、Let's Encryptを用いたSSL/TLSの設定方法などが詳しく載っています。