리눅스/Arch or Manjaro

아치 계열 리눅스 패키지 관리자 Pacman 주요 사용법 1 - 패키지 동기화, 설치, 업그레이드, 삭제

씨실과 날실 2021. 9. 4. 09:00

 

아래의 명령들 중 시스템 관리에 빈번히 사용되는 명령은 ★ 표시를 붙이도록 하겠습니다.

 

저장소(Repository) 동기화

[study@study-virtualbox ~]$ sudo pacman -Sy

로컬 패키지 데이터 베이스 정보를 원격 저장소에 맞춰 동기화하는 명령입니다.

이 명령의 실행의 결과로 저장소의 패키지 목록이 다운로드됩니다.

 

/var/lib/pacman/sync

 

패키지 목록 데이터베이스 파일은 위 경로의 디렉터리 안에 저장됩니다.

 

[study@study-virtualbox ~]$ cd /var/lib/pacman/sync
[study@study-virtualbox sync]$ ls -l
합계 7476
-rw-r--r-- 1 root root 5904249  8월  7 15:36 community.db
-rw-r--r-- 1 root root  139136  8월  7 16:04 core.db
-rw-r--r-- 1 root root 1607452  8월  7 08:56 extra.db
[study@study-virtualbox sync]$

동기화 전의 데이터베이스 파일 정보입니다.

 

