(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【NGINX Plus】yumによるインストール時におけるconflicts with fileというエラー

スポンサーリンク

事象

既にNginxをインストールしている環境にNginx Plusをインストールをすると以下のエラーとなる。

# yum install -y nginx-plus
...
Downloading Packages:
nginx-plus-30-2.amzn2023.ngx.x86_64.rpm                                                              1.2 MB/s | 3.5 MB     00:02    
-------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                1.2 MB/s | 3.5 MB     00:02     
Running transaction check
Transaction check succeeded.
Running transaction test
The downloaded packages were saved in cache until the next successful transaction.
You can remove cached packages by executing 'yum clean packages'.
Error: Transaction test error:
  file /etc/nginx/mime.types from install of nginx-plus-30-2.amzn2023.ngx.x86_64 conflicts with file from package nginx-mimetypes-2.1.49-3.amzn2023.0.3.noarch
  file /etc/logrotate.d/nginx from install of nginx-plus-30-2.amzn2023.ngx.x86_64 conflicts with file from package nginx-core-1:1.24.0-1.amzn2023.0.2.x86_64
  file /etc/nginx/nginx.conf from install of nginx-plus-30-2.amzn2023.ngx.x86_64 conflicts with file from package nginx-core-1:1.24.0-1.amzn2023.0.2.x86_64
  file /usr/sbin/nginx from install of nginx-plus-30-2.amzn2023.ngx.x86_64 conflicts with file from package nginx-core-1:1.24.0-1.amzn2023.0.2.x86_64
  file /var/lib/nginx from install of nginx-plus-30-2.amzn2023.ngx.x86_64 conflicts with file from package nginx-core-1:1.24.0-1.amzn2023.0.2.x86_64
  file /var/log/nginx from install of nginx-plus-30-2.amzn2023.ngx.x86_64 conflicts with file from package nginx-core-1:1.24.0-1.amzn2023.0.2.x86_64
環境情報
# nginx -v
nginx version: nginx/1.25.1 (nginx-plus-r30-p1)

原因/解決策

既存のnginxと競合を起こしているため、アンインストールを行う。(下記では/etc/nginx/nginx.confは/etc/nginx/nginx.conf.rpmsaveとしてバックアップされているが、事前に必要な情報は保存推奨)

# yum remove nginx
...
Removing:
 nginx                              x86_64                1:1.24.0-1.amzn2023.0.2                  @amazonlinux                128 k
Removing unused dependencies:
 generic-logos-httpd                noarch                18.0.0-12.amzn2023.0.3                   @amazonlinux                 21 k
 gperftools-libs                    x86_64                2.9.1-1.amzn2023.0.3                     @amazonlinux                1.4 M
 libunwind                          x86_64                1.4.0-5.amzn2023.0.2                     @amazonlinux                165 k
 nginx-core                         x86_64                1:1.24.0-1.amzn2023.0.2                  @amazonlinux                1.6 M
 nginx-filesystem                   noarch                1:1.24.0-1.amzn2023.0.2                  @amazonlinux                  0  
 nginx-mimetypes                    noarch                2.1.49-3.amzn2023.0.3                    @amazonlinux                 43 k
...
warning: /etc/nginx/nginx.conf saved as /etc/nginx/nginx.conf.rpmsave
...
Complete!

この状態で再度インストールを行うと正常に完了する。

# yum install -y nginx-plus
...
Thank you for using NGINX!
...
Installed:
  nginx-plus-30-2.amzn2023.ngx.x86_64                                                                                                
Complete!

以下、補足です。

補足

Nginx Plusをインストールする場合はリポジトリ設定が必要で、Aamazon Linuxの場合の手順は以下。公式サイトにも記載があります。

# wget -P /etc/yum.repos.d https://cs.nginx.com/static/files/plus-amazonlinux2023.repo
...
- ‘/etc/yum.repos.d/plus-amazonlinux2023.repo’ saved [198/198]

リポジトリ設定には証明書ファイル名のパスが記載されているので

$ cat /etc/yum.repos.d/plus-amazonlinux2023.repo
...
sslclientcert=/etc/ssl/nginx/nginx-repo.crt
sslclientkey=/etc/ssl/nginx/nginx-repo.key
gpgcheck=0
enabled=1

MyF5からダウンロードした証明書ファイルと鍵ファイルを配置します。

# file /etc/ssl/nginx/nginx-repo.crt 
/etc/ssl/nginx/nginx-repo.crt: PEM certificate
# file /etc/ssl/nginx/nginx-repo.key 
/etc/ssl/nginx/nginx-repo.key: ASCII text, with CRLF line terminators

本来はこの状態まで来ればインストール可能ですが、既に別のNginxが入っている場合は表題のエラーとなる可能性があるのでご注意ください。

尚、NGINX Plusのステータスは以下のように確認できました。

# systemctl status nginx
● nginx.service - NGINX Plus - high performance web server
     Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; preset: disabled)
     Active: active (running) since Wed 2023-12-13 05:59:10 UTC; 4s ago
       Docs: https://www.nginx.com/resources/
    Process: 34332 ExecStartPre=/usr/libexec/nginx-plus/check-subscription (code=exited, status=0/SUCCESS)
    Process: 34336 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS)
   Main PID: 34337 (nginx)
      Tasks: 2 (limit: 1114)
     Memory: 2.0M
        CPU: 18ms
     CGroup: /system.slice/nginx.service
             ├─34337 "nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf"
             └─34338 "nginx: worker process"

以上、ご参考になれば幸いです。