VPC 환경에서 이용 가능합니다.
Linux 서버를 이용하면서 특정한 패키지의 명령어가 정상 동작하지 않을 때 점검하는 방법을 설명합니다.
주의
- 서버가 생성된 이후에 서버 내부의 설정이나 패키지 정상 여부 확인에 대해서는 네이버 클라우드 플랫폼에서 지원하지 않습니다.
- 사용하는 리눅스 배포판에 대한 최신 공식 문서를 참조하는 것을 권장드립니다.
정상적인 명령어를 비교하기 위해서 동일한 OS 버전의 신규 서버를 구축하여 명령어를 실행하고 결과를 비교해 주십시오. 해당 가이드에서는 awk
명령어를 예제로 해당 예제를 사용하여 설명합니다.
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 ```bash 출력 결과에서 .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)
- 오류 원인을 찾기 어려운 경우, 해당 패키지를 재설치해 주십시오.참고
패키지 재설치 시에 기존 패키지와 동일한 버전으로 설치되는지 확인해 주십시오.
[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-4.el9 appstream 45 k Transaction Summary ====================================================================================================================================================================== Total download size: 45 k Installed size: 59 k Is this ok [y/N]: y ... 생략 ... Reinstalled: httpd-2.4.62-4.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)
- 오류 원인을 찾기 어려운 경우, 해당 패키지를 재설치해 주십시오.참고
패키지 재설치 시에 기존 패키지와 동일한 버전으로 설치되는지 확인해 주십시오.
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.gov-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:~#