[study@study-virtualbox ~]$ sudo pacman -Sy
[sudo] study 암호: 
:: 꾸러미 데이터베이스 동기화 중...
 core                  136.2 KiB   512 KiB/s 00:00 [######################] 100%
 extra                1572.7 KiB  2.90 MiB/s 00:01 [######################] 100%
 community               5.7 MiB  3.41 MiB/s 00:02 [######################] 100%
[study@study-virtualbox ~]$

위와 같이 동기화 작업을  후 패키지 목록 데이터베이스 파일 정보를 확인해봅시다.

[study@study-virtualbox sync]$ ls -l
합계 7516
-rw-r--r-- 1 root root 5936877  8월 29 23:00 community.db
-rw-r--r-- 1 root root  139445  8월 28 15:40 core.db
-rw-r--r-- 1 root root 1610402  8월 29 15:56 extra.db
[study@study-virtualbox sync]$

파일 정보가 바뀐 것을 보아 동기화 작업이 이루어진 것을 미루어 짐작할 수 있습니다.

 

[study@study-virtualbox sync]$ file *.*
community.db: gzip compressed data, from Unix, original size modulo 2^32 21022720
core.db:      gzip compressed data, from Unix, original size modulo 2^32 542720
extra.db:     gzip compressed data, from Unix, original size modulo 2^32 6809600
[study@study-virtualbox sync]$

위 출력 과정을 보면 pacman의 로컬 패키지 데이터베이스 파일은 gzip 파일로 압축되어 있음을 알 수 있습니다.

 

이 데이터베이스 내용은 아래와 같이 확인할 수 있습니다.

[study@study-virtualbox sync]$ tar -tf core.db
acl-2.3.1-1/
acl-2.3.1-1/desc
amd-ucode-20210818.c46b8c3-1/
amd-ucode-20210818.c46b8c3-1/desc
archlinux-keyring-20210820-1/
archlinux-keyring-20210820-1/desc

- 생략 - 

xz-5.2.5-1/
xz-5.2.5-1/desc
zlib-1:1.2.11-4/
zlib-1:1.2.11-4/desc
zstd-1.5.0-1/
zstd-1.5.0-1/desc
[study@study-virtualbox sync]$

위 내용은 아치 리눅스 기본 저장소중 하나인 core repository에서 설치할 수 있는 패키지들 목록입니다.

 

 

시스템 내 전체 패키지 업그레이드

[study@study-virtualbox sync]$ sudo pacman -Su

기존의 로컬 패키지 데이터베이스를 바탕으로 패키지를 업그레이드합니다.

 

[study@study-virtualbox ~]$ sudo pacman -Su
[sudo] study 암호: 
:: 전체 시스템 업그레이드 시작 중...
의존성 해결 중...
꾸러미 충돌을 찾는 중...
경고: 순환 의존성이 감지되었습니다:
경고: smbclient는 의존성 cifs-utils보다 앞에 설치될 것입니다.

꾸러미 (118) alsa-card-profiles-1:0.3.34-1  archlinux-keyring-20210820-1
             audit-3.0.4-1  bluez-5.61-1  bluez-libs-5.61-1
             btrfs-progs-5.13.1-1  bubblewrap-0.5.0-1
             ca-certificates-mozilla-3.69-1  cifs-utils-6.13-3
             cryptsetup-2.4.0-1  dav1d-0.9.1-1  dbus-glib-0.112-2
             devhelp-40.1-1  device-mapper-2.03.13-1  diffutils-3.8-1
             e2fsprogs-1.46.4-1  enchant-2.3.1-1  eog-40.3-1  epiphany-40.3-1
             evolution-3.40.4-1  evolution-data-server-3.40.4-1
             flatpak-1.11.3-1  flatpak-builder-1.1.1-1  git-2.33.0-1
             gjs-2:1.68.3-1  glib-networking-1:2.68.2-1  glib2-2.68.4-1
             glib2-docs-2.68.4-1  gnome-autoar-0.4.0-1  gnome-desktop-1:40.4-1
             gnome-maps-40.4-1  gnome-shell-1:40.4-1
             gnome-shell-extensions-40.4-1  gnome-software-40.4-1
             gnome-user-docs-40.4-1  gnome-weather-40.1-1  gsound-1.0.3-1
             gst-plugin-pipewire-1:0.3.34-1  gtk-update-icon-cache-1:4.4.0-1
             gtk4-1:4.4.0-1  harfbuzz-2.9.0-1  harfbuzz-icu-2.9.0-1
             iana-etc-20210728-1  ibus-1.5.25-2  imlib2-1.7.3-1
             ipython-7.27.0-1  jasper-2.0.33-1  js78-78.13.0-1
             json-glib-1.6.6-1  libarchive-3.5.2-1  libbsd-0.11.3-1
             libcap-2.53-1  libepoxy-1.5.9-1  libgexiv2-0.12.3-1
             libgudev-237-1  libibus-1.5.25-2  libjpeg-turbo-2.1.1-1
             libmd-1.0.3-1  libmfx-21.3.2-1  libmm-glib-1.16.10-1
             libnm-1.32.10-1  libnma-1.8.32-1  libpackagekit-glib-1.2.4-1
             libphonenumber-8.12.29-1  libsoup-2.74.0-1  libsrtp-1:2.4.0-1
             libssh-0.9.6-1  libstemmer-2.1.0-1  libwebp-1.2.1-1
             libxcrypt-4.4.25-1  linux-5.13.13.arch1-1
             linux-firmware-20210818.c46b8c3-1  llvm-libs-12.0.1-3
             lvm2-2.03.13-1  mesa-21.2.1-1  meson-0.59.1-1  mtools-1:4.0.35-1
             mutter-40.4-1  netpbm-10.73.36-1  networkmanager-1.32.10-1
             nm-connection-editor-1.24.0-1  nss-3.69-1  openssh-8.7p1-1
             openssl-1.1.1.l-1  pacman-mirrorlist-20210822-1  pango-1:1.48.9-2
             pcsclite-1.9.3-1  pipewire-1:0.3.34-1
             pipewire-media-session-1:0.3.34-1  python-astroid-2.7.2-1
             python-isort-5.9.3-1  python-mccabe-0.6.1-9
             python-platformdirs-2.0.2-1  python-prompt_toolkit-3.0.20-1
             python-pygments-2.10.0-1  python-pylint-2.10.2-1
             python-simplejson-3.17.5-1  ruby-ffi-1.15.3-1  run-parts-5.3-1
             sdl2-2.0.16-2  smbclient-4.14.7-1  snappy-1.1.9-1
             soundtouch-2.3.0-1  systemd-249.3-1  systemd-libs-249.3-1
             systemd-sysvcompat-249.3-1  tali-40.2-1  texinfo-6.8-2
             tracker3-miners-3.1.2-2  upower-0.99.13-1  usbredir-0.11.0-1
             util-linux-2.37.2-1  util-linux-libs-2.37.2-1  vala-0.52.5-1
             vulkan-headers-1:1.2.188-1  vulkan-icd-loader-1.2.188-1
             xfsprogs-5.13.0-1  xorg-xrdb-1.2.1-1

총 다운로드 크기:       482.25 MiB
총 설치 크기:          1863.67 MiB
알짜 업그레이드 크기:     3.16 MiB

:: 설치를 진행하시겠습니까? [Y/n] 

- 하략 -

위와 같은 과정으로 진행됩니다.

전체 과정은 $ sudo pacman -Syu 명령 진행 과정 예시를 확인하시기 바랍니다.

 

동기화 후 시스템 전체 패키지 업그레이드 [★]

[study@study-virtualbox ~]$ sudo pacman -Syu

로컬 패키지 데이터 베이스 정보를 원격 저장소에 맞춰 동기화한 후 바로 이어서 시스템 내 전체 패키지를 업그레이드합니다.

시스템을 전체 업그레이드할 때 가장 일반적으로 사용하는 명령입니다.

 

더보기
$ sudo pacman -Syu
[study@study-virtualbox ~]$ sudo pacman -Syu
[sudo] study 암호: 
:: 꾸러미 데이터베이스 동기화 중...
 core                  136.2 KiB  1641 KiB/s 00:00 [######################] 100%
 extra                1572.7 KiB  7.96 MiB/s 00:00 [######################] 100%
 community               5.7 MiB  4.16 MiB/s 00:01 [######################] 100%
:: 전체 시스템 업그레이드 시작 중...
의존성 해결 중...
꾸러미 충돌을 찾는 중...
경고: 순환 의존성이 감지되었습니다:
경고: smbclient는 의존성 cifs-utils보다 앞에 설치될 것입니다.

꾸러미 (118) alsa-card-profiles-1:0.3.34-1  archlinux-keyring-20210820-1
             audit-3.0.4-1  bluez-5.61-1  bluez-libs-5.61-1
             btrfs-progs-5.13.1-1  bubblewrap-0.5.0-1
             ca-certificates-mozilla-3.69-1  cifs-utils-6.13-3
             cryptsetup-2.4.0-1  dav1d-0.9.1-1  dbus-glib-0.112-2
             devhelp-40.1-1  device-mapper-2.03.13-1  diffutils-3.8-1
             e2fsprogs-1.46.4-1  enchant-2.3.1-1  eog-40.3-1  epiphany-40.3-1
             evolution-3.40.4-1  evolution-data-server-3.40.4-1
             flatpak-1.11.3-1  flatpak-builder-1.1.1-1  git-2.33.0-1
             gjs-2:1.68.3-1  glib-networking-1:2.68.2-1  glib2-2.68.4-1
             glib2-docs-2.68.4-1  gnome-autoar-0.4.0-1  gnome-desktop-1:40.4-1
             gnome-maps-40.4-1  gnome-shell-1:40.4-1
             gnome-shell-extensions-40.4-1  gnome-software-40.4-1
             gnome-user-docs-40.4-1  gnome-weather-40.1-1  gsound-1.0.3-1
             gst-plugin-pipewire-1:0.3.34-1  gtk-update-icon-cache-1:4.4.0-1
             gtk4-1:4.4.0-1  harfbuzz-2.9.0-1  harfbuzz-icu-2.9.0-1
             iana-etc-20210728-1  ibus-1.5.25-2  imlib2-1.7.3-1
             ipython-7.27.0-1  jasper-2.0.33-1  js78-78.13.0-1
             json-glib-1.6.6-1  libarchive-3.5.2-1  libbsd-0.11.3-1
             libcap-2.53-1  libepoxy-1.5.9-1  libgexiv2-0.12.3-1
             libgudev-237-1  libibus-1.5.25-2  libjpeg-turbo-2.1.1-1
             libmd-1.0.3-1  libmfx-21.3.2-1  libmm-glib-1.16.10-1
             libnm-1.32.10-1  libnma-1.8.32-1  libpackagekit-glib-1.2.4-1
             libphonenumber-8.12.29-1  libsoup-2.74.0-1  libsrtp-1:2.4.0-1
             libssh-0.9.6-1  libstemmer-2.1.0-1  libwebp-1.2.1-1
             libxcrypt-4.4.25-1  linux-5.13.13.arch1-1
             linux-firmware-20210818.c46b8c3-1  llvm-libs-12.0.1-3
             lvm2-2.03.13-1  mesa-21.2.1-1  meson-0.59.1-1  mtools-1:4.0.35-1
             mutter-40.4-1  netpbm-10.73.36-1  networkmanager-1.32.10-1
             nm-connection-editor-1.24.0-1  nss-3.69-1  openssh-8.7p1-1
             openssl-1.1.1.l-1  pacman-mirrorlist-20210822-1  pango-1:1.48.9-2
             pcsclite-1.9.3-1  pipewire-1:0.3.34-1
             pipewire-media-session-1:0.3.34-1  python-astroid-2.7.2-1
             python-isort-5.9.3-1  python-mccabe-0.6.1-9
             python-platformdirs-2.0.2-1  python-prompt_toolkit-3.0.20-1
             python-pygments-2.10.0-1  python-pylint-2.10.2-1
             python-simplejson-3.17.5-1  ruby-ffi-1.15.3-1  run-parts-5.3-1
             sdl2-2.0.16-2  smbclient-4.14.7-1  snappy-1.1.9-1
             soundtouch-2.3.0-1  systemd-249.3-1  systemd-libs-249.3-1
             systemd-sysvcompat-249.3-1  tali-40.2-1  texinfo-6.8-2
             tracker3-miners-3.1.2-2  upower-0.99.13-1  usbredir-0.11.0-1
             util-linux-2.37.2-1  util-linux-libs-2.37.2-1  vala-0.52.5-1
             vulkan-headers-1:1.2.188-1  vulkan-icd-loader-1.2.188-1
             xfsprogs-5.13.0-1  xorg-xrdb-1.2.1-1

총 다운로드 크기:       482.25 MiB
총 설치 크기:          1863.67 MiB
알짜 업그레이드 크기:     3.16 MiB

:: 설치를 진행하시겠습니까? [Y/n] 
:: 꾸러미 가져오는 중...
 alsa-card-profil...    26.5 KiB   331 KiB/s 00:00 [######################] 100%
 archlinux-keyrin...   967.4 KiB  1999 KiB/s 00:00 [######################] 100%
 iana-etc-2021072...   392.2 KiB  2001 KiB/s 00:00 [######################] 100%
 util-linux-libs-...   411.9 KiB  1299 KiB/s 00:00 [######################] 100%
 e2fsprogs-1.46.4...  1208.0 KiB  3.10 MiB/s 00:00 [######################] 100%
 openssl-1.1.1.l-...     3.6 MiB  2.76 MiB/s 00:01 [######################] 100%
 audit-3.0.4-1-x86_64  381.2 KiB  2.15 MiB/s 00:00 [######################] 100%
 glib2-2.68.4-1-x...     2.7 MiB  4.03 MiB/s 00:01 [######################] 100%
 libxcrypt-4.4.25...    88.6 KiB   481 KiB/s 00:00 [######################] 100%
 libcap-2.53-1-x86_64   74.6 KiB   366 KiB/s 00:00 [######################] 100%
 systemd-libs-249...   575.1 KiB  3.07 MiB/s 00:00 [######################] 100%
 bluez-5.61-1-x86_64   876.7 KiB  3.37 MiB/s 00:00 [######################] 100%
 bluez-libs-5.61-...    91.7 KiB  1456 KiB/s 00:00 [######################] 100%
 btrfs-progs-5.13...   881.6 KiB  2.61 MiB/s 00:00 [######################] 100%
 bubblewrap-0.5.0...    32.0 KiB   603 KiB/s 00:00 [######################] 100%
 ca-certificates-...   325.8 KiB  3.18 MiB/s 00:00 [######################] 100%
 libmd-1.0.3-1-x86_64   42.6 KiB   206 KiB/s 00:00 [######################] 100%
 libbsd-0.11.3-1-...   165.7 KiB  2.41 MiB/s 00:00 [######################] 100%
 libarchive-3.5.2...   504.3 KiB  3.35 MiB/s 00:00 [######################] 100%
 libjpeg-turbo-2....   423.7 KiB  2.48 MiB/s 00:00 [######################] 100%
 smbclient-4.14.7...     6.9 MiB  2.79 MiB/s 00:02 [######################] 100%
 cifs-utils-6.13-...    88.1 KiB   456 KiB/s 00:00 [######################] 100%
 device-mapper-2....   293.0 KiB  3.72 MiB/s 00:00 [######################] 100%
 cryptsetup-2.4.0...   586.0 KiB  3.06 MiB/s 00:00 [######################] 100%
 dav1d-0.9.1-1-x86_64  466.5 KiB  2.59 MiB/s 00:00 [######################] 100%
 dbus-glib-0.112-...   128.2 KiB  1474 KiB/s 00:00 [######################] 100%
 json-glib-1.6.6-...   165.4 KiB  2.56 MiB/s 00:00 [######################] 100%
 harfbuzz-2.9.0-1...   882.4 KiB  2.56 MiB/s 00:00 [######################] 100%
 pango-1:1.48.9-2...   352.0 KiB  2.64 MiB/s 00:00 [######################] 100%
 libepoxy-1.5.9-1...   436.1 KiB  4.26 MiB/s 00:00 [######################] 100%
 gtk-update-icon-...    16.5 KiB   445 KiB/s 00:00 [######################] 100%
 llvm-libs-12.0.1...    24.4 MiB  4.37 MiB/s 00:06 [######################] 100%
 vulkan-icd-loade...   110.0 KiB  1833 KiB/s 00:00 [######################] 100%
 mesa-21.2.1-1-x86_64   16.9 MiB  3.83 MiB/s 00:04 [######################] 100%
 util-linux-2.37....     2.5 MiB  5.62 MiB/s 00:00 [######################] 100%
 systemd-249.3-1-...     6.4 MiB  4.76 MiB/s 00:01 [######################] 100%
 glib-networking-...   125.7 KiB  1795 KiB/s 00:00 [######################] 100%
 libsoup-2.74.0-1...   579.3 KiB  3.09 MiB/s 00:00 [######################] 100%
 enchant-2.3.1-1-...    53.2 KiB  1210 KiB/s 00:00 [######################] 100%
 harfbuzz-icu-2.9...     7.7 KiB   115 KiB/s 00:00 [######################] 100%
 libwebp-1.2.1-1-...   333.4 KiB  1122 KiB/s 00:00 [######################] 100%
 libgudev-237-1-x...    44.0 KiB   440 KiB/s 00:00 [######################] 100%
 devhelp-40.1-1-x...   324.8 KiB  2.16 MiB/s 00:00 [######################] 100%
 diffutils-3.8-1-...   363.1 KiB  1911 KiB/s 00:00 [######################] 100%
 gnome-desktop-1:...   546.6 KiB  2.97 MiB/s 00:00 [######################] 100%
 eog-40.3-1-x86_64       3.1 MiB  3.42 MiB/s 00:01 [######################] 100%
 epiphany-40.3-1-...     5.1 MiB  4.30 MiB/s 00:01 [######################] 100%
 nss-3.69-1-x86_64    1572.7 KiB  3.04 MiB/s 00:01 [######################] 100%
 libphonenumber-8...  2020.4 KiB  4.41 MiB/s 00:00 [######################] 100%
 evolution-data-s...     4.5 MiB  2.71 MiB/s 00:02 [######################] 100%
 gnome-autoar-0.4...    68.7 KiB   687 KiB/s 00:00 [######################] 100%
 evolution-3.40.4...    10.8 MiB  3.39 MiB/s 00:03 [######################] 100%
 libstemmer-2.1.0...   134.0 KiB  1540 KiB/s 00:00 [######################] 100%
 pacman-mirrorlis...     6.9 KiB  79.1 KiB/s 00:00 [######################] 100%
 js78-78.13.0-1-x...    10.5 MiB  3.40 MiB/s 00:03 [######################] 100%
 pipewire-1:0.3.3...  1372.5 KiB  4.19 MiB/s 00:00 [######################] 100%
 libmm-glib-1.16....   436.7 KiB  2.13 MiB/s 00:00 [######################] 100%
 openssh-8.7p1-1-...  1010.5 KiB  2.72 MiB/s 00:00 [######################] 100%
 flatpak-1.11.3-1...  1500.6 KiB  2.33 MiB/s 00:01 [######################] 100%
 git-2.33.0-1-x86_64     5.9 MiB  3.61 MiB/s 00:02 [######################] 100%
 flatpak-builder-...   178.8 KiB  1720 KiB/s 00:00 [######################] 100%
 gjs-2:1.68.3-1-x...   336.1 KiB  3.53 MiB/s 00:00 [######################] 100%
 glib2-docs-2.68....  1384.9 KiB  3.56 MiB/s 00:00 [######################] 100%
 gnome-maps-40.4-...   686.1 KiB  2.86 MiB/s 00:00 [######################] 100%
 upower-0.99.13-1...   174.2 KiB  2.24 MiB/s 00:00 [######################] 100%
 gtk4-1:4.4.0-1-x...     8.6 MiB  3.59 MiB/s 00:02 [######################] 100%
 libnm-1.32.10-1-...  1064.7 KiB  3.66 MiB/s 00:00 [######################] 100%
 mutter-40.4-1-x86_64    2.5 MiB  2.97 MiB/s 00:01 [######################] 100%
 libnma-1.8.32-1-...   312.5 KiB  1838 KiB/s 00:00 [######################] 100%
 nm-connection-ed...   782.2 KiB  2.14 MiB/s 00:00 [######################] 100%
 libibus-1.5.25-2...     9.6 MiB  4.11 MiB/s 00:02 [######################] 100%
 pipewire-media-s...   103.3 KiB  2.52 MiB/s 00:00 [######################] 100%
 gst-plugin-pipew...    44.9 KiB   787 KiB/s 00:00 [######################] 100%
 lvm2-2.03.13-1-x...  1530.7 KiB  3.13 MiB/s 00:00 [######################] 100%
 xfsprogs-5.13.0-...  1067.1 KiB  3.36 MiB/s 00:00 [######################] 100%
 gnome-shell-1:40...  1602.4 KiB  2.37 MiB/s 00:01 [######################] 100%
 gnome-shell-exte...   160.1 KiB  1404 KiB/s 00:00 [######################] 100%
 libpackagekit-gl...   204.4 KiB   863 KiB/s 00:00 [######################] 100%
 gnome-software-4...  1688.3 KiB  2.62 MiB/s 00:01 [######################] 100%
 gnome-user-docs-...     6.6 MiB  2.79 MiB/s 00:02 [######################] 100%
 gnome-weather-40...   143.7 KiB  1140 KiB/s 00:00 [######################] 100%
 gsound-1.0.3-1-x...    40.7 KiB   557 KiB/s 00:00 [######################] 100%
 ibus-1.5.25-2-x86_64  824.6 KiB  2.24 MiB/s 00:00 [######################] 100%
 imlib2-1.7.3-1-x...   532.3 KiB  2.74 MiB/s 00:00 [######################] 100%
 python-pygments-...  1983.5 KiB  2.42 MiB/s 00:01 [######################] 100%
 python-prompt_to...   545.0 KiB  2.70 MiB/s 00:00 [######################] 100%
 ipython-7.27.0-1-any 1063.8 KiB  2.73 MiB/s 00:00 [######################] 100%
 jasper-2.0.33-1-...   270.0 KiB  2.64 MiB/s 00:00 [######################] 100%
 libgexiv2-0.12.3...   111.9 KiB  1512 KiB/s 00:00 [######################] 100%
 libmfx-21.3.2-1-...    57.2 KiB   494 KiB/s 00:00 [######################] 100%
 libsrtp-1:2.4.0-...   113.5 KiB   946 KiB/s 00:00 [######################] 100%
 libssh-0.9.6-1-x...   193.5 KiB  2.10 MiB/s 00:00 [######################] 100%
 linux-5.13.13.ar...   124.4 MiB  3.85 MiB/s 00:32 [######################] 100%
 linux-firmware-2...   173.3 MiB  4.03 MiB/s 00:43 [######################] 100%
 meson-0.59.1-1-any   1269.6 KiB  2.84 MiB/s 00:00 [######################] 100%
 mtools-1:4.0.35-...   214.0 KiB  1496 KiB/s 00:00 [######################] 100%
 netpbm-10.73.36-...  1861.4 KiB  3.68 MiB/s 00:00 [######################] 100%
 networkmanager-1...     3.4 MiB  2.78 MiB/s 00:01 [######################] 100%
 pcsclite-1.9.3-1...    99.3 KiB  1242 KiB/s 00:00 [######################] 100%
 python-astroid-2...   337.7 KiB  1987 KiB/s 00:00 [######################] 100%
 python-isort-5.9...   148.4 KiB  1349 KiB/s 00:00 [######################] 100%
 python-mccabe-0....    13.7 KiB   187 KiB/s 00:00 [######################] 100%
 python-platformd...    15.9 KiB  74.3 KiB/s 00:00 [######################] 100%
 python-pylint-2....   703.9 KiB  2.08 MiB/s 00:00 [######################] 100%
 python-simplejso...    96.1 KiB  1201 KiB/s 00:00 [######################] 100%
 ruby-ffi-1.15.3-...   598.1 KiB  2.92 MiB/s 00:00 [######################] 100%
 run-parts-5.3-1-...    27.3 KiB   273 KiB/s 00:00 [######################] 100%
 sdl2-2.0.16-2-x86_64  790.1 KiB  2.70 MiB/s 00:00 [######################] 100%
 snappy-1.1.9-1-x...    26.3 KiB   283 KiB/s 00:00 [######################] 100%
 soundtouch-2.3.0...    83.2 KiB   886 KiB/s 00:00 [######################] 100%
 systemd-sysvcomp...     5.6 KiB  57.8 KiB/s 00:00 [######################] 100%
 tali-40.2-1-x86_64   1561.0 KiB  2.79 MiB/s 00:01 [######################] 100%
 texinfo-6.8-2-x86_64 1418.4 KiB  2.65 MiB/s 00:01 [######################] 100%
 tracker3-miners-...   719.0 KiB  2.80 MiB/s 00:00 [######################] 100%
 usbredir-0.11.0-...    47.4 KiB   677 KiB/s 00:00 [######################] 100%
 vala-0.52.5-1-x86_64    2.2 MiB  2.74 MiB/s 00:01 [######################] 100%
 vulkan-headers-1...   733.5 KiB  2.75 MiB/s 00:00 [######################] 100%
 xorg-xrdb-1.2.1-...    20.0 KiB   334 KiB/s 00:00 [######################] 100%
 Total (118/118)       482.2 MiB  3.38 MiB/s 02:23 [######################] 100%
(118/118) 키링의 키를 검사 중                      [######################] 100%
필요한 키 다운로드 중...
:: PGP 키 A85E811EB4CA2E08, "Caleb Maclennan <alerque@archlinux.org>"를 들여오겠습니까? [Y/n] 
(118/118) 꾸러미 무결성 검사 중                    [######################] 100%
(118/118) 꾸러미 파일 불러오는 중                  [######################] 100%
(118/118) 파일 충돌 검사 중                        [######################] 100%
(118/118) 사용 가능한 디스크 공간 검사 중          [######################] 100%
:: 전처리 훅들을 실행 중...
(1/1) Removing linux initcpios...
:: 꾸러미 변경사항을 처리 중...
(  1/118) 업그레이드 중 alsa-card-profiles         [######################] 100%
(  2/118) 업그레이드 중 archlinux-keyring          [######################] 100%
==> archlinux.gpg에서 키 덧붙이는 중...
==> 키 모음에 있는 신뢰하는 키를 자체적으로 서명하는 중...
==> 소유자 신뢰 값 가져오는 중...
==> 키 모음에 있는 폐기된 키들을 비활성화하는 중...
gpg: checking the trustdb
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 1EB2638FF56C0C53: no user ID for key signature packet of class 10
gpg: key 1EB2638FF56C0C53: no user ID for key signature packet of class 10
gpg: marginals needed: 3  completes needed: 1  trust model: pgp
gpg: depth: 0  valid:   1  signed:   6  trust: 0-, 0q, 0n, 0m, 0f, 1u
gpg: depth: 1  valid:   6  signed:  83  trust: 0-, 0q, 0n, 6m, 0f, 0u
gpg: depth: 2  valid:  78  signed:  25  trust: 78-, 0q, 0n, 0m, 0f, 0u
gpg: next trustdb check due at 2021-12-01
gpg: checking the trustdb
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 786C63F330D7CB92: no user ID for key signature packet of class 10
gpg: key 1EB2638FF56C0C53: no user ID for key signature packet of class 10
gpg: key 1EB2638FF56C0C53: no user ID for key signature packet of class 10
gpg: marginals needed: 3  completes needed: 1  trust model: pgp
gpg: depth: 0  valid:   1  signed:   6  trust: 0-, 0q, 0n, 0m, 0f, 1u
gpg: depth: 1  valid:   6  signed:  83  trust: 0-, 0q, 0n, 6m, 0f, 0u
gpg: depth: 2  valid:  78  signed:  25  trust: 78-, 0q, 0n, 0m, 0f, 0u
gpg: next trustdb check due at 2021-12-01
  -> Disabled 2 keys.
==> 신뢰 데이터베이스 업그레이드 중...
gpg: next trustdb check due at 2021-12-01
(  3/118) 업그레이드 중 iana-etc                   [######################] 100%
(  4/118) 업그레이드 중 util-linux-libs            [######################] 100%
(  5/118) 업그레이드 중 e2fsprogs                  [######################] 100%
(  6/118) 업그레이드 중 openssl                    [######################] 100%
(  7/118) 업그레이드 중 audit                      [######################] 100%
(  8/118) 업그레이드 중 glib2                      [######################] 100%
(  9/118) 업그레이드 중 libxcrypt                  [######################] 100%
( 10/118) 업그레이드 중 libcap                     [######################] 100%
( 11/118) 업그레이드 중 systemd-libs               [######################] 100%
( 12/118) 업그레이드 중 bluez                      [######################] 100%
( 13/118) 업그레이드 중 bluez-libs                 [######################] 100%
( 14/118) 업그레이드 중 btrfs-progs                [######################] 100%
( 15/118) 업그레이드 중 bubblewrap                 [######################] 100%
( 16/118) 업그레이드 중 ca-certificates-mozilla    [######################] 100%
( 17/118) 설치 중 libmd                            [######################] 100%
( 18/118) 업그레이드 중 libbsd                     [######################] 100%
( 19/118) 업그레이드 중 libarchive                 [######################] 100%
( 20/118) 업그레이드 중 libjpeg-turbo              [######################] 100%
( 21/118) 업그레이드 중 smbclient                  [######################] 100%
( 22/118) 업그레이드 중 cifs-utils                 [######################] 100%
( 23/118) 업그레이드 중 device-mapper              [######################] 100%
( 24/118) 업그레이드 중 cryptsetup                 [######################] 100%
( 25/118) 업그레이드 중 dav1d                      [######################] 100%
( 26/118) 업그레이드 중 dbus-glib                  [######################] 100%
( 27/118) 업그레이드 중 json-glib                  [######################] 100%
( 28/118) 업그레이드 중 harfbuzz                   [######################] 100%
( 29/118) 업그레이드 중 pango                      [######################] 100%
( 30/118) 업그레이드 중 libepoxy                   [######################] 100%
( 31/118) 업그레이드 중 gtk-update-icon-cache      [######################] 100%
( 32/118) 업그레이드 중 llvm-libs                  [######################] 100%
( 33/118) 업그레이드 중 vulkan-icd-loader          [######################] 100%
( 34/118) 업그레이드 중 mesa                       [######################] 100%
( 35/118) 업그레이드 중 util-linux                 [######################] 100%
( 36/118) 업그레이드 중 systemd                    [######################] 100%
( 37/118) 업그레이드 중 glib-networking            [######################] 100%
( 38/118) 업그레이드 중 libsoup                    [######################] 100%
( 39/118) 업그레이드 중 enchant                    [######################] 100%
( 40/118) 업그레이드 중 harfbuzz-icu               [######################] 100%
( 41/118) 업그레이드 중 libwebp                    [######################] 100%
( 42/118) 업그레이드 중 libgudev                   [######################] 100%
( 43/118) 업그레이드 중 devhelp                    [######################] 100%
( 44/118) 업그레이드 중 diffutils                  [######################] 100%
( 45/118) 업그레이드 중 gnome-desktop              [######################] 100%
( 46/118) 업그레이드 중 eog                        [######################] 100%
( 47/118) 업그레이드 중 epiphany                   [######################] 100%
( 48/118) 업그레이드 중 nss                        [######################] 100%
( 49/118) 업그레이드 중 libphonenumber             [######################] 100%
( 50/118) 업그레이드 중 evolution-data-server      [######################] 100%
( 51/118) 업그레이드 중 gnome-autoar               [######################] 100%
( 52/118) 업그레이드 중 evolution                  [######################] 100%
( 53/118) 업그레이드 중 libstemmer                 [######################] 100%
( 54/118) 업그레이드 중 pacman-mirrorlist          [######################] 100%
경고: /etc/pacman.d/mirrorlist.pacnew로 /etc/pacman.d/mirrorlist를 설치합니다
( 55/118) 업그레이드 중 js78                       [######################] 100%
( 56/118) 업그레이드 중 pipewire                   [######################] 100%
( 57/118) 업그레이드 중 libmm-glib                 [######################] 100%
( 58/118) 업그레이드 중 openssh                    [######################] 100%
( 59/118) 업그레이드 중 flatpak                    [######################] 100%
( 60/118) 업그레이드 중 git                        [######################] 100%
( 61/118) 업그레이드 중 flatpak-builder            [######################] 100%
( 62/118) 업그레이드 중 gjs                        [######################] 100%
( 63/118) 업그레이드 중 glib2-docs                 [######################] 100%
( 64/118) 업그레이드 중 gnome-maps                 [######################] 100%
( 65/118) 업그레이드 중 upower                     [######################] 100%
( 66/118) 업그레이드 중 gtk4                       [######################] 100%
( 67/118) 업그레이드 중 libnm                      [######################] 100%
( 68/118) 업그레이드 중 mutter                     [######################] 100%
( 69/118) 업그레이드 중 libnma                     [######################] 100%
( 70/118) 업그레이드 중 nm-connection-editor       [######################] 100%
( 71/118) 업그레이드 중 libibus                    [######################] 100%
( 72/118) 업그레이드 중 pipewire-media-session     [######################] 100%
( 73/118) 업그레이드 중 gst-plugin-pipewire        [######################] 100%
( 74/118) 업그레이드 중 lvm2                       [######################] 100%
( 75/118) 업그레이드 중 xfsprogs                   [######################] 100%
( 76/118) 업그레이드 중 gnome-shell                [######################] 100%
( 77/118) 업그레이드 중 gnome-shell-extensions     [######################] 100%
( 78/118) 업그레이드 중 libpackagekit-glib         [######################] 100%
( 79/118) 업그레이드 중 gnome-software             [######################] 100%
( 80/118) 업그레이드 중 gnome-user-docs            [######################] 100%
( 81/118) 업그레이드 중 gnome-weather              [######################] 100%
( 82/118) 업그레이드 중 gsound                     [######################] 100%
( 83/118) 업그레이드 중 ibus                       [######################] 100%
( 84/118) 업그레이드 중 imlib2                     [######################] 100%
( 85/118) 업그레이드 중 python-pygments            [######################] 100%
( 86/118) 업그레이드 중 python-prompt_toolkit      [######################] 100%
( 87/118) 업그레이드 중 ipython                    [######################] 100%
( 88/118) 업그레이드 중 jasper                     [######################] 100%
( 89/118) 업그레이드 중 libgexiv2                  [######################] 100%
( 90/118) 업그레이드 중 libmfx                     [######################] 100%
( 91/118) 업그레이드 중 libsrtp                    [######################] 100%
( 92/118) 업그레이드 중 libssh                     [######################] 100%
( 93/118) 업그레이드 중 linux                      [######################] 100%
( 94/118) 업그레이드 중 linux-firmware             [######################] 100%
( 95/118) 업그레이드 중 meson                      [######################] 100%
( 96/118) 업그레이드 중 mtools                     [######################] 100%
( 97/118) 업그레이드 중 netpbm                     [######################] 100%
( 98/118) 업그레이드 중 networkmanager             [######################] 100%
( 99/118) 업그레이드 중 pcsclite                   [######################] 100%
(100/118) 업그레이드 중 python-astroid             [######################] 100%
(101/118) 업그레이드 중 python-isort               [######################] 100%
(102/118) 업그레이드 중 python-mccabe              [######################] 100%
(103/118) 설치 중 python-platformdirs              [######################] 100%
(104/118) 업그레이드 중 python-pylint              [######################] 100%
python-pylint에 대한 새로운 선택 의존성
    graphviz: Enable output formats other than dot or vcg [설치함]
(105/118) 업그레이드 중 python-simplejson          [######################] 100%
(106/118) 업그레이드 중 ruby-ffi                   [######################] 100%
(107/118) 업그레이드 중 run-parts                  [######################] 100%
(108/118) 업그레이드 중 sdl2                       [######################] 100%
sdl2에 대한 새로운 선택 의존성
    pipewire: PipeWire audio driver [설치함]
(109/118) 업그레이드 중 snappy                     [######################] 100%
(110/118) 업그레이드 중 soundtouch                 [######################] 100%
(111/118) 업그레이드 중 systemd-sysvcompat         [######################] 100%
(112/118) 업그레이드 중 tali                       [######################] 100%
(113/118) 업그레이드 중 texinfo                    [######################] 100%
(114/118) 업그레이드 중 tracker3-miners            [######################] 100%
(115/118) 업그레이드 중 usbredir                   [######################] 100%
(116/118) 업그레이드 중 vala                       [######################] 100%
(117/118) 업그레이드 중 vulkan-headers             [######################] 100%
(118/118) 업그레이드 중 xorg-xrdb                  [######################] 100%
:: 후처리 훅들을 실행 중...
( 1/21) Creating system user accounts...
( 2/21) Updating journal message catalog...
( 3/21) Reloading system manager configuration...
( 4/21) Updating udev hardware database...
( 5/21) Applying kernel sysctl settings...
( 6/21) Creating temporary files...
( 7/21) Reloading device manager configuration...
( 8/21) Arming ConditionNeedsUpdate...
( 9/21) Rebuilding certificate stores...
(10/21) Updating module dependencies...
(11/21) Updating linux initcpios...
==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'default'
  -> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux.img
==> Starting build: 5.13.13-arch1-1
  -> Running build hook: [base]
  -> Running build hook: [udev]
  -> Running build hook: [autodetect]
  -> Running build hook: [modconf]
  -> Running build hook: [block]
  -> Running build hook: [filesystems]
  -> Running build hook: [keyboard]
  -> Running build hook: [fsck]
==> Generating module dependencies
==> Creating zstd-compressed initcpio image: /boot/initramfs-linux.img
==> Image generation successful
==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'fallback'
  -> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux-fallback.img -S autodetect
==> Starting build: 5.13.13-arch1-1
  -> Running build hook: [base]
  -> Running build hook: [udev]
  -> Running build hook: [modconf]
  -> Running build hook: [block]
==> WARNING: Possibly missing firmware for module: wd719x
==> WARNING: Possibly missing firmware for module: aic94xx
==> WARNING: Possibly missing firmware for module: xhci_pci
  -> Running build hook: [filesystems]
  -> Running build hook: [keyboard]
  -> Running build hook: [fsck]
==> Generating module dependencies
==> Creating zstd-compressed initcpio image: /boot/initramfs-linux-fallback.img
==> Image generation successful
(12/21) Reloading system bus configuration...
(13/21) Updating system dconf databases...
(14/21) Updating GIO module cache...
(15/21) Compiling GSettings XML schema files...
(16/21) Probing GTK3 input method modules...
(17/21) Updating icon theme caches...
(18/21) Updating GTK4 module cache...
(19/21) Updating the info directory file...
(20/21) Updating the appstream cache...
AppStream 캐시 업데이트를 성공적으로 마쳤습니다.
(21/21) Updating the desktop file MIME type cache...
[study@study-virtualbox ~]$​



 

[study@study-virtualbox ~]$ sudo pacman -Syu
:: 꾸러미 데이터베이스 동기화 중...
 core is up to date
 extra is up to date
 community is up to date
:: 전체 시스템 업그레이드 시작 중...
 할 일이 없습니다
[study@study-virtualbox ~]$

동기화 및 패키지 업그레이드할 필요가 없는 경우 위와 같이 출력됩니다.

 

[study@study-virtualbox ~]$ sudo pacman -Syyu
[sudo] study 암호: 
:: 꾸러미 데이터베이스 동기화 중...
 core                  136.2 KiB  1362 KiB/s 00:00 [######################] 100%
 extra                1572.7 KiB  7.80 MiB/s 00:00 [######################] 100%
 community               5.7 MiB  7.08 MiB/s 00:01 [######################] 100%
:: 전체 시스템 업그레이드 시작 중...
 할 일이 없습니다
[study@study-virtualbox ~]$

위와 같이 y를 두 번 사용하면 강제 동기화 작업이 이루어집니다.

 

 


 

패키지 다운로드

[study@study-virtualbox ~]$ sudo pacman -Sw tree
[sudo] study 암호: 
의존성 해결 중...

꾸러미 (1) tree-1.8.0-2

총 다운로드 크기:  0.03 MiB

:: 다운로드를 진행하시겠습니까? [Y/n] 
:: 꾸러미 가져오는 중...
 tree-1.8.0-2-x86_64    33.4 KiB   312 KiB/s 00:00 [######################] 100%
(1/1) 키링의 키를 검사 중                          [######################] 100%
(1/1) 꾸러미 무결성 검사 중                        [######################] 100%
[study@study-virtualbox ~]$

저장소에서 패키지를 다운로드할 뿐 설치 작업을 진행하지는 않습니다.

 

 

 

/var/cache/pacman/pkg

아치 리눅스 패키지 다운로드 기본 디렉터리는 위와 같습니다.

 

[study@study-virtualbox ~]$ cd /var/cache/pacman/pkg
[study@study-virtualbox pkg]$ ls -l | grep -w tree
-rw-r--r-- 1 root root     34195  4월 23  2020 tree-1.8.0-2-x86_64.pkg.tar.zst
-rw-r--r-- 1 root root       310  4월 23  2020 tree-1.8.0-2-x86_64.pkg.tar.zst.sig
[study@study-virtualbox pkg]$

패키지 다운로드 여부는 위와 같이 확인할 수 있습니다.

grep 명령의 -w 옵션은 단어(word) 단위로 검색하라는 의미입니다.

[study@study-virtualbox pkg]$ ls -l | grep tree
-rw-r--r-- 1 root root    661760  4월 17 20:11 ostree-2021.2-1-x86_64.pkg.tar.zst
-rw-r--r-- 1 root root       119  4월 17 20:11 ostree-2021.2-1-x86_64.pkg.tar.zst.sig
-rw-r--r-- 1 root root    656117  7월 14 18:48 ostree-2021.3-1-x86_64.pkg.tar.zst
-rw-r--r-- 1 root root       119  7월 14 18:48 ostree-2021.3-1-x86_64.pkg.tar.zst.sig
-rw-r--r-- 1 root root     46278 11월 11  2020 python-anytree-2.8.0-3-any.pkg.tar.zst
-rw-r--r-- 1 root root       310 11월 11  2020 python-anytree-2.8.0-3-any.pkg.tar.zst.sig
-rw-r--r-- 1 root root     34195  4월 23  2020 tree-1.8.0-2-x86_64.pkg.tar.zst
-rw-r--r-- 1 root root       310  4월 23  2020 tree-1.8.0-2-x86_64.pkg.tar.zst.sig
[study@study-virtualbox pkg]$

만약 -w 없이 명령을 실행하면 위와 같이 단순히 문자열이 매칭되는 모든 경우가 검색됩니다.

 

다운로드한 패키지 설치

[study@study-virtualbox pkg]$ sudo pacman -U tree-1.8.0-2-x86_64.pkg.tar.zst
꾸러미 불러오는 중...
의존성 해결 중...
꾸러미 충돌을 찾는 중...

꾸러미 (1) tree-1.8.0-2

총 설치 크기:  0.09 MiB

:: 설치를 진행하시겠습니까? [Y/n] 
(1/1) 키링의 키를 검사 중                          [######################] 100%
(1/1) 꾸러미 무결성 검사 중                        [######################] 100%
(1/1) 꾸러미 파일 불러오는 중                      [######################] 100%
(1/1) 파일 충돌 검사 중                            [######################] 100%
(1/1) 사용 가능한 디스크 공간 검사 중              [######################] 100%
:: 꾸러미 변경사항을 처리 중...
(1/1) 설치 중 tree                                 [######################] 100%
:: 후처리 훅들을 실행 중...
(1/1) Arming ConditionNeedsUpdate...
[study@study-virtualbox pkg]$

시스템에 다운로드한 패키지를 설치(install)설치합니다.

 

[study@study-virtualbox pkg]$ tree --version
tree v1.8.0 (c) 1996 - 2018 by Steve Baker, Thomas Moore, Francesc Rocher, Florian Sesser, Kyosuke Tokoro 
[study@study-virtualbox pkg]$

버전 확인 옵션을 덧붙여 실행하면 설치된 패키지의 버전 등을 확인할 수 있습니다.

 


 

패키지 설치 [★]

[study@study-virtualbox ~]$ sudo pacman -S vlc
의존성 해결 중...
꾸러미 충돌을 찾는 중...

꾸러미 (24) a52dec-0.7.4-11  double-conversion-3.1.5-2  glslang-11.6.0-1
            libdvbpsi-1:1.3.3-2  libebml-1.4.2-1  libmad-0.15.1b-9
            libmatroska-1.6.3-1  libmpeg2-0.5.1-7  libplacebo-3.120.3-3
            libtar-1.2.20-5  libupnp-1.14.8-1  lua52-5.2.4-5  md4c-0.4.8-1
            qt5-base-5.15.2+kde+r215-2  qt5-svg-5.15.2+kde+r7-1
            qt5-x11extras-5.15.2-1  shaderc-2021.1-2  spirv-tools-2021.1-1
            tslib-1.22-1  xcb-util-image-0.4.0-3  xcb-util-keysyms-0.4.0-3
            xcb-util-renderutil-0.3.9-3  xcb-util-wm-0.4.1-3  vlc-3.0.16-3

총 다운로드 크기:   31.58 MiB
총 설치 크기:      163.20 MiB

:: 설치를 진행하시겠습니까? [Y/n] 
:: 꾸러미 가져오는 중...
 a52dec-0.7.4-11-...    38.3 KiB   330 KiB/s 00:00 [######################] 100%
 libdvbpsi-1:1.3....    90.3 KiB   351 KiB/s 00:00 [######################] 100%
 lua52-5.2.4-5-x86_64  222.5 KiB  2.09 MiB/s 00:00 [######################] 100%
 libebml-1.4.2-1-...    69.2 KiB   866 KiB/s 00:00 [######################] 100%
 libmatroska-1.6....   135.8 KiB  2.11 MiB/s 00:00 [######################] 100%
 libmad-0.15.1b-9...    67.7 KiB   698 KiB/s 00:00 [######################] 100%
 libmpeg2-0.5.1-7...    79.0 KiB  1082 KiB/s 00:00 [######################] 100%
 xcb-util-keysyms...     8.3 KiB  94.9 KiB/s 00:00 [######################] 100%
 libtar-1.2.20-5-...    36.9 KiB   528 KiB/s 00:00 [######################] 100%
 libupnp-1.14.8-1...   240.4 KiB  2.13 MiB/s 00:00 [######################] 100%
 xcb-util-renderu...     9.7 KiB   571 KiB/s 00:00 [######################] 100%
 xcb-util-wm-0.4....    34.2 KiB  2011 KiB/s 00:00 [######################] 100%
 xcb-util-image-0...    17.9 KiB   389 KiB/s 00:00 [######################] 100%
 tslib-1.22-1-x86_64   100.0 KiB  1888 KiB/s 00:00 [######################] 100%
 double-conversio...    54.9 KiB   549 KiB/s 00:00 [######################] 100%
 md4c-0.4.8-1-x86_64    81.4 KiB   740 KiB/s 00:00 [######################] 100%
 qt5-base-5.15.2+...    13.0 MiB  3.01 MiB/s 00:04 [######################] 100%
 qt5-x11extras-5....    14.5 KiB   167 KiB/s 00:00 [######################] 100%
 qt5-svg-5.15.2+k...   146.7 KiB  1254 KiB/s 00:00 [######################] 100%
 glslang-11.6.0-1...     3.6 MiB  3.42 MiB/s 00:01 [######################] 100%
 spirv-tools-2021...  1469.9 KiB  1682 KiB/s 00:01 [######################] 100%
 shaderc-2021.1-2...   122.6 KiB   876 KiB/s 00:00 [######################] 100%
 libplacebo-3.120...   295.5 KiB  2010 KiB/s 00:00 [######################] 100%
 vlc-3.0.16-3-x86_64    11.8 MiB  2.43 MiB/s 00:05 [######################] 100%
 Total (24/24)          31.6 MiB  2.10 MiB/s 00:15 [######################] 100%
(24/24) 키링의 키를 검사 중                        [######################] 100%
(24/24) 꾸러미 무결성 검사 중                      [######################] 100%
(24/24) 꾸러미 파일 불러오는 중                    [######################] 100%
(24/24) 파일 충돌 검사 중                          [######################] 100%
(24/24) 사용 가능한 디스크 공간 검사 중            [######################] 100%
:: 꾸러미 변경사항을 처리 중...
( 1/24) 설치 중 a52dec                             [######################] 100%
( 2/24) 설치 중 libdvbpsi                          [######################] 100%
( 3/24) 설치 중 lua52                              [######################] 100%
( 4/24) 설치 중 libebml                            [######################] 100%
( 5/24) 설치 중 libmatroska                        [######################] 100%
( 6/24) 설치 중 libmad                             [######################] 100%
( 7/24) 설치 중 libmpeg2                           [######################] 100%
libmpeg2에 대한 선택 의존성
    sdl: required for mpeg2dec
    libxv: required for mpeg2dec [설치함]
( 8/24) 설치 중 xcb-util-keysyms                   [######################] 100%
( 9/24) 설치 중 libtar                             [######################] 100%
(10/24) 설치 중 libupnp                            [######################] 100%
(11/24) 설치 중 xcb-util-renderutil                [######################] 100%
(12/24) 설치 중 xcb-util-wm                        [######################] 100%
(13/24) 설치 중 xcb-util-image                     [######################] 100%
(14/24) 설치 중 tslib                              [######################] 100%
(15/24) 설치 중 double-conversion                  [######################] 100%
(16/24) 설치 중 md4c                               [######################] 100%
(17/24) 설치 중 qt5-base                           [######################] 100%
qt5-base에 대한 선택 의존성
    qt5-svg: to use SVG icon themes [대기 중]
    qt5-wayland: to run Qt applications in a Wayland session
    qt5-translations: for some native UI translations
    postgresql-libs: PostgreSQL driver
    mariadb-libs: MariaDB driver
    unixodbc: ODBC driver
    libfbclient: Firebird/iBase driver
    freetds: MS SQL driver
    gtk3: GTK platform plugin [설치함]
    perl: for fixqt4headers and syncqt [설치함]
(18/24) 설치 중 qt5-x11extras                      [######################] 100%
(19/24) 설치 중 qt5-svg                            [######################] 100%
(20/24) 설치 중 glslang                            [######################] 100%
(21/24) 설치 중 spirv-tools                        [######################] 100%
(22/24) 설치 중 shaderc                            [######################] 100%
(23/24) 설치 중 libplacebo                         [######################] 100%
(24/24) 설치 중 vlc                                [######################] 100%
vlc에 대한 선택 의존성
    avahi: service discovery using bonjour protocol [설치함]
    aom: AOM AV1 codec [설치함]
    gst-plugins-base-libs: for libgst plugins [설치함]
    dav1d: dav1d AV1 decoder [설치함]
    libdvdcss: decoding encrypted DVDs
    libavc1394: devices using the 1394ta AV/C [설치함]
    libdc1394: IEEE 1394 access plugin [설치함]
    kwallet: kwallet keystore
    libva-vdpau-driver: vdpau backend nvidia
    libva-intel-driver: video backend intel
    libbluray: Blu-Ray video input [설치함]
    flac: Free Lossless Audio Codec plugin [설치함]
    twolame: TwoLAME mpeg2 encoder plugin [설치함]
    libgme: Game Music Emu plugin [설치함]
    vcdimager: navigate VCD with libvcdinfo
    libmtp: MTP devices discovery [설치함]
    systemd-libs: udev services discovery [설치함]
    smbclient: SMB access plugin [설치함]
    libcdio: audio CD playback [설치함]
    gnu-free-fonts: subtitle font [설치함]
    ttf-dejavu: subtitle font
    libssh2: sftp access [설치함]
    libnfs: NFS access [설치함]
    mpg123: mpg123 codec [설치함]
    protobuf: chromecast streaming [설치함]
    libmicrodns: mDNS services discovery (chromecast etc) [설치함]
    lua52-socket: http interface
    libdvdread: DVD input module [설치함]
    libdvdnav: DVD with navigation input module [설치함]
    libogg: Ogg and OggSpots codec [설치함]
    libshout: shoutcast/icecast output plugin [설치함]
    libmodplug: MOD output plugin [설치함]
    libvpx: VP8 and VP9 codec [설치함]
    libvorbis: Vorbis decoder/encoder [설치함]
    speex: Speex codec [설치함]
    opus: opus codec [설치함]
    libtheora: theora codec [설치함]
    libpng: PNG support [설치함]
    libjpeg-turbo: JPEG support [설치함]
    librsvg: SVG plugin [설치함]
    x264: H264 encoding [설치함]
    x265: HEVC/H.265 encoder [설치함]
    zvbi: VBI/Teletext/webcam/v4l2 capture/decoding [설치함]
    libass: Subtitle support [설치함]
    libkate: Kate codec [설치함]
    libtiger: Tiger rendering for Kate streams
    sdl_image: SDL image support
    srt: SRT input/output plugin [설치함]
    aalib: ASCII art video output [설치함]
    libcaca: colored ASCII art video output [설치함]
    libpulse: PulseAudio audio output [설치함]
    alsa-lib: ALSA audio output [설치함]
    jack: jack audio server [설치함]
    libsamplerate: audio Resampler [설치함]
    libsoxr: SoX audio Resampler [설치함]
    chromaprint: Chromaprint audio fingerprinter [설치함]
    lirc: lirc control
    libgoom2: Goom visualization
    projectm: ProjectM visualisation
    ncurses: ncurses interface [설치함]
    libnotify: notification plugin [설치함]
    gtk3: notification plugin [설치함]
    aribb24: aribsub support
    aribb25: aribcam support
    pcsclite: aribcam support [설치함]
:: 후처리 훅들을 실행 중...
(1/4) Arming ConditionNeedsUpdate...
(2/4) Updating icon theme caches...
(3/4) Updating the desktop file MIME type cache...
(4/4) Updating the vlc plugin cache...
[study@study-virtualbox ~]$

가장 일반적인 패키지 설치 명령입니다.

위 명령은 일반적으로 저장소에서 패키지를 설치하는 명령이라고 설명하고 있습니다만 정확히는 시스템 내에 저장되어 있는 기존 로컬 패키지 데이터베이스를 토대로 패키지를 설치하는 것입니다.

 

[study@study-virtualbox ~]$ sudo pacman -Sy vlc
[sudo] study 암호: 
:: 꾸러미 데이터베이스 동기화 중...
 core is up to date
 extra                1572.8 KiB  3.34 MiB/s 00:00 [######################] 100%
 community               5.7 MiB  4.30 MiB/s 00:01 [######################] 100%
경고: vlc-3.0.16-3는 최신 버전입니다. -- 재설치
의존성 해결 중...
꾸러미 충돌을 찾는 중...

꾸러미 (1) vlc-3.0.16-3

총 설치 크기:          59.77 MiB
알짜 업그레이드 크기:   0.00 MiB

:: 설치를 진행하시겠습니까? [Y/n] 
(1/1) 키링의 키를 검사 중                          [######################] 100%
(1/1) 꾸러미 무결성 검사 중                        [######################] 100%
(1/1) 꾸러미 파일 불러오는 중                      [######################] 100%
(1/1) 파일 충돌 검사 중                            [######################] 100%
(1/1) 사용 가능한 디스크 공간 검사 중              [######################] 100%
:: 꾸러미 변경사항을 처리 중...
(1/1) 재설치 중 vlc                                [######################] 100%
:: 후처리 훅들을 실행 중...
(1/4) Arming ConditionNeedsUpdate...
(2/4) Updating icon theme caches...
(3/4) Updating the desktop file MIME type cache...
(4/4) Updating the vlc plugin cache...
[study@study-virtualbox ~]$

최신 저장소 정보를 기준으로 새 패키지를 설치하려면 위와 같이 -y 옵션을 붙여 실행함으로써 패키지 데이터베이스를 갱신한 다음 설치 작업이 진행해주어야 합니다.

 

그러나 이 명령이 자주 쓰이지 않는 이유는 대부분 $ sudo pacman -Syu 명령을 실행하여 패키지 데이터베이스를 최신으로 갱신하고 기존 패키지들을 모두 업그레이드하고나서 새 패키지를 설치하기 때문입니다.

 

특정 저장소 지정 패키지 설치

[study@study-virtualbox ~]$ sudo pacman -S testing/grep
의존성 해결 중...
꾸러미 충돌을 찾는 중...

꾸러미 (1) grep-3.7-1

총 다운로드 크기:      0.24 MiB
총 설치 크기:          0.81 MiB
알짜 업그레이드 크기:  0.09 MiB

:: 설치를 진행하시겠습니까? [Y/n]

특정 저장소를 지정하여 패키지 설치하는 방법입니다.

패키지명 앞에 저장소명을 적어주시면 됩니다.

 

[study@study-virtualbox ~]$ sudo pacman -S testing/samba
오류: 데이터베이스가 없습니다: testing
[study@study-virtualbox ~]$

그런데 testing 저장소의 패키지를 설치하려고 ㅎ사면 위와 같은 오류 메시지가 출력됩니다.

이는 해당 저장소가 비활성화되어 있기 때문입니다.

 

[study@study-virtualbox ~]$ cat -n /etc/pacman.conf
     1	#
     2	# /etc/pacman.conf
     3	#
     4	# See the pacman.conf(5) manpage for option and repository directives
     5	
     6	#
     7	# GENERAL OPTIONS
     8	#
     9	[options]
    10	# The following paths are commented out with their default values listed.
    11	# If you wish to use different paths, uncomment and update the paths.
    12	#RootDir     = /
    13	#DBPath      = /var/lib/pacman/
    14	#CacheDir    = /var/cache/pacman/pkg/
    15	#LogFile     = /var/log/pacman.log
    16	#GPGDir      = /etc/pacman.d/gnupg/
    17	#HookDir     = /etc/pacman.d/hooks/
    18	HoldPkg     = pacman glibc
    19	#XferCommand = /usr/bin/curl -L -C - -f -o %o %u
    20	#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
    21	#CleanMethod = KeepInstalled
    22	Architecture = auto
    23	
    24	# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
    25	#IgnorePkg   =
    26	#IgnoreGroup =
    27	
    28	#NoUpgrade   =
    29	#NoExtract   =
    30	
    31	# Misc options
    32	#UseSyslog
    33	#Color
    34	#NoProgressBar
    35	CheckSpace
    36	#VerbosePkgLists
    37	#ParallelDownloads = 5
    38	
    39	# By default, pacman accepts packages signed by keys that its local keyring
    40	# trusts (see pacman-key and its man page), as well as unsigned packages.
    41	SigLevel    = Required DatabaseOptional
    42	LocalFileSigLevel = Optional
    43	#RemoteFileSigLevel = Required
    44	
    45	# NOTE: You must run `pacman-key --init` before first using pacman; the local
    46	# keyring can then be populated with the keys of all official Arch Linux
    47	# packagers with `pacman-key --populate archlinux`.
    48	
    49	#
    50	# REPOSITORIES
    51	#   - can be defined here or included from another file
    52	#   - pacman will search repositories in the order defined here
    53	#   - local/custom mirrors can be added here or in separate files
    54	#   - repositories listed first will take precedence when packages
    55	#     have identical names, regardless of version number
    56	#   - URLs will have $repo replaced by the name of the current repo
    57	#   - URLs will have $arch replaced by the name of the architecture
    58	#
    59	# Repository entries are of the format:
    60	#       [repo-name]
    61	#       Server = ServerName
    62	#       Include = IncludePath
    63	#
    64	# The header [repo-name] is crucial - it must be present and
    65	# uncommented to enable the repo.
    66	#
    67	
    68	# The testing repositories are disabled by default. To enable, uncomment the
    69	# repo name header and Include lines. You can add preferred servers immediately
    70	# after the header, and they will be used before the default mirrors.
    71	
    72	#[testing]
    73	#Include = /etc/pacman.d/mirrorlist
    74	
    75	[core]
    76	Include = /etc/pacman.d/mirrorlist
    77	
    78	[extra]
    79	Include = /etc/pacman.d/mirrorlist
    80	
    81	#[community-testing]
    82	#Include = /etc/pacman.d/mirrorlist
    83	
    84	[community]
    85	Include = /etc/pacman.d/mirrorlist
    86	
    87	# If you want to run 32 bit applications on your x86_64 system,
    88	# enable the multilib repositories as required here.
    89	
    90	#[multilib-testing]
    91	#Include = /etc/pacman.d/mirrorlist
    92	
    93	#[multilib]
    94	#Include = /etc/pacman.d/mirrorlist
    95	
    96	# An example of a custom package repository.  See the pacman manpage for
    97	# tips on creating your own repositories.
    98	#[custom]
    99	#SigLevel = Optional TrustAll
   100	#Server = file:///home/custompkgs
[study@study-virtualbox ~]$

/etc/pacman.conf 파일을 열어보면 68번 째 줄(수정 전 원본)부터 저장소 관련 주석과 설정 내용이 담겨져 있습니다.

[testing], [community-testing], [multilib-testing] 저장소는 비활성화되어 있습니다.

활성화하고자 하는 저장소의 주석을 제거해주시고 저장해줍니다.

[testing]
Include = /etc/pacman.d/mirrorlist

여기서는 [testing] 저장소의 주석(#)을 제거해주었습니다.

편집 후 저장한 다음 아래와 같이 패키지 데이터베이스 갱신 작업을 수행해줍니다.

 

[study@study-virtualbox ~]$ sudo pacman -Sy
:: 꾸러미 데이터베이스 동기화 중...
 testing                39.4 KiB   453 KiB/s 00:00 [######################] 100%
 core is up to date
 extra is up to date
 community               5.7 MiB  2.16 MiB/s 00:03 [######################] 100%
[study@study-virtualbox ~]$

testing 저장소가 새로 수행된 것을 확인할 수 있습니다.

 

[study@study-virtualbox ~]$ sudo pacman -S testing/samba
의존성 해결 중...
꾸러미 충돌을 찾는 중...

꾸러미 (7) ceph-libs-15.2.13-2  fmt-8.0.1-1  iniparser-4.1-3
           oath-toolkit-2.6.7-1  perl-parse-yapp-1.21-4  xmlsec-1.2.32-1
           samba-4.14.7-2

총 다운로드 크기:   21.65 MiB
총 설치 크기:      119.40 MiB

:: 설치를 진행하시겠습니까? [Y/n]

testing 저장소 활성화 후 testing/samba 패키지 설치 작업이 수행 가능함을 확인할 수 있습니다.

 

동일 패턴 패키지명 설치

[study@study-virtualbox ~]$ sudo pacman -S plasma-{desktop,disks,firewall,nm,pa}
의존성 해결 중...
:: phonon-qt5-backend에 대해 이용할 수 있는 2 제공자가 있습니다:
:: extra 저장소
   1) phonon-qt5-gstreamer  2) phonon-qt5-vlc

숫자를 입력하십시오. (기본값=1): 
꾸러미 충돌을 찾는 중...
경고: 순환 의존성이 감지되었습니다:
경고: phonon-qt5-gstreamer는 의존성 phonon-qt5보다 앞에 설치될 것입니다.

꾸러미 (133) appstream-qt-0.14.4-1  attica-5.85.0-1  baloo-5.85.0-1
             breeze-5.22.4-1  breeze-icons-5.85.0-1  convertlit-1.8-10
             ebook-tools-0.2.2-7  editorconfig-core-c-0.12.5-1
             frameworkintegration-5.85.0-1  glu-9.0.2-1  kactivities-5.85.0-1
             kactivities-stats-5.85.0-1  kactivitymanagerd-5.22.4-1
             karchive-5.85.0-1  kauth-5.85.0-1  kbookmarks-5.85.0-1
             kcmutils-5.85.0-1  kcodecs-5.85.0-1  kcompletion-5.85.0-1
             kconfig-5.85.0-1  kconfigwidgets-5.85.0-1  kcoreaddons-5.85.0-1
             kcrash-5.85.0-1  kdbusaddons-5.85.0-1  kde-cli-tools-5.22.4-1
             kdeclarative-5.85.0-1  kdecoration-5.22.4-1  kded-5.85.0-1
             kdelibs4support-5.85.0-1  kdesu-5.85.0-1  kdnssd-5.85.0-1
             kdsoap-2.0.0-1  kdsoap-ws-discovery-client-git20200927-2
             kemoticons-5.85.0-1  kfilemetadata-5.85.0-1  kglobalaccel-5.85.0-1
             kguiaddons-5.85.0-1  kholidays-1:5.85.0-1  ki18n-5.85.0-1
             kiconthemes-5.85.0-1  kidletime-5.85.0-1  kinfocenter-5.22.4-1
             kio-5.85.0-1  kio-extras-21.08.0-1  kio-fuse-5.0.1-1
             kirigami2-5.85.0-1  kitemmodels-5.85.0-1  kitemviews-5.85.0-1
             kjobwidgets-5.85.0-1  kmenuedit-5.22.4-1  knewstuff-5.85.0-1
             knotifications-5.85.0-1  knotifyconfig-5.85.0-1  kpackage-5.85.0-1
             kparts-5.85.0-1  kpeople-5.85.0-1  kpty-5.85.0-1
             kquickcharts-5.85.0-1  krunner-5.85.0-1  kscreenlocker-5.22.4-1
             kservice-5.85.0-1  ksystemstats-5.22.4-1  ktexteditor-5.85.0-1
             ktextwidgets-5.85.0-1  kunitconversion-5.85.0-1
             kuserfeedback-1.0.0-1  kwallet-5.85.0-1  kwayland-5.85.0-1
             kwayland-server-5.22.4-1  kwidgetsaddons-5.85.0-1  kwin-5.22.4-1
             kwindowsystem-5.85.0-1  kxmlgui-5.85.0-1  layer-shell-qt-5.22.4-1
             libdbusmenu-qt5-0.9.3+16.04.20160218-5  libdmtx-0.7.5-2
             libkscreen-5.22.4-1  libksysguard-5.22.4-1  libmbim-1.26.0-2
             libqaccessibilityclient-0.4.1-2  libqalculate-3.20.1-1
             libqmi-1.30.0-1  libqrtr-glib-1.0.0-1  libtommath-1.2.0-3
             libutempter-1.2.1-1  libzip-1.7.3-2  media-player-info-24-2
             milou-5.22.4-1  minizip-1:1.2.11-4  modemmanager-1.16.10-1
             modemmanager-qt-5.85.0-1  networkmanager-qt-5.85.0-1
             noto-fonts-20201226-2  phonon-qt5-4.11.1-2
             phonon-qt5-gstreamer-4.10.0-2  plasma-framework-5.85.0-2
             plasma-integration-5.22.4-1  plasma-workspace-5.22.4-3
             polkit-kde-agent-5.22.4-1  polkit-qt5-0.114.0-1
             poppler-qt5-21.08.0-1  ppp-2.4.9-1  prison-5.85.0-1
             qca-qt5-2.3.3-1  qqc2-desktop-style-5.85.0-1  qrencode-4.1.1-1
             qt5-declarative-5.15.2+kde+r29-1  qt5-graphicaleffects-5.15.2-1
             qt5-location-5.15.2-3  qt5-multimedia-5.15.2-1
             qt5-quickcontrols-5.15.2-1  qt5-quickcontrols2-5.15.2-1
             qt5-speech-5.15.2-1  qt5-wayland-5.15.2+kde+r29-1
             qt5-webchannel-5.15.2-1  qt5-webengine-5.15.5-1  re2-1:20210801-1
             smartmontools-7.2-1  solid-5.85.0-1  sonnet-5.85.0-1
             syndication-5.85.0-1  syntax-highlighting-5.85.0-1
             systemsettings-5.22.4-1  threadweaver-5.85.0-1  ttf-hack-3.003-3
             xcb-util-cursor-0.1.3-3  xorg-xmessage-1.0.5-2
             xorg-xsetroot-1.1.2-2  plasma-desktop-5.22.4-1
             plasma-disks-5.22.4-1  plasma-firewall-5.22.4-1
             plasma-nm-5.22.4-1  plasma-pa-5.22.4-1

총 다운로드 크기:  241.00 MiB
총 설치 크기:      860.06 MiB

:: 설치를 진행하시겠습니까? [Y/n]

패키지명에 동일한 패턴이 반복되는 경우 반복되는 문자열을 제외한 각 문자열들을 중괄호{   }안에 쉼표로 구분해 입력해주시면 됩니다.

 

설치하고자 하는 패키지를 둘 이상의 제공처에서 제공하는 경우 원하는 제공처를 선택해주시면 됩니다.

일반적으로 기본값을 그대로 사용하시면 큰 문제는 없지만 책임은 사용자가 지는 것이므로 자신의 목적과 환경 등에 맞춰 올바른 제공처를 선택하는 것이 좋습니다.

 

필요한 패키지만 설치

[study@study-virtualbox ~]$ sudo pacman --needed -S git gparted
경고: git-2.33.0-1는 최신 버전입니다 -- 건너뜀
의존성 해결 중...
꾸러미 충돌을 찾는 중...

꾸러미 (1) gparted-1.3.1-1

총 다운로드 크기:  1.71 MiB
총 설치 크기:      7.24 MiB

:: 설치를 진행하시겠습니까? [Y/n]
:: 꾸러미 가져오는 중...
 gparted-1.3.1-1-...  1746.7 KiB  1941 KiB/s 00:01 [######################] 100%
(1/1) 키링의 키를 검사 중                          [######################] 100%
(1/1) 꾸러미 무결성 검사 중                        [######################] 100%
(1/1) 꾸러미 파일 불러오는 중                      [######################] 100%
(1/1) 파일 충돌 검사 중                            [######################] 100%
(1/1) 사용 가능한 디스크 공간 검사 중              [######################] 100%
:: 꾸러미 변경사항을 처리 중...
(1/1) 설치 중 gparted                              [######################] 100%
gparted에 대한 선택 의존성
    dosfstools: for FAT16 and FAT32 partitions [설치함]
    jfsutils: for jfs partitions
    f2fs-tools: for Flash-Friendly File System
    btrfs-progs: for btrfs partitions [설치함]
    exfatprogs: for exFAT partitions
    ntfs-3g: for ntfs partitions
    reiserfsprogs: for reiser partitions
    udftools: for UDF file system support
    xfsprogs: for xfs partitions [설치함]
    nilfs-utils: for nilfs2 support
    polkit: to run gparted from application menu [설치함]
    gpart: for recovering corrupt partition tables
    mtools: utilities to access MS-DOS disks [설치함]
    xorg-xhost: authorization from wayland [설치함]
:: 후처리 훅들을 실행 중...
(1/3) Arming ConditionNeedsUpdate...
(2/3) Updating icon theme caches...
(3/3) Updating the desktop file MIME type cache...
[study@study-virtualbox ~]$

--needed 옵션을 사용하면 필요한 패키지만 설치됩니다.

위 예시의 경우 git은 이미 최신 버전으로 설치되어 있으므로 건너뛰고 아직 설치되지 않은 gparted 패키지만 설치 진행됩니다.

 

[study@study-virtualbox ~]$ sudo pacman --needed -S git gparted
[sudo] study 암호: 
경고: git-2.33.0-1는 최신 버전입니다 -- 건너뜀
경고: gparted-1.3.1-1는 최신 버전입니다 -- 건너뜀
 할 일이 없습니다
[study@study-virtualbox ~]$

설치하고자 하는 패키지가 모두 최신 버전인 경우 위와 같이 모두 건너 뛰고 작업이 중단됩니다.

 

[study@study-virtualbox ~]$ sudo pacman -S git gparted
경고: git-2.33.0-1는 최신 버전입니다. -- 재설치
경고: gparted-1.3.1-1는 최신 버전입니다. -- 재설치
의존성 해결 중...
꾸러미 충돌을 찾는 중...

꾸러미 (2) git-2.33.0-1  gparted-1.3.1-1

총 설치 크기:          39.56 MiB
알짜 업그레이드 크기:   0.00 MiB

:: 설치를 진행하시겠습니까? [Y/n] 
(2/2) 키링의 키를 검사 중                          [######################] 100%
(2/2) 꾸러미 무결성 검사 중                        [######################] 100%
(2/2) 꾸러미 파일 불러오는 중                      [######################] 100%
(2/2) 파일 충돌 검사 중                            [######################] 100%
(2/2) 사용 가능한 디스크 공간 검사 중              [######################] 100%
:: 꾸러미 변경사항을 처리 중...
(1/2) 재설치 중 git                                [######################] 100%
(2/2) 재설치 중 gparted                            [######################] 100%
:: 후처리 훅들을 실행 중...
(1/5) Creating system user accounts...
(2/5) Reloading system manager configuration...
(3/5) Arming ConditionNeedsUpdate...
(4/5) Updating icon theme caches...
(5/5) Updating the desktop file MIME type cache...
[study@study-virtualbox ~]$

만약 이 --needed 옵션을 사용하지 않으면 시스템에 이미 해당 패키지들이 존재하더라도 위와 같이 강제 재설치 작업이 진행됩니다.

 

종속성 패키지로 설치

[study@study-virtualbox ~]$ sudo pacman -S --asdeps mc
[sudo] study 암호: 
의존성 해결 중...
꾸러미 충돌을 찾는 중...

꾸러미 (1) mc-4.8.27-1

총 설치 크기:  7.07 MiB

:: 설치를 진행하시겠습니까? [Y/n] 
(1/1) 키링의 키를 검사 중                          [#######################] 100%
(1/1) 꾸러미 무결성 검사 중                        [#######################] 100%
(1/1) 꾸러미 파일 불러오는 중                      [#######################] 100%
(1/1) 파일 충돌 검사 중                            [#######################] 100%
(1/1) 사용 가능한 디스크 공간 검사 중              [#######################] 100%
:: 꾸러미 변경사항을 처리 중...
(1/1) 설치 중 mc                                   [#######################] 100%
mc에 대한 선택 의존성
    aspell: spelling corrections
    cabextract: ucab extfs
    cdparanoia: audio extfs [설치함]
    cdrkit: iso9660 extfs [설치함]
    cvs: CVS support
    gawk: hp48+ extfs [설치함]
    mtools: a+ extfs [설치함]
    p7zip: support for 7zip archives
    perl: needed by several extfs scripts [설치함]
    python: to access uc1541 or s3 storage [설치함]
    python-boto: s3+ extfs
    python-pytz: s3+ extfs [설치함]
    samba: VFS support
    unace: uace extfs
    unarj: uarj extfs
    unrar: urar extfs
    unzip: open zip archives [설치함]
    zip: uzip extfs [설치함]
:: 후처리 훅들을 실행 중...
(1/1) Arming ConditionNeedsUpdate...
[study@study-virtualbox ~]$

--asdeps 옵션을 붙이면 사용자가 직접 설치하지만 종속성으로 설치한 것으로 기록됩니다.

 

[study@study-virtualbox ~]$ pacman -Qi mc | grep '설치 이유'
설치 이유          : 다른 꾸러미의 의존 요소로 설치했습니다
[study@study-virtualbox ~]$

 

시스템 언어가 영어로 설정되어 있는 경우(터미널 작업 진행 과정이 영어로 출력되는 경우)

'설치 이유' 대신 'Install Reason'를 붙이면 됩니다.

 

[study@study-virtualbox ~]$ sudo pacman -Qi mc | grep 'Install Reason'
Install Reason  : Installed as a dependency for another package
[study@study-virtualbox ~]$

그러면 위와 같이 출력됩니다.

 

[study@study-virtualbox ~]$ sudo pacman -Qi mc | grep 'Install Reason'
Install Reason  : Explicitly installed
[study@study-virtualbox ~]$

[study@study-virtualbox ~]$ sudo pacman -Qi mc | grep 'Install Reason'
Install Reason  : Installed as a dependency for another package
[study@study-virtualbox ~]$

 

pacman의 구성 파일(/etc/pacman.conf)에 명시된 리포지토리가 아닌 '원격' 패키지 설치

[study@study-virtualbox Downloads]$ sudo pacman -U https://www.nimfsoft.com/downloads/archlinux/x86_64/tian-2021.08.11-1-x86_64.pkg.tar.zst

pacman.conf 파일에 설정되지 않은 외부 저장소에서 패키지를 설치하고자 할 때는 위와 같은 방식으로 설치합니다.

그러나 아치리눅스는 일반적으로 패키지 설치 시 서명을 확인하게끔 되어 있으므로 위와 같이 패키지 URL만을 직접 지정하여 패키지 설치 명령만 수행하면 아래와 같이 오류가 발생합니다.

study@study-virtualbox ~]$ sudo pacman -U https://www.nimfsoft.com/downloads/archlinux/x86_64/tian-2021.08.11-1-x86_64.pkg.tar.zst
:: 꾸러미 가져오는 중...
 tian-2021.08.11-...   301.5 KiB   343 KiB/s 00:01 [######################] 100%
오류: 파일 'tian-2021.08.11-1-x86_64.pkg.tar.zst.sig'를 www.nimfsoft.com에서 가져오는 데 실패 : The requested URL returned error: 404
경고: 일부 파일을 가져오지 못했습니다.
[study@study-virtualbox ~]$

따라서 이라반적으로 외부 패키지를 설치할 때는 서명 파일을 같이 다운받거나 키 파일을 다운받아 추가한 다음 설치 작업(-U)을 수행해주셔야 합니다.

 

아래는 그 예시입니다.

[study@study-virtualbox ~]$ sudo pacman --needed -S curl wget
[sudo] study 암호: 
경고: curl-7.78.0-1는 최신 버전입니다 -- 건너뜀
의존성 해결 중...
꾸러미 충돌을 찾는 중...

꾸러미 (1) wget-1.21.1-1

총 다운로드 크기:  0.72 MiB
총 설치 크기:      2.99 MiB

:: 설치를 진행하시겠습니까? [Y/n] 
:: 꾸러미 가져오는 중...
 wget-1.21.1-1-x86_64  740.9 KiB   785 KiB/s 00:01 [######################] 100%
(1/1) 키링의 키를 검사 중                          [######################] 100%
(1/1) 꾸러미 무결성 검사 중                        [######################] 100%
(1/1) 꾸러미 파일 불러오는 중                      [######################] 100%
(1/1) 파일 충돌 검사 중                            [######################] 100%
(1/1) 사용 가능한 디스크 공간 검사 중              [######################] 100%
:: 꾸러미 변경사항을 처리 중...
(1/1) 설치 중 wget                                 [######################] 100%
wget에 대한 선택 의존성
    ca-certificates: HTTPS downloads [설치함]
:: 후처리 훅들을 실행 중...
(1/2) Arming ConditionNeedsUpdate...
(2/2) Updating the info directory file...
[study@study-virtualbox ~]$

먼저 서버로부터 콘텐츠를 다운받는 대표적인 리눅스 도구  curl과 wget을 시스템에 설치해줍니다.

 

[study@study-virtualbox ~]$ cd Downloads
[study@study-virtualbox Downloads]$ wget https://www.nimfsoft.com/downloads/archlinux/x86_64/tian-2021.08.11-1-x86_64.pkg.tar.zst
--2021-09-02 01:29:53--  https://www.nimfsoft.com/downloads/archlinux/x86_64/tian-2021.08.11-1-x86_64.pkg.tar.zst
Loaded CA certificate '/etc/ssl/certs/ca-certificates.crt'
Resolving www.nimfsoft.com (www.nimfsoft.com)... 104.248.158.121, 178.128.124.245, 2406:da18:880:3801:ace0:496f:12a:7ecb, ...
Connecting to www.nimfsoft.com (www.nimfsoft.com)|104.248.158.121|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 308698 (301K) [application/octet-stream]
Saving to: `tian-2021.08.11-1-x86_64.pkg.tar.zst'

tian-2021.08.11-1-x 100%[===================>] 301.46K  71.9KB/s    in 4.3s    

2021-09-02 01:29:59 (69.9 KB/s) - `tian-2021.08.11-1-x86_64.pkg.tar.zst' saved [308698/308698]

[study@study-virtualbox Downloads]$

이제 패키지 파일을 다운받습니다.

 

[study@study-virtualbox Downloads]$ curl -O https://www.nimfsoft.com/downloads/nimfsoft.asc
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1664  100  1664    0     0   2949      0 --:--:-- --:--:-- --:--:--  2950
[study@study-virtualbox Downloads]$

다음은 패키지 배포자가 제공하는 공개키 파일을 다운받습니다.

 

[study@study-virtualbox Downloads]$ ls -l
합계 308
-rw-r--r-- 1 study users   1664  9월  2 01:32 nimfsoft.asc
-rw-r--r-- 1 study users 308698  9월  2 01:29 tian-2021.08.11-1-x86_64.pkg.tar.zst
[study@study-virtualbox Downloads]$

패키지 파일과 패키지 배포자 공개키 파일이 ㅍ다운로드된 것을 확인합니다.

 

[study@study-virtualbox Downloads]$ sudo pacman-key --add nimfsoft.asc
[sudo] study 암호: 
==> 신뢰 데이터베이스 업그레이드 중...
gpg: next trustdb check due at 2021-12-01
[study@study-virtualbox Downloads]$

이제 다운받은 공개키를 추가해줍니다.

 

[study@study-virtualbox Downloads]$ sudo pacman -U ./tian-2021.08.11-1-x86_64.pkg.tar.zst
꾸러미 불러오는 중...
의존성 해결 중...
꾸러미 충돌을 찾는 중...

꾸러미 (12) anthy-9100h-6  gtk2-2.24.33-2  libappindicator-gtk3-12.10.0.r296-1
            libdbusmenu-glib-16.04.0-4  libdbusmenu-gtk3-16.04.0-4
            libindicator-gtk3-12.10.1-9  libotf-0.9.16-3  m17n-db-1.8.0-3
            m17n-lib-1.8.0-10  sunpinyin-3.0.0rc1-4
            sunpinyin-data-1:2.0.3.20140820-3  tian-2021.08.11-1

총 다운로드 크기:   34.72 MiB
총 설치 크기:      112.12 MiB

:: 설치를 진행하시겠습니까? [Y/n] 
:: 꾸러미 가져오는 중...
 gtk2-2.24.33-2-x...     5.9 MiB  2.44 MiB/s 00:02 [######################] 100%
 libdbusmenu-glib...    70.4 KiB   658 KiB/s 00:00 [######################] 100%
 libdbusmenu-gtk3...    39.1 KiB  1505 KiB/s 00:00 [######################] 100%
 libindicator-gtk...    28.9 KiB   536 KiB/s 00:00 [######################] 100%
 libappindicator-...    52.6 KiB   244 KiB/s 00:00 [######################] 100%
 anthy-9100h-6-x86_64    5.3 MiB  2.72 MiB/s 00:02 [######################] 100%
 m17n-db-1.8.0-3-any  1509.0 KiB  2.47 MiB/s 00:01 [######################] 100%
 libotf-0.9.16-3-...    84.9 KiB   772 KiB/s 00:00 [######################] 100%
 m17n-lib-1.8.0-1...   317.3 KiB  2.92 MiB/s 00:00 [######################] 100%
 sunpinyin-3.0.0r...   285.8 KiB  1408 KiB/s 00:00 [######################] 100%
 sunpinyin-data-1...    21.2 MiB  4.53 MiB/s 00:05 [######################] 100%
 Total (11/11)          34.7 MiB  3.06 MiB/s 00:11 [######################] 100%
(12/12) 키링의 키를 검사 중                        [######################] 100%
(11/12) 꾸러미 무결성 검사 중                      [######################] 100%
(11/12) 꾸러미 파일 불러오는 중                    [######################] 100%
(12/12) 파일 충돌 검사 중                          [######################] 100%
(12/12) 사용 가능한 디스크 공간 검사 중            [######################] 100%
:: 꾸러미 변경사항을 처리 중...
( 1/12) 설치 중 gtk2                               [######################] 100%
gtk2에 대한 선택 의존성
    gnome-themes-standard: Default widget theme [설치함]
    adwaita-icon-theme: Default icon theme [설치함]
    python: gtk-builder-convert [설치함]
( 2/12) 설치 중 libdbusmenu-glib                   [######################] 100%
( 3/12) 설치 중 libdbusmenu-gtk3                   [######################] 100%
( 4/12) 설치 중 libindicator-gtk3                  [######################] 100%
( 5/12) 설치 중 libappindicator-gtk3               [######################] 100%
( 6/12) 설치 중 anthy                              [######################] 100%
( 7/12) 설치 중 m17n-db                            [######################] 100%
( 8/12) 설치 중 libotf                             [######################] 100%
( 9/12) 설치 중 m17n-lib                           [######################] 100%
m17n-lib에 대한 선택 의존성
    anthy: to use the anthy input method [설치함]
    ispell: to use the ispell input method
(10/12) 설치 중 sunpinyin                          [######################] 100%
sunpinyin에 대한 선택 의존성
    sunpinyin-data: Statistical language model data from open-gram project for
    sunpinyin [대기 중]
(11/12) 설치 중 sunpinyin-data                     [######################] 100%
(12/12) 설치 중 tian                               [######################] 100%
:: 후처리 훅들을 실행 중...
(1/6) Arming ConditionNeedsUpdate...
(2/6) Compiling GSettings XML schema files...
(3/6) Probing GTK2 input method modules...
(4/6) Probing GTK3 input method modules...
(5/6) Updating icon theme caches...
(6/6) Updating the desktop file MIME type cache...
[study@study-virtualbox Downloads]$

이제 패키지를 설치해줍니다.

 

 


 

패키지 그룹 확인

아치 리눅스 유지 보수팀에서 공식적으로 지원하는 패키지 그룹은 위 링크에서 확인할 수 있습니다.

물론 GUI 환경에서 웹브라우저를 통해 확인하는 것이 편하긴 합니다만 터미널 환경에서도 확인할 수 있는 방법이 있습니다.

[study@study-virtualbox ~]$ pacman -Sg
base-devel
qt
qt5
multilib-devel
gnome-extra
kde-applications
kdepim
archlinux-tools
kde-utilities
kde-education
kf5
kde-multimedia
gnome
plasma
kde-games
kdesdk
kde-system
xfce4
pro-audio
fprint
kde-graphics
kde-pim
kde-network
kf5-aids
kde-accessibility
xfce4-goodies
pyqt5
pyqt6
qt6
vulkan-devel
telepathy
telepathy-kde
texlive-most
texlive-lang
xorg-drivers
xorg
xorg-apps
xorg-fonts
lv2-plugins
vst-plugins
ladspa-plugins
dssi-plugins
arduino
mate-extra
linux-tools
firefox-addons
maui
mate
pantheon
coin-or
coq
kubernetes-tools
cutefish
dlang
deepin
deepin-extra
vst3-plugins
dlang-dmd
lasdpa-plugins
fcitx-im
fcitx5-im
feeluown-full
liri
soundfonts
gambas3
gnustep-core
lxde
greenbone-vulnerability-manager
i3
ukui
jami
kodi-addons
kodi-addons-audioencoder
kodi-addons-game
kodi-addons-inputstream
kodi-addons-peripheral
kodi-addons-screensaver
kodi-addons-visualization
kubernetes-control-plane
kubernetes-node
kubectl-plugins
dlang-ldc
libretro
lxde-gtk3
lxqt
pd-externals
vamp-plugins
mingw-w64-toolchain
mingw-w64
nextcloud-apps
non-daw
ipa-fonts
alsa
sequoia
qtcurve
realtime
risc-v
sugar-fructose
pantheon-unstable
tesseract-data
vim-plugins
x-apps
[study@study-virtualbox ~]$

$ pacman -Sg를 통해 나타나는 각 행별 문자열은 패키지 그룹의 이름입니다.

현재 100 여 개의 패키지 그룹이 관리되고 있습니다.

 

패키지 그룹에 속한 패키지 목록 확인

[study@study-virtualbox ~]$ pacman -Sg base-devel
base-devel grep
base-devel autoconf
base-devel automake
base-devel binutils
base-devel bison
base-devel fakeroot
base-devel file
base-devel findutils
base-devel flex
base-devel gawk
base-devel gcc
base-devel gettext
base-devel grep
base-devel groff
base-devel gzip
base-devel libtool
base-devel m4
base-devel make
base-devel pacman
base-devel patch
base-devel pkgconf
base-devel sed
base-devel sudo
base-devel texinfo
base-devel which
[study@study-virtualbox ~]$

각 행의 앞부분은 패키지 그룹 이름이고 뒷부분은 해당 패키지 그룹에 속한 패키지 이름입니다.

 

패키지 그룹 설치 [★]

[study@study-virtualbox ~]$ sudo pacman -S base-devel
[sudo] study 암호: 
:: 24 개의 구성원이 base-devel 모음에 있습니다:
:: testing 저장소
   1) grep
:: core 저장소
   2) autoconf  3) automake  4) binutils  5) bison  6) fakeroot  7) file
   8) findutils  9) flex  10) gawk  11) gcc  12) gettext  13) groff  14) gzip
   15) libtool  16) m4  17) make  18) pacman  19) patch  20) pkgconf  21) sed
   22) sudo  23) texinfo  24) which

선택을 입력하십시오. (기본값=all):

testing 저장소를 활성화하지 않는 일반 아치 사용자의 경우 이렇게 설치 가능한 패키지가 저장소별로 구분되어 나열되지 않습니다.

따라서 특정 패키지 그룹을 전체 설치할 경우 엔터키만 누르면 큰 문제없이 설치가 가능합니다.

 

그러나 여기서는 연재를 위해 testing 저장소를 활성화하였기 때문에 testing 저장소 안의 패키지가 설치 가능 목록에 포함됩니다.

 

이때 주의할 점은 testing 저장소에 속하는 패키지 grep은 core 저장소에도 존재합니다.

[study@study-virtualbox ~]$ pacman -Si grep | grep 버전
버전               : 3.7-1
버전               : 3.6-1
[study@study-virtualbox ~]$

위와 같이 간결하게 확인할 수 있습니다.

[study@study-virtualbox ~]$ pacman -Si grep | grep version

시스템 언어 즉, 터미널 출력 언어가 영어라면 위 명령을 통해 확인할 수 있습니다.

 

testing 저장소 안의 패키지가 아직 개발 및 테스트 중인 미래 버전이라면 비 testing 저장소 안의 패키지는 안정화가 이루어져 품질 테스트에 통과해 대중에 공개된 현재 최신 안정 버전입니다.

 

testing 저장소와 비 testing 저장소가 같이 활성화되어 있고 /etc/pacman.conf 파일 설정 안에서 testing 저장소가 다른 저장소에 비해 먼저 설정되어 있다면 위와 같이 testing 저장소의 패키지가 설치되는 현상이 발생합니다.

패키지 설치 등의 우선순위는 저장소 설정 순서와 동일합니다.

 

따라서 testing 저장소의 패키지들은 사용자가 특별히 저장소를 지정해 설치하지 않는 한 우선순위에서 밀리도록 하려면 /etc/pacman.conf 파일 설정에서  testing 저장소 설정 순서를 뒤로 이동해주시는 것이 좋습니다.

 

[study@study-virtualbox ~]$ sudo pacman -Syy
:: 꾸러미 데이터베이스 동기화 중...
 core                  136.2 KiB  1273 KiB/s 00:00 [######################] 100%
 extra                1572.8 KiB  3.57 MiB/s 00:00 [######################] 100%
 community               5.7 MiB  1837 KiB/s 00:03 [######################] 100%
 testing                39.4 KiB   251 KiB/s 00:00 [######################] 100%
[study@study-virtualbox ~]$

testing 저장소 설정 순서를 타 저장소보다 나중으로 미룬 다음 $ sudo pacman -Syy 명령을 사용하면 이전과는 달리 testing 저장소가 뒤로 밀린 것을 확인할 수 있습니다.

 

[sudo] study 암호: 
:: 24 개의 구성원이 base-devel 모음에 있습니다:
:: core 저장소
   1) autoconf  2) automake  3) binutils  4) bison  5) fakeroot  6) file
   7) findutils  8) flex  9) gawk  10) gcc  11) gettext  12) grep  13) groff
   14) gzip  15) libtool  16) m4  17) make  18) pacman  19) patch  20) pkgconf
   21) sed  22) sudo  23) texinfo  24) which

선택을 입력하십시오. (기본값=all):

이후에 패키지 또는 패키지 그룹 설치 명령을 실행하면 위와 같이 출력되는 것을 확인할 수 있습니다.

 


 

지정 패키지 삭제

[study@study-virtualbox ~]$ sudo pacman -R vlc
[sudo] study 암호: 
의존성 검사 중...

꾸러미 (1) vlc-3.0.16-3

총 제거 크기:  59.77 MiB

:: 이 꾸러미를 제거하시겠습니까? [Y/n] 
:: 꾸러미 변경사항을 처리 중...
(1/1) 삭제 중 vlc                                  [######################] 100%
:: 후처리 훅들을 실행 중...
(1/3) Arming ConditionNeedsUpdate...
(2/3) Updating icon theme caches...
(3/3) Updating the desktop file MIME type cache...
[study@study-virtualbox ~]$

지정한 패키지만 삭제합니다.

지정 패키지와 의존성 관계를 맺는 종속 패키지들은 지우지 않고 그대로 남겨둡니다.

 

지정 패키지 및 불필요한 종속 패키지 삭제 [★]

[study@study-virtualbox ~]$ sudo pacman -Rs vlc
[sudo] study 암호: 
의존성 검사 중...
:: avahi는 선택사항으로 qt5-base: qt5 bindings를 요구합니다
:: graphviz는 선택사항으로 qt5-base: gvedit를 요구합니다
:: libde265는 선택사항으로 qt5-base: for sherlock265를 요구합니다
:: openal는 선택사항으로 qt5-base: alsoft-config GUI Configurator를 요구합니다
:: pinentry는 선택사항으로 qt5-base: qt backend를 요구합니다
:: v4l-utils는 선택사항으로 qt5-base: for qv4l2를 요구합니다
:: zbar는 선택사항으로 qt5-x11extras: for zbar-qt를 요구합니다

꾸러미 (24) a52dec-0.7.4-11  double-conversion-3.1.5-2  glslang-11.6.0-1
            libdvbpsi-1:1.3.3-2  libebml-1.4.2-1  libmad-0.15.1b-9
            libmatroska-1.6.3-1  libmpeg2-0.5.1-7  libplacebo-3.120.3-3
            libtar-1.2.20-5  libupnp-1.14.8-1  lua52-5.2.4-5  md4c-0.4.8-1
            qt5-base-5.15.2+kde+r215-2  qt5-svg-5.15.2+kde+r7-1
            qt5-x11extras-5.15.2-1  shaderc-2021.1-2  spirv-tools-2021.1-1
            tslib-1.22-1  xcb-util-image-0.4.0-3  xcb-util-keysyms-0.4.0-3
            xcb-util-renderutil-0.3.9-3  xcb-util-wm-0.4.1-3  vlc-3.0.16-3

총 제거 크기:  163.20 MiB

:: 이 꾸러미를 제거하시겠습니까? [Y/n] 
:: 꾸러미 변경사항을 처리 중...
( 1/24) 삭제 중 vlc                                [######################] 100%
( 2/24) 삭제 중 qt5-x11extras                      [######################] 100%
( 3/24) 삭제 중 qt5-svg                            [######################] 100%
( 4/24) 삭제 중 qt5-base                           [######################] 100%
( 5/24) 삭제 중 xcb-util-wm                        [######################] 100%
( 6/24) 삭제 중 xcb-util-renderutil                [######################] 100%
( 7/24) 삭제 중 xcb-util-image                     [######################] 100%
( 8/24) 삭제 중 tslib                              [######################] 100%
( 9/24) 삭제 중 md4c                               [######################] 100%
(10/24) 삭제 중 double-conversion                  [######################] 100%
(11/24) 삭제 중 xcb-util-keysyms                   [######################] 100%
(12/24) 삭제 중 lua52                              [######################] 100%
(13/24) 삭제 중 libupnp                            [######################] 100%
(14/24) 삭제 중 libtar                             [######################] 100%
(15/24) 삭제 중 libplacebo                         [######################] 100%
(16/24) 삭제 중 shaderc                            [######################] 100%
(17/24) 삭제 중 spirv-tools                        [######################] 100%
(18/24) 삭제 중 glslang                            [######################] 100%
(19/24) 삭제 중 libmpeg2                           [######################] 100%
(20/24) 삭제 중 libmatroska                        [######################] 100%
(21/24) 삭제 중 libebml                            [######################] 100%
(22/24) 삭제 중 libmad                             [######################] 100%
(23/24) 삭제 중 libdvbpsi                          [######################] 100%
(24/24) 삭제 중 a52dec                             [######################] 100%
:: 후처리 훅들을 실행 중...
(1/3) Arming ConditionNeedsUpdate...
(2/3) Updating icon theme caches...
(3/3) Updating the desktop file MIME type cache...
[study@study-virtualbox ~]$

지정 패키지와 다른 패키지에서 요구하지 않는 불필요한 종속 패키지도 같이 삭제합니다.

 

[study@study-virtualbox ~]$ sudo pacman -Rsu 패키지그룹

필요한 패키지가 포함된 그룹을 제거할 때 위의 실행이 거부될 수 있습니다.

그떄는 위 명령을 수행해줍니다.

 

지정 패키지와 종속 패키지 그리고 제거 대상이 된 패키지들에 대한 모든 연속 종속 패키지 삭제

[study@study-virtualbox ~]$ sudo pacman -Rsc 패키지명

지정 패키지와 그의 종속 패키지 그리고 앞에서 삭제 대상이 된 패키지들에 대한 종속 패키지들까지 모두 삭제하며 이 작업은 재귀적으로 수행되기 때문에 잠재적으로 필요한 많은 패키지를 제거할 수 있으므로 주의해야 합니다.

 

[study@study-virtualbox ~]$ sudo pacman -Rs pulseaudio
의존성 검사 중...
오류: 트랜잭션 준비에 실패했습니다(의존성이 만족되지 못하였습니다.)
:: pulseaudio 제거로 의존성 'pulseaudio'(gnome-settings-daemon가 요구)가 깨집니다
:: pulseaudio 제거로 의존성 'pulseaudio'(pulseaudio-alsa가 요구)가 깨집니다
:: pulseaudio 제거로 의존성 'pulseaudio=15.0-1'(pulseaudio-bluetooth가 요구)가 깨집니다
[study@study-virtualbox ~]$

예를 들어 pulseaudio 패키지를 일반적인 방법으로 삭제하면 위와 같이 종속성 문제로 중단됩니다.

 

[study@study-virtualbox ~]$ sudo pacman -Rsc pulseaudio
의존성 검사 중...
:: gnome-usage는 선택사항으로 accountsservice: show user tags for processes를 요구합니다
:: gparted는 선택사항으로 xorg-xhost: authorization from wayland를 요구합니다
:: networkmanager는 선택사항으로 bluez: Bluetooth support를 요구합니다
:: pipewire는 선택사항으로 pipewire-media-session: Default session manager를 요구합니다
:: pipewire는 선택사항으로 gst-plugin-pipewire: GStreamer support를 요구합니다
:: speech-dispatcher는 선택사항으로 pulseaudio: PulseAudio support를 요구합니다

꾸러미 (37) accountsservice-0.6.55-3  alsa-plugins-1:1.2.5-2  bluez-5.61-1
            bolt-0.9.1-1  colord-gtk-0.2.0-2  cups-pk-helper-0.2.6-4
            gdm-40.1-1  gnome-bluetooth-3.34.5-2  gnome-calendar-40.2-1
            gnome-control-center-40.0-1  gnome-settings-daemon-40.0.1-2
            gnome-shell-1:40.4-1  gnome-shell-extensions-40.4-1
            gnome-tweaks-40.0-1  gst-plugin-pipewire-1:0.3.34-1
            libfontenc-1.1.4-3  libgdm-40.1-1  libgnomekbd-3.26.1+2+g8d02ebd-2
            libnma-1.8.32-1  libxfont2-2.0.5-1  libxklavier-5.4-3
            mutter-40.4-1  nm-connection-editor-1.24.0-1
            pipewire-media-session-1:0.3.34-1  pulseaudio-alsa-1:1.2.5-2
            pulseaudio-bluetooth-15.0-1  xf86-input-libinput-1.1.0-1
            xorg-fonts-encodings-1.0.5-2  xorg-server-1.20.13-2
            xorg-server-common-1.20.13-2  xorg-setxkbmap-1.3.2-2
            xorg-xhost-1.0.8-2  xorg-xkbcomp-1.4.5-1  xorg-xrdb-1.2.1-1
            xorg-xwayland-21.1.2-1  zenity-3.32.0+55+gd7bedff-1
            pulseaudio-15.0-1

총 제거 크기:  90.62 MiB

:: 이 꾸러미를 제거하시겠습니까? [Y/n]

그러나 $ sudo pacman -Rsc 명령을 사용하면 연속적으로 상관된 모든 종속패키지들이 대량으로 제거됩니다.

 

종속 패키지를 제거하지 않고 다른 패키지에 필요한 패키지를 제거

[study@study-virtualbox ~]$ sudo pacman -Rdd 패키지명

 

구성 설정 파일 백업 없이 패키지 삭제

pacman은 패키지를 삭제할 때 pacman 데이터베이스에 패키지가 소유한 특정 파일을 백업해야 한다는 기록이 있으면 .pacsave 파일을 생성합니다.

[study@study-virtualbox ~]$ sudo pacman -Rn 패키지명

이 백업 파일까지 모두 삭제하고자 하는 경우 위 명령을 실행하면 됩니다.

그러나 백업 대상 파일이 설치 당시의 기본값과 달라진 내용이 없으면 남겨 둘 의미가 없으므로 백업 파일을 생성하지 않습니다.

이 내용에 과 관련하여 mc 패키지를 예시로 보다 자세히 다뤄보도록 하겠습니다.

 

mc 4.8.27-1의 PKGBUILD 파일을 열어보면 아래와 같은 내용이 있습니다.

backup=('etc/mc/edit.indent.rc'
        'etc/mc/filehighlight.ini'
        'etc/mc/mc.ext'
        'etc/mc/mc.keymap'
        'etc/mc/mc.menu'
        'etc/mc/mcedit.menu'
        'etc/mc/sfs.ini')

mc 패키지를 설치하면 이들 구성 파일이 생성됩니다.

실제로 설치해서 알아보도록 합시다.

[study@study-virtualbox ~]$ sudo pacman -S mc
[sudo] study 암호: 
의존성 해결 중...
꾸러미 충돌을 찾는 중...

꾸러미 (1) mc-4.8.27-1

총 다운로드 크기:  1.85 MiB
총 설치 크기:      7.07 MiB

:: 설치를 진행하시겠습니까? [Y/n] 
:: 꾸러미 가져오는 중...
 mc-4.8.27-1-x86_64   1896.5 KiB  5.73 MiB/s 00:00 [######################] 100%
(1/1) 키링의 키를 검사 중                          [######################] 100%
(1/1) 꾸러미 무결성 검사 중                        [######################] 100%
(1/1) 꾸러미 파일 불러오는 중                      [######################] 100%
(1/1) 파일 충돌 검사 중                            [######################] 100%
(1/1) 사용 가능한 디스크 공간 검사 중              [######################] 100%
:: 꾸러미 변경사항을 처리 중...
(1/1) 설치 중 mc                                   [######################] 100%
mc에 대한 선택 의존성
    aspell: spelling corrections
    cabextract: ucab extfs
    cdparanoia: audio extfs [설치함]
    cdrkit: iso9660 extfs [설치함]
    cvs: CVS support
    gawk: hp48+ extfs [설치함]
    mtools: a+ extfs [설치함]
    p7zip: support for 7zip archives
    perl: needed by several extfs scripts [설치함]
    python: to access uc1541 or s3 storage [설치함]
    python-boto: s3+ extfs
    python-pytz: s3+ extfs [설치함]
    samba: VFS support
    unace: uace extfs
    unarj: uarj extfs
    unrar: urar extfs
    unzip: open zip archives [설치함]
    zip: uzip extfs [설치함]
:: 후처리 훅들을 실행 중...
(1/1) Arming ConditionNeedsUpdate...
[study@study-virtualbox ~]$

mc 설치 과정입니다.

 

[study@study-virtualbox mc]$ ls -l
합계 100
-rwxr-xr-x 1 root root   788  8월 18 22:39 edit.indent.rc
-rw-r--r-- 1 root root  1364  8월 18 22:39 filehighlight.ini
-rw-r--r-- 1 root root  9457  8월 18 22:39 mc.default.keymap
-rw-r--r-- 1 root root  9395  8월 18 22:39 mc.emacs.keymap
-rw-r--r-- 1 root root 21592  8월 18 22:39 mc.ext
-rw-r--r-- 1 root root  9457  8월 18 22:39 mc.keymap
-rw-r--r-- 1 root root 11820  8월 18 22:39 mc.menu
-rw-r--r-- 1 root root 12627  8월 18 22:39 mcedit.menu
-rw-r--r-- 1 root root   871  8월 18 22:39 sfs.ini
[study@study-virtualbox mc]$

설치 후 구성 파일 위치로 이동해 내용을 확인해봅시다. 이상의 구성 파일들이 존재합니다.

그중 mc.default.keymap, mc.emacs.keymap 이 두 파일을 제외한 7가지 구성 파일들이 패키지 삭제 시 백업 대상입니다.

백업은 .pacsave라는 확장자로 이루어지며 백업 작업이 수행되기 위해서는 원본에 수정이 가해져야 합니다.

만약 수정이 없다면 패키지를 삭제하더라도 해당 패키지 재설치 시 같은 내용으로 파일이 생성되므로 굳이 백업하지 않아도 되기 때문에 넘어갑니다.

 

[study@study-virtualbox mc]$ pacman -Qii mc
이름               : mc
버전               : 4.8.27-1
설명               : A file manager that emulates Norton Commander
아키텍처           : x86_64
URL                : https://midnight-commander.org/
라이선스           : GPL
모음들             : 없음
다음을 제공        : 없음
다음에 의존        : e2fsprogs  glib2  gpm  libssh2  slang  which
선택 의존성        : aspell: spelling corrections
                     cabextract: ucab extfs
                     cdparanoia: audio extfs [설치함]
                     cdrkit: iso9660 extfs [설치함]
                     cvs: CVS support
                     gawk: hp48+ extfs [설치함]
                     mtools: a+ extfs [설치함]
                     p7zip: support for 7zip archives
                     perl: needed by several extfs scripts [설치함]
                     python: to access uc1541 or s3 storage [설치함]
                     python-boto: s3+ extfs
                     python-pytz: s3+ extfs [설치함]
                     samba: VFS support
                     unace: uace extfs
                     unarj: uarj extfs
                     unrar: urar extfs
                     unzip: open zip archives [설치함]
                     zip: uzip extfs [설치함]
다음이 요구        : 없음
다음의 선택 의존성 : 없음
다음과 충돌        : 없음
다음을 대체        : 없음
설치된 크기        : 7.07 MiB
꾸러미 만든이      : schuay <jakob@gruber-linke.de>
빌드 날짜          : 없음
설치 날짜          : 없음
설치 이유          : 명시적으로 설치했습니다
설치 스크립트      : 아니요
유효검사자         : 서명
백업 파일들        :
UNMODIFIED	/etc/mc/edit.indent.rc
UNMODIFIED	/etc/mc/filehighlight.ini
UNMODIFIED	/etc/mc/mc.ext
UNMODIFIED	/etc/mc/mc.keymap
UNMODIFIED	/etc/mc/mc.menu
UNMODIFIED	/etc/mc/mcedit.menu
UNMODIFIED	/etc/mc/sfs.ini
[study@study-virtualbox mc]$

위를 보면 백업 파일과 수정 여부를 확인할 수 있습니다.

여기서는 /etc/mc/mc.keymap 파일을 간단히 수정해봅시다.

  GNU nano 5.8                        mc.keymap                                 
[filemanager]
ChangePanel = tab; ctrl-i
Help = f1
UserMenu = f2
View = f3
# ViewFile =
Edit = f4
# EditForceInternal =
Copy = f5
Move = f6
MakeDir = f7
Delete = f8
Menu = f9
Quit = f10
MenuLastSelected = f19
QuitQuiet = f20
Find = alt-question
CdQuick = alt-c
HotList = ctrl-backslash
Reread = ctrl-r
                                [ 497 행 읽음 ]

이 내용들을 적당히 수정해주도록 합시다. 여기서는 사용자에게 맞게 커스터마이징 작업을 하는 것이 아니라 단지 수정 작업을 한다는 것 그 자체에 의의가 있으므로 크게 신경쓰지 않아도 됩니다.

 

[study@study-virtualbox mc]$ pacman -Qii mc | grep MODIFIED
UNMODIFIED	/etc/mc/edit.indent.rc
UNMODIFIED	/etc/mc/filehighlight.ini
UNMODIFIED	/etc/mc/mc.ext
MODIFIED	/etc/mc/mc.keymap
UNMODIFIED	/etc/mc/mc.menu
UNMODIFIED	/etc/mc/mcedit.menu
UNMODIFIED	/etc/mc/sfs.ini
[study@study-virtualbox mc]$

방금 전 작업으로 해당 파일이 수정된 것을 확인할 수 있습니다.

 

이제 mc 패키지를 제거해보도록 합시다.

[study@study-virtualbox mc]$ sudo pacman -Rs mc
[sudo] study 암호: 
의존성 검사 중...

꾸러미 (1) mc-4.8.27-1

총 제거 크기:  7.07 MiB

:: 이 꾸러미를 제거하시겠습니까? [Y/n] 
:: 꾸러미 변경사항을 처리 중...
(1/1) 삭제 중 mc                                   [######################] 100%
경고: /etc/mc/mc.keymap.pacsave로 /etc/mc/mc.keymap를 저장합니다
:: 후처리 훅들을 실행 중...
(1/1) Arming ConditionNeedsUpdate...
[study@study-virtualbox mc]$

위 진행과정을 보면 수정한 구성 파일이 .pacsave 파일로 백업되었음을 확인할 수 있습니다.

 

[study@study-virtualbox mc]$ cd ~
[study@study-virtualbox ~]$ find /etc -regextype posix-extended -regex ".+\.pac(new|save)" 2> /dev/null
/etc/pacman.d/mirrorlist.pacnew
/etc/mc/mc.keymap.pacsave
[study@study-virtualbox ~]$

find 명령을 사용해 /etc 디렉터리 안에 있는 .pacnew 또는 .pacsave 파일을 손쉽게 확인할 수 있습니다.

 

사용된 find 명령의 이해

$ find /etc -regextype posix-extended -regex ".+\.pac(new|save)" 2> /dev/null

find
find는 리눅스 표준 도구 GNU findutil 패키지에 포함된 도구로 
리눅스 디렉터리 계층 안에 존재하는 파일 및 디렉터리 등을 찾을 때 사용하는 명령어입니다.

/etc 
find가 파일 등을 검색할 위치입니다.

-regextype posix-extended
find 명령어에서 사용할 정규식 유형을 설정하는 구문입니다.
여기서는 보다 확장된 정규 표현식인 posix-extended을 이해 도구로 사용하겠다는 뜻입니다.

-regex ".+\.pac(new|save)" 
뒤에 오는 정규식 패턴과 일치하는 대상을 검색합니다. 

2> 
2의 의미는 STDERR(standard error - 표준오류)를 의미합니다.
오류 메시지를 > 기호 뒤에 오는 장치 등으로 내보낸다는 의미입니다.
참고로 0과 1도 있습니다.
0은 STDIN(standard input - 표준입력)
1은 STDOUT(standard output - 표준출력)

/dev/null
/dev/null은 일종의 휴지통 역할을 하는 장치로, 일반적으로 출력될 내용을 표시하지 않고 버릴 때 사용합니다.

개략적인 구문 이해는 위와 같습니다.

-regex ".+\.pac(new|save)"

.
사용가능한 모든 단일 문자와 일치합니다.

+
이전 요소를 한 번 이상 찾는다는 의미입니다.
즉 .+은 아무 단일 문자가 하나 이상 쓰인 것을 의미합니다.
예시로 a, ab, abc, a1b2c3 등을 허용합니다.

\.pac
정규표현식에서는 일반적으로 '. ^ $ + * ? | ()  {} []' 같은 특수기호는 특별한 의미를 지닙니다.
예를 들어
.은 임의의 단일 문자임을, 
^은 뒤에 오는 문자로 시작함을, 
$는 앞에 오는 문자를 마지막으로 끝남을 
의미하는 등 특별한 역할을 가집니다.

그러나 이 기호들이 정규식에서 사용되는 특별한 의미를 지니는 '특수'기호로 사용되지 않고
문자 그대로 일반 문자로 사용하기 위해서는 특수한 의미를 벗어나게 하는 또 다른 특수 기호를 덧붙여주어야 합니다.
이때 사용되는 기호가 \(역슬래시 - 키보드 상에서 

(new|save)
여기서는 두 개의 특수기호가 함께 쓰였습니다.

() 기호(= 소괄호)는 괄호 안에 든 문자를 그룹화합니다.
만약 (ab)가 쓰였다면 'ab' 문자가 하나의 단위로 이해됩니다.

| 기호는 or 연산자로 | 좌변의 문자나 우변의 문자 둘 중 하나만 만족하면 일치한 것으로 이해합니다.

이상의 내용을 토대로 .+\.pac(new|save)를 사람의 말로 풀면 다음과 같이 이해가 됩니다.

앞부분은 임의의 문자열로 구성되고, 
뒷부분은 .pacnew나 .pacsave로 구성되는 패턴의 문자열을 만족하는 경우를 말합니다.

 

관련 정규식과 관련하여 위 링크들을 참고하시기 바랍니다.

 

그외에 find 메뉴얼은 위 링크를 참고하시기 바랍니다.

 

[study@study-virtualbox ~]$ find /etc -regextype posix-extended -regex ".+\.pac(new|save)"
find: ‘/etc/NetworkManager/system-connections’: 허가 거부
find: ‘/etc/polkit-1/rules.d’: 허가 거부
find: ‘/etc/audit/plugins.d’: 허가 거부
find: ‘/etc/pacman.d/gnupg/private-keys-v1.d’: 허가 거부
find: ‘/etc/pacman.d/gnupg/openpgp-revocs.d’: 허가 거부
find: ‘/etc/pacman.d/gnupg/crls.d’: 허가 거부
/etc/pacman.d/mirrorlist.pacnew
find: ‘/etc/sudoers.d’: 허가 거부
/etc/mc/mc.keymap.pacsave
[study@study-virtualbox ~]$

참고로 표준오류를 /dev/null 장치로 버리지 않으면 위와 같이 출력됩니다.

 

[study@study-virtualbox ~]$ sudo pacman -Rn mc
[sudo] study 암호: 
의존성 검사 중...

꾸러미 (1) mc-4.8.27-1

총 제거 크기:  7.07 MiB

:: 이 꾸러미를 제거하시겠습니까? [Y/n] 
:: 꾸러미 변경사항을 처리 중...
(1/1) 삭제 중 mc                                   [######################] 100%
:: 후처리 훅들을 실행 중...
(1/1) Arming ConditionNeedsUpdate...
[study@study-virtualbox ~]$

위와 같이 -n 옵션을 붙여 패키지 삭제 명령을 실행하면 구성 파일이 삭제됩니다.

구성 파일이 포함된 /etc/mc 디렉터리 자체가 삭제됩니다.

 

[study@study-virtualbox ~]$ sudo pacman -Rns 패키지명

구성 파일까지 모두 삭제하려면 일반적으로 위 명령을 사용합니다.