VPC環境で利用できます。
Linuxサーバを利用しながら、特定パッケージのコマンドが正常に動作しない場合にチェックする方法を説明します。
- サーバ作成後のサーバ内部の設定やパッケージの正常有無の確認については、NAVERクラウドプラットフォームではサポートしません。
- 使用する Linuxリリース版に関する最新の公式ドキュメントを参照することをお勧めします。
正常なコマンドを比較するために、同じ OSバージョンの新規サーバを構築してコマンドを実行し、結果を比較します。このガイドでは、awkコマンドをユースケースとして説明します。
NAVIX, CentOS, Rocky Linux
-
コマンドの実行に問題があるサーバと新規サーバにリモートアクセスします。
-
当該コマンドの位置とインストールされたパッケージ情報を比較して確認します。
[root@rockylinux9 ~]# which awk /usr/bin/awk [root@rockylinux9 ~]# ls -l /usr/bin/awk lrwxrwxrwx. 1 root root 4 May 13 2022 /usr/bin/awk -> gawk [root@rockylinux9 ~]# ls -l /usr/bin/gawk -rwxr-xr-x. 1 root root 714968 May 13 2022 /usr/bin/gawk [root@rockylinux9 ~]# rpm -qf /usr/bin/gawk gawk-5.1.0-6.el9.x86_64 -
rpm -Vまたはrpm --verifyコマンドを使用して、パッケージのインストール後に変更された内容を確認します。
正常である場合、コマンドを実行した結果として何も出力されません。[root@rockylinux9 ~]# rpm -V gawk-5.1.0-6.el9.x86_64 [root@rockylinux9 ~]#問題がある場合、以下のような出力結果を確認できます。
S file Size differs M Mode differs (includes permissions and file type) 5 digest (formerly MD5 sum) differs D Device major/minor number mismatch L readLink(2) path mismatch U User ownership differs G Group ownership differs T mTime differs P caPabilities differ各項目は変更された内容を示しており、問題を解決するためにこれらの出力を参照してパッケージの変更を確認できます。
下記のユースケースでは、/usr/bin/gawkファイルの権限を変更してパッケージの変更内容を示します。[root@rockylinux9 ~]# ls -l /usr/bin/gawk -rwxr-xr-x. 1 root root 714968 May 13 2022 /usr/bin/gawk [root@rockylinux9 ~]# chmod o-x /usr/bin/gawk [root@rockylinux9 ~]# ls -l /usr/bin/gawk -rwxr-xr--. 1 root root 714968 May 13 2022 /usr/bin/gawk [root@rockylinux9 ~]# rpm -V gawk-5.1.0-6.el9.x86_64 .M....... /usr/bin/gawk出力結果の.M....... は Mode differsを表します。
これにより、初回インストール時の権限と現在の権限が異なるため、変更されたのを確認できます。 -
特定パッケージのコマンドが参照するライブラリを比較するために
lddコマンドを使用して当該コマンドのライブラリを確認します。[root@rockylinux9 ~]# ldd /usr/bin/gawk linux-vdso.so.1 (0x00007ffcb51b0000) libsigsegv.so.2 => /lib64/libsigsegv.so.2 (0x00007f677502f000) libreadline.so.8 => /lib64/libreadline.so.8 (0x00007f6774fd7000) libmpfr.so.6 => /lib64/libmpfr.so.6 (0x00007f6774f27000) libgmp.so.10 => /lib64/libgmp.so.10 (0x00007f6774e82000) libm.so.6 => /lib64/libm.so.6 (0x00007f6774da7000) libc.so.6 => /lib64/libc.so.6 (0x00007f6774a00000) libtinfo.so.6 => /lib64/libtinfo.so.6 (0x00007f6774d75000) /lib64/ld-linux-x86-64.so.2 (0x00007f67750f3000) -
エラーの原因が見つからない場合は、当該パッケージを再インストールします。
参考パッケージを再インストールする際に、既存のパッケージと同じバージョンでインストールされるかを確認します。
下記のユースケースは httpd(apacheウェブサーバ)の特定ファイルを削除した後、パッケージを再インストールして復旧するプロセスを示します。
[root@rockylinux9 ~]# rpm -qa | grep httpd httpd-tools-2.4.62-4.el9.x86_64 httpd-filesystem-2.4.62-4.el9.noarch httpd-core-2.4.62-4.el9.x86_64 rocky-logos-httpd-90.16-1.el9.noarch httpd-2.4.62-4.el9.x86_64 [root@rockylinux9 ~]# rm -i /usr/share/man/man8/apachectl.8.gz rm: remove regular file '/usr/share/man/man8/apachectl.8.gz'? y [root@rockylinux9 ~]# rpm -V httpd missing d /usr/share/man/man8/apachectl.8.gz [root@rockylinux9 ~]# dnf reinstall httpd Last metadata expiration check: 0:12:37 ago on Fri 04 Jul 2025 03:31:40 PM KST. Dependencies resolved. =========================================================================================== Package Architecture Version Repository Size =========================================================================================== Reinstalling: httpd x86_64 2.4.62-7.el9 appstream 44 k Transaction Summary =========================================================================================== Total download size: 45 k Installed size: 59 k Is this ok [y/N]: y ...省略 ... Reinstalled: httpd-2.4.62-7.el9.x86_64 Complete! [root@rockylinux9 ~]# rpm -V httpd [root@rockylinux9 ~]#
Ubuntu
- コマンドの実行に問題があるサーバと新規サーバにリモートアクセスします。
- 当該コマンドの位置とインストールされたパッケージ情報を比較して確認します。
root@ubuntu2404:~# which awk /usr/bin/awk root@ubuntu2404:~# ls -l /usr/bin/awk lrwxrwxrwx 1 root root 21 Apr 9 2024 /usr/bin/awk -> /etc/alternatives/awk root@ubuntu2404:~# ls -l /etc/alternatives/awk lrwxrwxrwx 1 root root 13 Aug 27 2024 /etc/alternatives/awk -> /usr/bin/gawk root@ubuntu2404:~# ls -l /usr/bin/gawk -rwxr-xr-x 1 root root 739840 Mar 31 2024 /usr/bin/gawk root@ubuntu2404:~# dpkg -S /usr/bin/gawk gawk: /usr/bin/gawk root@ubuntu2404:~# dpkg -l gawk Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Architecture Description +++-==============-===============-============-=================================================== ii gawk 1:5.2.1-2build3 amd64 GNU awk, a pattern scanning and processing language dpkg -Vまたはdpkg --verifyコマンドを使用して、パッケージのインストール後に変更された内容を確認します。
正常である場合、コマンドを実行した結果として何も出力されません。
問題がある場合、以下のような出力結果を確認できます。Ubuntuの場合、現在は md5sumを確認した結果についてのみ変更された部分を確認します。root@ubuntu2404:~# dpkg -V gawk root@ubuntu2404:~#
下記のユースケースでは、5 digest (formerly MD5 sum) differs/usr/share/doc/gawk/READMEファイルの内容を変更してパッケージの変更内容を示します。
出力結果で??5?????? は 5 digestを表します。これにより md5sumの結果値が異なり、初回インストール時のファイルから変更されたことを確認できます。root@ubuntu2404:~# ls -l /usr/share/doc/gawk/README -rw-r--r-- 1 root root 3890 Aug 27 2024 /usr/share/doc/gawk/README root@ubuntu2404:~# sed -i '$a TEST...' /usr/share/doc/gawk/README root@ubuntu2404:~# ls -l /usr/share/doc/gawk/README -rw-r--r-- 1 root root 3898 Jul 4 15:36 /usr/share/doc/gawk/README root@ubuntu2404:~# dpkg -V gawk ??5?????? /usr/share/doc/gawk/README- 特定パッケージのコマンドが参照するライブラリを比較するために
lddコマンドを使用して当該コマンドのライブラリを確認します。root@ubuntu2404:~# ldd /usr/bin/gawk linux-vdso.so.1 (0x00007ffc22590000) libsigsegv.so.2 => /lib/x86_64-linux-gnu/libsigsegv.so.2 (0x000077e75eb5a000) libreadline.so.8 => /lib/x86_64-linux-gnu/libreadline.so.8 (0x000077e75eb05000) libmpfr.so.6 => /lib/x86_64-linux-gnu/libmpfr.so.6 (0x000077e75ea4a000) libgmp.so.10 => /lib/x86_64-linux-gnu/libgmp.so.10 (0x000077e75e9c6000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x000077e75e8dd000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x000077e75e600000) libtinfo.so.6 => /lib/x86_64-linux-gnu/libtinfo.so.6 (0x000077e75e8a7000) /lib64/ld-linux-x86-64.so.2 (0x000077e75eb68000) - エラーの原因が見つからない場合は、当該パッケージを再インストールします。
下記のユースケースは httpd(apacheウェブサーバ)の特定ファイルを削除した後、パッケージを再インストールして復旧するプロセスを示します。参考パッケージを再インストールする際に、既存のパッケージと同じバージョンでインストールされるかを確認します。
root@ubuntu2404:~# dpkg -l |grep apache2 ii apache2 2.4.58-1ubuntu8.6 amd64 Apache HTTP Server ii apache2-bin 2.4.58-1ubuntu8.6 amd64 Apache HTTP Server (modules and other binary files) ii apache2-data 2.4.58-1ubuntu8.6 all Apache HTTP Server (common files) ii apache2-utils 2.4.58-1ubuntu8.6 amd64 Apache HTTP Server (utility programs for web servers) root@ubuntu2404:~# rm -i /usr/share/man/man1/a2query.1.gz rm: remove regular file '/usr/share/man/man1/a2query.1.gz'? y root@ubuntu2404:~# dpkg -V apache2 missing /usr/share/man/man1/a2query.1.gz root@ubuntu2404:~# apt install --reinstall apache2 Reading package lists... Done Building dependency tree... Done Reading state information... Done 0 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 228 not upgraded. Need to get 90.2 kB of archives. After this operation, 0 B of additional disk space will be used. Get:1 http://repo.ncloud.com/ubuntu noble-updates/main amd64 apache2 amd64 2.4.58-1ubuntu8.6 [90.2 kB] ...省略 ... Preparing to unpack .../apache2_2.4.58-1ubuntu8.6_amd64.deb ... Unpacking apache2 (2.4.58-1ubuntu8.6) over (2.4.58-1ubuntu8.6) ... Setting up apache2 (2.4.58-1ubuntu8.6) ... Processing triggers for man-db (2.12.0-4build2) ... Processing triggers for ufw (0.36.2-6) ... Scanning processes... Scanning linux images... root@ubuntu2404:~# dpkg -V apache2 root@ubuntu2404:~#