AL2023 리눅스 시스템에 설치된 패키지 확인하기

Estimated read time 3 min read

dnf : 시스템에 설치된 패키지 조회

dnf 명령으로 시스템에 설치된 패키지 목록(list installed)을 확인할 수 있다.

[ec2-user@ip-10-0-0-17 ~]$ sudo dnf list installed
설치된 꾸러미
ImageMagick.aarch64                         1:6.9.12.82-1.amzn2023.0.7         @amazonlinux
ImageMagick-devel.aarch64                   1:6.9.12.82-1.amzn2023.0.7         @amazonlinux
ImageMagick-doc.aarch64                     1:6.9.12.82-1.amzn2023.0.7         @amazonlinux
ImageMagick-libs.aarch64                    1:6.9.12.82-1.amzn2023.0.7         @amazonlinux
acl.aarch64                                 2.3.1-2.amzn2023.0.2               @System
acpid.aarch64                               2.0.32-4.amzn2023.0.2              @System
adobe-mappings-cmap.noarch                  20190730-1.amzn2023.0.2            @amazonlinux
adobe-mappings-cmap-deprecated.noarch       20190730-1.amzn2023.0.2            @amazonlinux
adobe-mappings-pdf.noarch                   20180407-8.amzn2023.0.2            @amazonlinux
:
:
xz.aarch64                                  5.2.5-9.amzn2023.0.2               @System
xz-devel.aarch64                            5.2.5-9.amzn2023.0.2               @amazonlinux
xz-libs.aarch64                             5.2.5-9.amzn2023.0.2               @System
yum.noarch                                  4.14.0-1.amzn2023.0.4              @amazonlinux
zip.aarch64                                 3.0-28.amzn2023.0.2                @System
zlib.aarch64                                1.2.11-33.amzn2023.0.5             @System
zlib-devel.aarch64                          1.2.11-33.amzn2023.0.5             @amazonlinux
zram-generator.aarch64                      1.1.2-67.amzn2023                  @System
zram-generator-defaults.noarch              1.1.2-67.amzn2023                  @System
zstd.aarch64                                1.5.5-1.amzn2023.0.1               @System

grep : 문자열이 포함된 특정 패키지만 출력

dnf 출력에서 grep으로 php8 문자열이 포함된 행만 출력한다

[ec2-user@ip-10-0-0-17 ~]$ sudo dnf list installed | grep php8
php8.2-bcmath.aarch64                       8.2.18-1.amzn2023.0.1              @amazonlinux
php8.2-cli.aarch64                          8.2.18-1.amzn2023.0.1              @amazonlinux
php8.2-common.aarch64                       8.2.18-1.amzn2023.0.1              @amazonlinux
php8.2-dba.aarch64                          8.2.18-1.amzn2023.0.1              @amazonlinux
php8.2-devel.aarch64                        8.2.18-1.amzn2023.0.1              @amazonlinux
php8.2-ffi.aarch64                          8.2.18-1.amzn2023.0.1              @amazonlinux
php8.2-fpm.aarch64                          8.2.18-1.amzn2023.0.1              @amazonlinux
php8.2-gd.aarch64                           8.2.18-1.amzn2023.0.1              @amazonlinux
php8.2-gmp.aarch64                          8.2.18-1.amzn2023.0.1              @amazonlinux
php8.2-intl.aarch64                         8.2.18-1.amzn2023.0.1              @amazonlinux
php8.2-mbstring.aarch64                     8.2.18-1.amzn2023.0.1              @amazonlinux
php8.2-mysqlnd.aarch64                      8.2.18-1.amzn2023.0.1              @amazonlinux
php8.2-opcache.aarch64                      8.2.18-1.amzn2023.0.1              @amazonlinux
php8.2-pdo.aarch64                          8.2.18-1.amzn2023.0.1              @amazonlinux
php8.2-pgsql.aarch64                        8.2.18-1.amzn2023.0.1              @amazonlinux
php8.2-process.aarch64                      8.2.18-1.amzn2023.0.1              @amazonlinux
php8.2-pspell.aarch64                       8.2.18-1.amzn2023.0.1              @amazonlinux
php8.2-soap.aarch64                         8.2.18-1.amzn2023.0.1              @amazonlinux
php8.2-sodium.aarch64                       8.2.18-1.amzn2023.0.1              @amazonlinux
php8.2-tidy.aarch64                         8.2.18-1.amzn2023.0.1              @amazonlinux
php8.2-xml.aarch64                          8.2.18-1.amzn2023.0.1              @amazonlinux
php8.2-zip.aarch64                          8.2.18-1.amzn2023.0.1              @amazonlinux

awk : 패키지 이름 컬럼 선택

dnf 출력에서 awk로 컬럼 분리 후 패키지 이름이 위치한 첫 부분('{print$1}')만 출력한다

[ec2-user@ip-10-0-0-17 ~]$ sudo dnf list installed | grep php8 | awk '{print$1}'
php8.2-bcmath.aarch64
php8.2-cli.aarch64
php8.2-common.aarch64
php8.2-dba.aarch64
php8.2-devel.aarch64
php8.2-ffi.aarch64
php8.2-fpm.aarch64
php8.2-gd.aarch64
php8.2-gmp.aarch64
php8.2-intl.aarch64
php8.2-mbstring.aarch64
php8.2-mysqlnd.aarch64
php8.2-opcache.aarch64
php8.2-pdo.aarch64
php8.2-pgsql.aarch64
php8.2-process.aarch64
php8.2-pspell.aarch64
php8.2-soap.aarch64
php8.2-sodium.aarch64
php8.2-tidy.aarch64
php8.2-xml.aarch64
php8.2-zip.aarch64

sed : 패키지 이름에서 프로세서 정보 삭제

uname명령으로 시스템 프로세서 문자열(--processor)을 얻어온 뒤, 가공된 dnf 결과 중 프로세서 문자열을 sed로 제거한다.

[ec2-user@ip-10-0-0-17 ~]$ sudo dnf list installed | grep php8 | awk '{print$1}' | sed "s/\.$(uname --processor)//"
php8.2-bcmath
php8.2-cli
php8.2-common
php8.2-dba
php8.2-devel
php8.2-ffi
php8.2-fpm
php8.2-gd
php8.2-gmp
php8.2-intl
php8.2-mbstring
php8.2-mysqlnd
php8.2-opcache
php8.2-pdo
php8.2-pgsql
php8.2-process
php8.2-pspell
php8.2-soap
php8.2-sodium
php8.2-tidy
php8.2-xml
php8.2-zip

xargs : 패키지 이름 한 줄로 모으기

dnf 명령 실행 결과에서 패키지 이름을 완전히 정리했다. 이후에 활용하기 편하도록 xargs로 한 줄의 출력으로 바꾼다.

[ec2-user@ip-10-0-0-17 ~]$ sudo dnf list installed | grep php8 | awk '{print$1}' | sed "s/\.$(uname --processor)//" | xargs echo
php8.2-bcmath php8.2-cli php8.2-common php8.2-dba php8.2-devel php8.2-ffi php8.2-fpm php8.2-gd php8.2-gmp php8.2-intl php8.2-mbstring php8.2-mysqlnd php8.2-opcache php8.2-pdo php8.2-pgsql php8.2-process php8.2-pspell php8.2-soap php8.2-sodium php8.2-tidy php8.2-xml php8.2-zip

최종적으로, 시스템에 설치된 전체 PHP 패키지 이름이 한 줄의 문자열로 출력 되었다.

최종 명령어

아래 명령어 중 확인하고자 하는 패키지에 맞게 이름 부분을 변경 후 실행한다.

# 설치된 전체 패키지 목록 조회
sudo dnf list installed
# 특정 '이름'이 들어간 패키지만 조회
sudo dnf list installed | grep 이름
# 패키지 이름만 조회
sudo dnf list installed | grep 이름 | awk '{print$1}'
# 프로세서 문자열 제거한 패키지 이름만 조회
sudo dnf list installed | grep 이름 | awk '{print$1}' | sed "s/\.$(uname --processor)//"
# 프로세서 문자열 제거한 패키지 이름을 한 줄로 출력
sudo dnf list installed | grep 이름 | awk '{print$1}' | sed "s/\.$(uname --processor)//" | xargs echo