[관련 게시물]
2021.09.02 - [리눅스/Arch or Manjaro] - 아치 계열 리눅스 패키지 관리자 Pacman 명령어와 옵션
2021.09.04 - [리눅스/Arch or Manjaro] - 아치 계열 리눅스 패키지 관리자 Pacman 주요 사용법 1 - 패키지 동기화, 설치, 업그레이드, 삭제
2021.09.06 - [리눅스/Arch or Manjaro] - 아치 계열 리눅스 패키지 관리자 Pacman 주요 사용법 2 - 캐시 관리, 패키지 정보 조회(검색), 기타 작업
아치 리눅스 pacman cache 기본 경로
아치 리눅스의 캐시 디렉터리 기본값은 아래와 같습니다.
/var/cache/pacman/pkg
이 내용은 팩맨의 기본 설정 파일인 /etc/pacman.conf에서 아래와 같이 확인할 수 있습니다.
[study@study-virtualbox ~]$ head -n 23 /etc/pacman.conf | grep CacheDir
#CacheDir = /var/cache/pacman/pkg/
[study@study-virtualbox ~]$
사용자가 캐시 디렉터리를 변경할 수도 있습니다.
/etc/pacman.conf 파일을 열어 위 CacheDir 항목의 주석 처리(#)를 지우고 기본값 대신 원하는 경로(절대 경로)를 적어 주시면 됩니다.
pacman 핵심 설정
pacman 핵심 설정
[study@study-virtualbox ~]$ head -n 23 /etc/pacman.conf # # /etc/pacman.conf # # See the pacman.conf(5) manpage for option and repository directives # # GENERAL OPTIONS # [options] # The following paths are commented out with their default values listed. # If you wish to use different paths, uncomment and update the paths. #RootDir = / #DBPath = /var/lib/pacman/ #CacheDir = /var/cache/pacman/pkg/ #LogFile = /var/log/pacman.log #GPGDir = /etc/pacman.d/gnupg/ #HookDir = /etc/pacman.d/hooks/ HoldPkg = pacman glibc #XferCommand = /usr/bin/curl -L -C - -f -o %o %u #XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u #CleanMethod = KeepInstalled Architecture = auto [study@study-virtualbox ~]$
캐시 디렉터리 설정 외에 루트 디렉터리, 로컬 패키지 데이터베이스 디렉터리, 로그 파일 경로, GPG키 디렉터리 등의 기본값도 /etc/pacman.conf 파일의 상단부에서 확인할 수 있으며 해당값들을 사용자가 원하는 값으로 수정할 수도 있습니다.
/etc/pacman.conf 의 위 상단부 내용 등의 설정값을 사용자가 원하는 대로 수정할 수는 있지만 원활한 시스템 유지보수를 위해 가능하면 기본값 그대로 사용하시는 것을 권장합니다.
캐시 디렉터리 예시
[study@study-virtualbox ~]$ ls -l /var/cache/pacman/pkg
합계 2885944
-rw-r--r-- 1 root root 39197 5월 14 2020 a52dec-0.7.4-11-x86_64.pkg.tar.zst
-rw-r--r-- 1 root root 331 5월 14 2020 a52dec-0.7.4-11-x86_64.pkg.tar.zst.sig
-rw-r--r-- 1 root root 139582 5월 14 2020 aalib-1.4rc5-14-x86_64.pkg.tar.zst
-rw-r--r-- 1 root root 331 5월 14 2020 aalib-1.4rc5-14-x86_64.pkg.tar.zst.sig
-rw-r--r-- 1 root root 1748141 11월 13 2020 accerciser-3.38.0-2-any.pkg.tar.zst
-rw-r--r-- 1 root root 310 11월 13 2020 accerciser-3.38.0-2-any.pkg.tar.zst.sig
-rw-r--r-- 1 root root 173738 9월 2 2020 accountsservice-0.6.55-3-x86_64.pkg.tar.zst
-rw-r--r-- 1 root root 141 9월 2 2020 accountsservice-0.6.55-3-x86_64.pkg.tar.zst.sig
-rw-r--r-- 1 root root 139672 3월 16 19:00 acl-2.3.1-1-x86_64.pkg.tar.zst
-rw-r--r-- 1 root root 119 3월 16 19:00 acl-2.3.1-1-x86_64.pkg.tar.zst.sig
- 생략 -
-rw-r--r-- 1 root root 121010 1월 8 2021 zita-resampler-1.8.0-1-x86_64.pkg.tar.zst
-rw-r--r-- 1 root root 119 1월 8 2021 zita-resampler-1.8.0-1-x86_64.pkg.tar.zst.sig
-rw-r--r-- 1 root root 83444 11월 14 2019 zlib-1:1.2.11-4-x86_64.pkg.tar.xz
-rw-r--r-- 1 root root 310 11월 14 2019 zlib-1:1.2.11-4-x86_64.pkg.tar.xz.sig
-rw-r--r-- 1 root root 946526 5월 15 04:35 zstd-1.5.0-1-x86_64.pkg.tar.zst
-rw-r--r-- 1 root root 310 5월 15 04:35 zstd-1.5.0-1-x86_64.pkg.tar.zst.sig
-rw-r--r-- 1 root root 384319 5월 15 2020 zvbi-0.2.35-4-x86_64.pkg.tar.zst
-rw-r--r-- 1 root root 331 5월 15 2020 zvbi-0.2.35-4-x86_64.pkg.tar.zst.sig
-rw-r--r-- 1 root root 681171 5월 28 23:05 zxing-cpp-1.2.0-1-x86_64.pkg.tar.zst
-rw-r--r-- 1 root root 310 5월 28 23:05 zxing-cpp-1.2.0-1-x86_64.pkg.tar.zst.sig
[study@study-virtualbox ~]$
아치 리눅스 시스템 구축 후 캐시디렉터리를 확인해보면 시스템 구성에 사용된 모든 설치 패키지들과 해당 패키지들의 서명 파일이 쌍을 이루어 저장되어 있습니다.
패키지 데이터베이스 동기화
[study@study-virtualbox ~]$ sudo pacman -Sy
[sudo] study 암호:
:: 꾸러미 데이터베이스 동기화 중...
core 136.2 KiB 994 KiB/s 00:00 [######################] 100%
extra 1573.2 KiB 965 KiB/s 00:02 [######################] 100%
community 5.7 MiB 1160 KiB/s 00:05 [######################] 100%
testing 34.0 KiB 40.4 KiB/s 00:01 [######################] 100%
[study@study-virtualbox ~]$
위 과정은 시스템 내 로컬 패키지 DB 정보를 활성화되어 있는 아치 리눅스 저장소의 패키지 DB와 동기화하여 최신 정보로 갱신하는 작업입니다. 즉 저장소 내 최신 패키지 정보를 시스템 내 로컬 패키지 DB에 덮어쓰는 작업니다.
이렇게 갱신된 로컬 패키지 DB를 바탕으로 패키지 설치 등 관리 작업이 이루어집니다.
로컬 패키지 데이터베이스
[study@study-virtualbox ~]$ ls -lF /var/lib/pacman
합계 40
drwxr-xr-x 911 root root 36864 8월 31 19:35 local/
drwxr-xr-x 2 root root 4096 8월 30 22:17 sync/
[study@study-virtualbox ~]$
위는 아치 리눅스의 기본 패키지 데이터베이스 디렉터리의 구성 내용입니다.
/var/lib/pacman/local은 시스템에 설치된 패키지에 대한 정보가 담긴 디렉터리입니다.
/var/lib/pacman/sync는 아치 저장소의 패키지 정보를 담은 로컬 패키지 데이터베이스 파일이 저장된 디렉터리입니다.
[study@study-virtualbox ~]$ ls -lF /var/lib/pacman/local
합계 3644
-rw-r--r-- 1 root root 2 6월 29 11:06 ALPM_DB_VERSION
drwxr-xr-x 2 root root 4096 8월 30 16:48 a52dec-0.7.4-11/
drwxr-xr-x 2 root root 4096 6월 29 22:43 aalib-1.4rc5-14/
drwxr-xr-x 2 root root 4096 6월 29 22:44 accerciser-3.38.0-2/
drwxr-xr-x 2 root root 4096 6월 29 22:43 accountsservice-0.6.55-3/
drwxr-xr-x 2 root root 4096 6월 29 11:07 acl-2.3.1-1/
- 생략 -
drwxr-xr-x 2 root root 4096 6월 29 22:43 zita-resampler-1.8.0-1/
drwxr-xr-x 2 root root 4096 6월 29 11:07 zlib-1:1.2.11-4/
drwxr-xr-x 2 root root 4096 6월 29 11:07 zstd-1.5.0-1/
drwxr-xr-x 2 root root 4096 6월 29 22:43 zvbi-0.2.35-4/
drwxr-xr-x 2 root root 4096 6월 29 22:43 zxing-cpp-1.2.0-1/
[study@study-virtualbox ~]$
위는 /var/lib/pacman/local 디렉터리의 목록 예시입니다.
위 명령을 치면 해당 디렉터리(/var/lib/pacman/local) 안에 포함된 파일과 디렉터리 개수를 확인할 수 있습니다.
이 디렉터리 안에는 시스템에 설치되어 있는 패키지에 대한 정보가 아래와 같은 구성으로 담겨져 있습니다.
아래는 tree 패키지의 예입니다.
[study@study-virtualbox ~]$ tree /var/lib/pacman/local/tree-*
/var/lib/pacman/local/tree-1.8.0-2
├── desc
├── files
└── mtree
0 directories, 3 files
[study@study-virtualbox ~]$
그리고 아래는 tree 패키지 디렉터리 안에 포함된 파일 정보입니다.
[study@study-virtualbox ~]$ cat -n /var/lib/pacman/local/tree-*/desc
1 %NAME%
2 tree
3
4 %VERSION%
5 1.8.0-2
6
7 %BASE%
8 tree
9
10 %DESC%
11 A directory listing program displaying a depth indented list of files
12
13 %URL%
14 http://mama.indstate.edu/users/ice/tree/
15
16 %ARCH%
17 x86_64
18
19 %BUILDDATE%
20 1587571345
21
22 %INSTALLDATE%
23 1630742819
24
25 %PACKAGER%
26 Jelle van der Waa <jelle@archlinux.org>
27
28 %SIZE%
29 94661
30
31 %LICENSE%
32 GPL
33
34 %VALIDATION%
35 pgp
36
37 %DEPENDS%
38 glibc
39
[study@study-virtualbox ~]$
desc 파일은 description의 약자에 걸맞게 해당 패키지에 대한 각종 정보가 포함되어 있습니다.
[study@study-virtualbox ~]$ cat -n /var/lib/pacman/local/tree-*/files
1 %FILES%
2 usr/
3 usr/bin/
4 usr/bin/tree
5 usr/share/
6 usr/share/man/
7 usr/share/man/man1/
8 usr/share/man/man1/tree.1.gz
9
[study@study-virtualbox ~]$
해당 패키지의 파일 등이 시스템에 설치된 경로를 모아놓은 파일입니다.
mtree 파일은 해당 패키지의 "디렉토리 계층 구조 매핑"에 사용되는 파일입니다.
[study@study-virtualbox ~]$ ls -lF /var/lib/pacman/local | wc -l
912
[study@study-virtualbox ~]$
/var/lib/pacman/local 디렉터리에서 ls와 wc 명령을 이용해 설치 퍀지 수를 구하려면 위에서 출력된 숫자에서 -2을 해주어야 합니다. 그 이유는 wc -l 명령은 전항 명령에 대한 터미널 출력 내용의 줄 수를 표시한 것입니다.
그런데 ls -l 명령을 사용하면 먼저 행별로 파일 및 디렉터리에 대한 상세 정보 뿐만 아니라 맨 위에 total 항목이 함께 출력되는데 이 total 항목은 명령의 대상이 된 디렉터리 및 파일들이 차지하는 총 블록 수를 의미합니다.
이 블록 수 정보는 당연히 우리가 운하는 파일 개수 정보에 포함되지 않으므로 제외해주어야 합니다.
두 번째로 /var/lib/pacman/local 디렉터리 안에는 ALPM_DB_VERSION 파일이 있는데 해당 파일은 Arch Linux Package Management (ALPM)의 버전 정보가 담긴 것입니다.
따라서 위 명령에서 912가 표시되었다면 해당 디렉터리(/var/lib/pacman/local) 를 토대로 아치 리눅스 시스템에 설치된 패키지의 총 수는 910개인 것입니다.
[study@study-virtualbox ~]$ ls -lF /var/lib/pacman/sync
합계 7552
-rw-r--r-- 1 root root 5937572 8월 31 18:35 community.db
-rw-r--r-- 1 root root 139430 8월 31 18:05 core.db
-rw-r--r-- 1 root root 1611004 8월 31 18:02 extra.db
-rw-r--r-- 1 root root 34803 8월 31 18:05 testing.db
[study@study-virtualbox ~]$
/var/lib/pacman/sync 디렉터리에는 아치리눅스에 활성화되어 있는(또는 활성화된 적이 있던) 아치 패키지 저장소 DB 동기화 파일이 있습니다.
이 파일을 토대로 패키지 설치 등 저장소 관련 작업이 수행됩니다.
패키지 다운로드
[study@study-virtualbox ~]$ sudo pacman -Sw tree mc
의존성 해결 중...
꾸러미 (2) mc-4.8.27-1 tree-1.8.0-2
총 다운로드 크기: 1.85 MiB
:: 다운로드를 진행하시겠습니까? [Y/n]
:: 꾸러미 가져오는 중...
mc-4.8.27-1-x86_64 1896.5 KiB 3.68 MiB/s 00:01 [######################] 100%
(2/2) 키링의 키를 검사 중 [######################] 100%
(2/2) 꾸러미 무결성 검사 중 [######################] 100%
[study@study-virtualbox ~]$
-Sw 옵션을 사용하면 패키지를 다운로드할 뿐 설치 작업을 하지 않습니다.
[study@study-virtualbox ~]$ ls -l /var/cache/pacman/pkg | egrep -w '(tree|mc)'
-rw-r--r-- 1 root root 1942028 8월 18 22:42 mc-4.8.27-1-x86_64.pkg.tar.zst
-rw-r--r-- 1 root root 310 8월 18 22:42 mc-4.8.27-1-x86_64.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 ~]$
패키지를 다운로드하면 위와 같이 /var/cache/pacman/pkg 디렉터리에 저장됩니다.
이때 패키지 파일과 패키지 서명 파일이 쌍으로 저장됩니다.
[study@study-virtualbox ~]$ ls -l /var/cache/pacman/pkg | wc -l
1819
[study@study-virtualbox ~]$
일반적으로 위 명령을 실행해 나타나는 숫자에서 1만큼 빼고 그 다음 2로 나눈 값이 다운로드된 패키지 수입니다.
1을 빼는 이유는 앞서 설명한 바와 같이 ls명령을 사용하면 합계(total) 항목(= 점유하는 블록 수)이 출력되므로 해당 항목 줄을 제외하기 위함입니다.
testing 저장소 비활성화
[study@study-virtualbox ~]$ sudo nano /etc/pacman.conf
활성화했던 저장소를 비활성화하려면 /etc/pacman.conf 파일을 열어 저장소 구성 항목을 아래처럼 주석처리해주시면 됩니다.
#[testing]
#Include = /etc/pacman.d/mirrorlist
물론 해당 내용을 단순히 주석처리하는 것이 아니라 삭제해도 같은 효과를 내지만 추후 저장소 재활성화 등에 대비해 단지 주석처리 해주시는 것이 시스템 관리상 좋습니다.
설치되지 않은 캐시된 패키지 및 미사용 동기화 데이터베이스 삭제
[study@study-virtualbox ~]$ sudo pacman -Sc
유지할 꾸러미:
로컬에 설치한 모든 꾸러미
캐시 디렉터리: /var/cache/pacman/pkg/
:: 모든 기타 꾸러미를 캐시에서 제거하시겠습니까? [Y/n]
캐시에서 오래된 꾸러미 제거 중...
데이터베이스 디렉터리: /var/lib/pacman/
:: 사용하지 않는 저장소를 제거하시겠습니까? [Y/n]
사용하지 않는 동기화 저장소 제거 중...
[study@study-virtualbox ~]$
캐시 디렉터리에 다운로드만 되고 설치는 되지 않은 패키지와 지금은 비활성화되어 불필요한 저장소 동기화 데이터베이스 파일을 삭제하고자 할 때 위와 같이 -Sc 옵션을 사용합니다.
[study@study-virtualbox ~]$ ls -l /var/cache/pacman/pkg | egrep -w '(tree|mc)'
[study@study-virtualbox ~]$
$ sudo pacman -Sc 명령을 실행한 후 설치는 하지 않고 다운로드만 했던 두 패키지를 캐시 디렉터리에서 찾아보니 위와 ㄱㅌ이 아무것도 출력되지 않습니다.
[study@study-virtualbox ~]$ ls -l /var/cache/pacman/pkg | wc -l
1815
[study@study-virtualbox ~]$
그리고 wc -l 명령 실행값이 아까보다 4만큼 줄어든 것을 확인할 수 있습니다.
[study@study-virtualbox ~]$ ls -l /var/lib/pacman/sync
합계 7516
-rw-r--r-- 1 root root 5937572 8월 31 18:35 community.db
-rw-r--r-- 1 root root 139430 8월 31 18:05 core.db
-rw-r--r-- 1 root root 1611004 8월 31 18:02 extra.db
[study@study-virtualbox ~]$
그리고 testing 저장소 DB 파일도 삭제된 것을 확인할 수 있습니다.
캐시에서 모든 파일 제거
[study@study-virtualbox ~]$ sudo pacman -Scc
캐시 디렉터리: /var/cache/pacman/pkg/
:: 캐시에서 모든 파일을 제거하시겠습니까? [y/N] y
캐시에서 모든 파일 제거 중...
데이터베이스 디렉터리: /var/lib/pacman/
:: 사용하지 않는 저장소를 제거하시겠습니까? [Y/n] y
사용하지 않는 동기화 저장소 제거 중...
[study@study-virtualbox ~]$
시스템의 캐시 디렉터리에 있는 모든 파일과 사용되지 않는 저장소 DB 파일을 제거할 땐 -Scc 옵션을 사용합니다.
이때 주의할 점은 캐시에서 모든 파일을 제거할 때는 평소처럼 단순히 엔터키만 누르는 것이 아니라 명시적으로 y키를 입력하고 엔터키를 눌러주어야 합니다.
그렇지 않으면(즉 엔터키만 누르면) 캐시 디렉터리에 있는 패키지들이 제거되지 않는데 그 이유는 캐시에서 모든 파일을 제거 작업은 [y/N]에서 보듯 No가 기본값이기 때문입니다.
[study@study-virtualbox ~]$ ls -l /var/cache/pacman/pkg
합계 0
[study@study-virtualbox ~]$
study@study-virtualbox ~]$ ls -l /var/lib/pacman/sync
합계 7516
-rw-r--r-- 1 root root 5937572 8월 31 18:35 community.db
-rw-r--r-- 1 root root 139430 8월 31 18:05 core.db
-rw-r--r-- 1 root root 1611004 8월 31 18:02 extra.db
[study@study-virtualbox ~]$
$ sudo pacman -Scc 명령을 실행한 후 위처럼 캐시 디렉터리 내 목록과 저장소 패키지 DB 파일이 위와 같이 출력됩니다.
패키지 검색
[study@study-virtualbox ~]$ pacman -Ss apache
extra/ant 1.10.11-1
Java based build tool
extra/ant-doc 1.10.11-1
Apache Ant build tool documentation
extra/apache 2.4.48-1 [설치함]
A high performance Unix-based HTTP server
extra/apr 1.7.0-3 [설치함]
The Apache Portable Runtime
extra/apr-util 1.6.1-8 [설치함]
The Apache Portable Runtime
extra/java-jsvc 1.2.4-1
Apache application for making Java applications run on UNIX more easily
extra/mod_dnssd 0.6-8 [설치함]
Zeroconf module for Apache2
extra/mod_fcgid 2.3.9-5
A FastCGI module for Apache HTTP Server.
extra/php-apache 8.0.10-1
Apache SAPI for PHP
extra/php7-apache 7.4.23-1
Apache SAPI for PHP
community/apache-orc 1.6.9-1
Columnar storage for Hadoop workloads.
community/certbot-apache 1.18.0-1
Apache plugin for Let’s Encrypt client
community/dbeaver-plugin-apache-poi 4.1.1-2
DBeaver library for Microsoft Office documents
community/librdkafka 1.7.0-2
The Apache Kafka C/C++ library
community/mod_itk 2.4.7.r04-1
Apache mpm itk module that allows you to run each of your vhost under a
separate uid and gid
community/mod_passenger 6.0.10-1
Passenger apache module
community/python-kazoo 2.8.0-2
A high-level Python library that makes it easier to use Apache Zookeeper
community/python-thrift 0.14.0-1
Python bindings for the Apache Thrift RPC system
community/solr 8.8.2-1
Open source enterprise search platform built on Apache Lucene
[study@study-virtualbox ~]$
동기화 데이터베이스(= 저장소)를 기준으로, 패키지 이름과 설명에 포함된 문자열을 토대로 패키지를 검색합니다.
패키지 설치 여부에 상관없이 주어진 문자열을 포함하고 있는 패키지를 검색하며, 시스템에 설치되어 있는 것인 경우 [설치함] 또는 [installed]가 표시됩니다.
확장 정규표현식(ERE)을 이용한 패키지 검색
때로는 단순히 문자열만 입력해서는 패키지를 쉽게 찾을 수 없습니다.
[study@study-virtualbox ~]$ pacman -Ss '^vim$'
extra/gvim 8.2.2891-1
Vi Improved, a highly configurable, improved version of the vi text editor
(with advanced features, such as a GUI)
extra/vim 8.2.2891-1 [설치함]
Vi Improved, a highly configurable, improved version of the vi text editor
[study@study-virtualbox ~]$
위와 같이 정규표현식을 이용해 검색해 검색 범위를 좁히는 것이 좋습니다.
[study@study-virtualbox ~]$ pacman -Ss vim
extra/gvim 8.2.2891-1
Vi Improved, a highly configurable, improved version of the vi text editor
(with advanced features, such as a GUI)
extra/vim 8.2.2891-1 [설치함]
Vi Improved, a highly configurable, improved version of the vi text editor
extra/vim-runtime 8.2.2891-1 [설치함]
Vi Improved, a highly configurable, improved version of the vi text editor
(shared runtime)
community/firefox-tridactyl 1.21.1-2 (firefox-addons)
Replace Firefox's control mechanism with one modelled on Vim
community/grub-theme-vimix 20190605-2
A blur theme for grub
community/neovim 0.5.0-1
Fork of Vim aiming to improve user experience, plugins, and GUIs
community/neovim-qt 0.2.16.1-1
GUI for Neovim
community/notmuch-vim 0.32.3-1
Vim plugins for notmuch
community/powerline 2.8.2-2
Statusline plugin for vim, and provides statuslines and prompts for several
other applications, including zsh, bash, tmux, IPython, Awesome, i3 and
Qtile
community/powerline-vim 2.8.2-2
vim plugin for powerline
community/python-pynvim 0.4.3-1
Python client for Neovim
community/qutebrowser 2.3.1-1
A keyboard-driven, vim-like browser based on PyQt5
community/ranger 1.9.3-3
Simple, vim-like file manager
community/ruby-vimrunner 0.3.4-2
Spawn a Vim instance and control it programatically
community/vim-airline 0.11-1 (vim-plugins)
Status line, written in Vimscript
community/vim-airline-themes r1386.63b66df-1 (vim-plugins)
Themes for vim-airline
community/vim-ale 3.1.0-1 (vim-plugins)
Asynchronous Lint Engine with Language Server Protocol (LSP) support
community/vim-align 37.43-5 (vim-plugins)
Lets you align lines using regular expressions
community/vim-ansible 3.2-1 (vim-plugins)
A vim plugin for syntax highlighting Ansible's common filetypes
community/vim-bufexplorer 7.4.19-2 (vim-plugins)
Simple buffer list/switcher for vim
community/vim-coverage-highlight 3.4-1 (vim-plugins)
Vim plugin to highlight Python source code lines that lack test coverage
community/vim-csound 0.8.1-1 (vim-plugins)
Csound tools for Vim
community/vim-ctrlp 1.80-3 (vim-plugins)
Fuzzy file, buffer, mru, tag, etc finder.
community/vim-easymotion 3.0.1-5 (vim-plugins)
Vim motion on speed
community/vim-editorconfig 1.1.1-1 (vim-plugins)
EditorConfig plugin for Vim
community/vim-fugitive 3.2-1 (vim-plugins)
Git wrapper so awesome, it should be illegal
community/vim-gitgutter 708.c27bfab-1 (vim-plugins)
Vim plugin which shows a git diff in the gutter (sign column)
community/vim-grammalecte r31.09d4b24-1 (vim-plugins)
Integrates Grammalecte into Vim
community/vim-himalaya 0.4.0-3
A CLI email client - Vim UI plugin
community/vim-indent-object 1.1.2-7 (vim-plugins)
Text objects based on indent levels
community/vim-jad 1.3_1329-4 (vim-plugins)
Automatically decompile Java class files and display Java code
community/vim-jedi 0.11.0-1 (vim-plugins)
Vim plugin for jedi, an awesome Python autocompletion
community/vim-latexsuite 1:1.10.0-3 (vim-plugins)
Tools to view, edit, and compile LaTeX documents within Vim.
community/vim-molokai 1.1-7 (vim-plugins)
Port of the monokai colorscheme for TextMate
community/vim-nerdcommenter 2.5.2-2 (vim-plugins)
Plugin that allows for easy commenting of code for many filetypes
community/vim-nerdtree 6.10.11-1 (vim-plugins)
Tree explorer plugin for navigating the filesystem
community/vim-pastie 2.0-10 (vim-plugins)
A Vim plugin that lets you read and create pastes at http://pastie.org/
community/vim-seti 1.0-4 (vim-plugins)
Colorscheme based on Jesse Weed's Seti theme for the Atom editor
community/vim-spell-af 20190731-2
Language files for Vim spell checking
community/vim-spell-am 20190731-2
Language files for Vim spell checking
community/vim-spell-bg 20190731-2
Language files for Vim spell checking
community/vim-spell-br 20190731-2
Language files for Vim spell checking
community/vim-spell-ca 20190731-2
Language files for Vim spell checking
community/vim-spell-cs 20190731-2
Language files for Vim spell checking
community/vim-spell-cy 20190731-2
Language files for Vim spell checking
community/vim-spell-da 20190731-2
Language files for Vim spell checking
community/vim-spell-de 20190731-2
Language files for Vim spell checking
community/vim-spell-el 20190731-2
Language files for Vim spell checking
community/vim-spell-en 20190731-2
Language files for Vim spell checking
community/vim-spell-eo 20190731-2
Language files for Vim spell checking
community/vim-spell-es 20190731-2
Language files for Vim spell checking
community/vim-spell-fo 20190731-2
Language files for Vim spell checking
community/vim-spell-fr 20190731-2
Language files for Vim spell checking
community/vim-spell-ga 20190731-2
Language files for Vim spell checking
community/vim-spell-gd 20190731-2
Language files for Vim spell checking
community/vim-spell-gl 20190731-2
Language files for Vim spell checking
community/vim-spell-he 20190731-2
Language files for Vim spell checking
community/vim-spell-hr 20190731-2
Language files for Vim spell checking
community/vim-spell-hu 20190731-2
Language files for Vim spell checking
community/vim-spell-id 20190731-2
Language files for Vim spell checking
community/vim-spell-it 20190731-2
Language files for Vim spell checking
community/vim-spell-ku 20190731-2
Language files for Vim spell checking
community/vim-spell-la 20190731-2
Language files for Vim spell checking
community/vim-spell-lt 20190731-2
Language files for Vim spell checking
community/vim-spell-lv 20190731-2
Language files for Vim spell checking
community/vim-spell-mg 20190731-2
Language files for Vim spell checking
community/vim-spell-mi 20190731-2
Language files for Vim spell checking
community/vim-spell-ms 20190731-2
Language files for Vim spell checking
community/vim-spell-nb 20190731-2
Language files for Vim spell checking
community/vim-spell-nl 20190731-2
Language files for Vim spell checking
community/vim-spell-nn 20190731-2
Language files for Vim spell checking
community/vim-spell-ny 20190731-2
Language files for Vim spell checking
community/vim-spell-pl 20190731-2
Language files for Vim spell checking
community/vim-spell-pt 20190731-2
Language files for Vim spell checking
community/vim-spell-ro 20190731-2
Language files for Vim spell checking
community/vim-spell-ru 20190731-2
Language files for Vim spell checking
community/vim-spell-rw 20190731-2
Language files for Vim spell checking
community/vim-spell-sk 20190731-2
Language files for Vim spell checking
community/vim-spell-sl 20190731-2
Language files for Vim spell checking
community/vim-spell-sr 20190731-2
Language files for Vim spell checking
community/vim-spell-sv 20190731-2
Language files for Vim spell checking
community/vim-spell-sw 20190731-2
Language files for Vim spell checking
community/vim-spell-tet 20190731-2
Language files for Vim spell checking
community/vim-spell-th 20190731-2
Language files for Vim spell checking
community/vim-spell-tl 20190731-2
Language files for Vim spell checking
community/vim-spell-tn 20190731-2
Language files for Vim spell checking
community/vim-spell-uk 20190731-2
Language files for Vim spell checking
community/vim-spell-yi 20190731-2
Language files for Vim spell checking
community/vim-spell-zu 20190731-2
Language files for Vim spell checking
community/vim-supertab 2.1-4 (vim-plugins)
A Vim plugin that allows you to use the tab key to do all insert completion.
community/vim-surround 2.1-4 (vim-plugins)
Provides mappings to easily delete, change, and add paired surroundings
community/vim-syntastic 3.10.0-2 (vim-plugins)
Automatic syntax checking for Vim
community/vim-tabular 1.0.0+5+g339091a-1 (vim-plugins)
Vim script for text filtering and alignment
community/vim-tagbar 3.0.0-1 (vim-plugins)
Plugin to browse the tags of the current file and get an overview of its
structure
community/vim-ultisnips 3.2-5 (vim-plugins)
TextMate-style snippets for Vim.
community/vim-vital 1:3113.982e0bf3-2 (vim-plugins)
Comprehensive Vim utility functions for Vim plugins
community/vimb 3.6.0-1
The vim like browser
community/vimiv 0.9.1-4
Image viewer with vim-like keybindings
community/vimpager 2.06-5
A vim-based script to use as a PAGER.
community/vint 0.3.20-3
Lint tool for Vim script Language
community/vis 0.7-2
modern, legacy free, simple yet efficient vim-like editor
community/vit 2.1.0-1
Terminal interface for Taskwarrior with Vim key bindings and colorization
[study@study-virtualbox ~]$
만약 단순히 패키지명만 검색 문자열로 적으면 위와 같이 사용자가 원하지 않는 많은 패키지들까지 검색되어 원하는 패키지를 찾기가 쉽지 않습니다.
설치된 패키지 검색
[study@study-virtualbox ~]$ pacman -Qs vlc
local/vlc 3.0.16-3
Multi-platform MPEG, VCD/DVD, and DivX player
[study@study-virtualbox ~]$
-Ss 옵션과는 달리 -Qs 옵션은 시스템에 설치되어 있는 패키지만 검색됩니다.
따라서 굳이 [설치함] 또는 [installed] 표시가 나타나지 않습니다.
[study@study-virtualbox ~]$ pacman -Ss vlc
extra/phonon-qt5-vlc 0.11.3-1
Phonon VLC backend for Qt5
extra/vlc 3.0.16-3 [설치함]
Multi-platform MPEG, VCD/DVD, and DivX player
community/playerctl 2.3.1-1
mpris media player controller and lib for spotify, vlc, audacious, bmp,
xmms2, and others.
[study@study-virtualbox ~]$
-Ss 옵션을 사용하면 검색 범위가 저장소(동기화 데이터베이스)로 확대되기 떄문에 그중 시스템에 설치되어 있는 것은 따로 표시해 줄 필요가 있어 [설치함] 또는 [installed] 표시가 나타납니다.
파일 검색 데이터베이스 다운로드
[study@study-virtualbox ~]$ sudo pacman -Fy
[sudo] study 암호:
:: 꾸러미 데이터베이스 동기화 중...
core 935.3 KiB 1788 KiB/s 00:01 [######################] 100%
extra 9.3 MiB 5.94 MiB/s 00:02 [######################] 100%
community 23.6 MiB 4.89 MiB/s 00:05 [######################] 100%
[study@study-virtualbox ~]$
특정 파일을 소유 중인 패키지를 검색할 때 필요한 데이터베이스를 다운로드/갱신합니다.
이 작업을 통해 다운로드/갱신되는 데이터베이스는 일반 패키지 데이터베이스와 위치가 같습니다.
[study@study-virtualbox ~]$ ls -l /var/lib/pacman/sync
합계 42188
-rw-r--r-- 1 root root 5937572 8월 31 18:35 community.db
-rw-r--r-- 1 root root 24770865 9월 1 10:19 community.files
-rw-r--r-- 1 root root 139430 8월 31 18:05 core.db
-rw-r--r-- 1 root root 957710 8월 31 18:05 core.files
-rw-r--r-- 1 root root 1611004 8월 31 18:02 extra.db
-rw-r--r-- 1 root root 9770709 9월 1 07:30 extra.files
[study@study-virtualbox ~]$
위 예에서 확장자가 db로 끝나는 파일이 일반적으로 설치, 업그레이드 작업에 사용되는 패키지 데이터베이스라면,
확장자가 files로 끝나는 파일은 특정 파일을 포함하고 있는 패키지를 찾을 때 사용하는 파일 소유 검색 패키지 데이터베이스입니다.
저장소에서 특정 파일을 소유한 패키지를 검색
[study@study-virtualbox ~]$ pacman -F smplayer_ko.qm
community/smplayer 21.8.0-1
usr/share/smplayer/translations/smplayer_ko.qm
[study@study-virtualbox ~]$
지정한 파일을 소유한 패키지를 검색합니다.
[study@study-virtualbox ~]$ pacman -F tree
extra/tree 1.8.0-2 [설치함]
usr/bin/tree
community/sugar-activity-pippy 75-1 (sugar-fructose)
usr/share/sugar/activities/Pippy.activity/data/en/graphics/tree
[study@study-virtualbox ~]$
물론 동명의 파일을 서로 다른 패키지가 소유하는 경우도 있습니다.
특정 경로 파일을 소유한 패키지 검색
[study@study-virtualbox ~]$ sudo pacman -F /usr/bin/tree
usr/bin/tree는 extra/tree 1.8.0-2가 소유했습니다
[study@study-virtualbox ~]$
파일 검색 패키지 데이터베이스에 쿼리하여 특정 경로의 파일이 속하는 원격 패키지를 검색합니다.
지정 패키지가 소유한 디렉터리 및 파일 검색
[study@study-virtualbox ~]$ pacman -Fl smplayer
smplayer usr/
smplayer usr/bin/
smplayer usr/bin/simple_web_server
smplayer usr/bin/smplayer
smplayer usr/share/
smplayer usr/share/applications/
smplayer usr/share/applications/smplayer.desktop
smplayer usr/share/applications/smplayer_enqueue.desktop
smplayer usr/share/doc/
smplayer usr/share/doc/smplayer/
smplayer usr/share/doc/smplayer/Copying.txt
smplayer usr/share/doc/smplayer/Copying_BSD.txt
smplayer usr/share/doc/smplayer/Copying_libmaia.txt
smplayer usr/share/doc/smplayer/Copying_openssl.txt
smplayer usr/share/doc/smplayer/Install.txt
smplayer usr/share/doc/smplayer/Portable_Edition.txt
smplayer usr/share/doc/smplayer/Readme.txt
smplayer usr/share/doc/smplayer/Release_notes.md
smplayer usr/share/doc/smplayer/cs/
smplayer usr/share/doc/smplayer/cs/gpl.html
smplayer usr/share/doc/smplayer/de/
smplayer usr/share/doc/smplayer/de/gpl.html
smplayer usr/share/doc/smplayer/en/
smplayer usr/share/doc/smplayer/en/gpl.html
smplayer usr/share/doc/smplayer/es/
smplayer usr/share/doc/smplayer/es/gpl.html
smplayer usr/share/doc/smplayer/fr/
smplayer usr/share/doc/smplayer/fr/gpl.html
smplayer usr/share/doc/smplayer/hu/
smplayer usr/share/doc/smplayer/hu/gpl.html
smplayer usr/share/doc/smplayer/it/
smplayer usr/share/doc/smplayer/it/gpl.html
smplayer usr/share/doc/smplayer/ja/
smplayer usr/share/doc/smplayer/ja/gpl.html
smplayer usr/share/doc/smplayer/nl/
smplayer usr/share/doc/smplayer/nl/gpl.html
smplayer usr/share/doc/smplayer/ro/
smplayer usr/share/doc/smplayer/ro/gpl.html
smplayer usr/share/doc/smplayer/ru/
smplayer usr/share/doc/smplayer/ru/gpl.html
smplayer usr/share/doc/smplayer/zh_CN/
smplayer usr/share/doc/smplayer/zh_CN/gpl.html
smplayer usr/share/icons/
smplayer usr/share/icons/hicolor/
smplayer usr/share/icons/hicolor/128x128/
smplayer usr/share/icons/hicolor/128x128/apps/
smplayer usr/share/icons/hicolor/128x128/apps/smplayer.png
smplayer usr/share/icons/hicolor/16x16/
smplayer usr/share/icons/hicolor/16x16/apps/
smplayer usr/share/icons/hicolor/16x16/apps/smplayer.png
smplayer usr/share/icons/hicolor/192x192/
smplayer usr/share/icons/hicolor/192x192/apps/
smplayer usr/share/icons/hicolor/192x192/apps/smplayer.png
smplayer usr/share/icons/hicolor/22x22/
smplayer usr/share/icons/hicolor/22x22/apps/
smplayer usr/share/icons/hicolor/22x22/apps/smplayer.png
smplayer usr/share/icons/hicolor/256x256/
smplayer usr/share/icons/hicolor/256x256/apps/
smplayer usr/share/icons/hicolor/256x256/apps/smplayer.png
smplayer usr/share/icons/hicolor/32x32/
smplayer usr/share/icons/hicolor/32x32/apps/
smplayer usr/share/icons/hicolor/32x32/apps/smplayer.png
smplayer usr/share/icons/hicolor/512x512/
smplayer usr/share/icons/hicolor/512x512/apps/
smplayer usr/share/icons/hicolor/512x512/apps/smplayer.png
smplayer usr/share/icons/hicolor/64x64/
smplayer usr/share/icons/hicolor/64x64/apps/
smplayer usr/share/icons/hicolor/64x64/apps/smplayer.png
smplayer usr/share/icons/hicolor/scalable/
smplayer usr/share/icons/hicolor/scalable/apps/
smplayer usr/share/icons/hicolor/scalable/apps/smplayer.svg
smplayer usr/share/man/
smplayer usr/share/man/man1/
smplayer usr/share/man/man1/smplayer.1.gz
smplayer usr/share/metainfo/
smplayer usr/share/metainfo/smplayer.appdata.xml
smplayer usr/share/smplayer/
smplayer usr/share/smplayer/input.conf
smplayer usr/share/smplayer/shortcuts/
smplayer usr/share/smplayer/shortcuts/default.keys
smplayer usr/share/smplayer/shortcuts/euskara.keys
smplayer usr/share/smplayer/shortcuts/vlc.keys
smplayer usr/share/smplayer/translations/
smplayer usr/share/smplayer/translations/smplayer_am.qm
smplayer usr/share/smplayer/translations/smplayer_ar.qm
smplayer usr/share/smplayer/translations/smplayer_ar_SY.qm
smplayer usr/share/smplayer/translations/smplayer_bg.qm
smplayer usr/share/smplayer/translations/smplayer_ca.qm
smplayer usr/share/smplayer/translations/smplayer_cs.qm
smplayer usr/share/smplayer/translations/smplayer_da.qm
smplayer usr/share/smplayer/translations/smplayer_de.qm
smplayer usr/share/smplayer/translations/smplayer_el.qm
smplayer usr/share/smplayer/translations/smplayer_en.qm
smplayer usr/share/smplayer/translations/smplayer_en_GB.qm
smplayer usr/share/smplayer/translations/smplayer_en_US.qm
smplayer usr/share/smplayer/translations/smplayer_es.qm
smplayer usr/share/smplayer/translations/smplayer_es_ES.qm
smplayer usr/share/smplayer/translations/smplayer_et.qm
smplayer usr/share/smplayer/translations/smplayer_eu.qm
smplayer usr/share/smplayer/translations/smplayer_fa.qm
smplayer usr/share/smplayer/translations/smplayer_fi.qm
smplayer usr/share/smplayer/translations/smplayer_fr.qm
smplayer usr/share/smplayer/translations/smplayer_gl.qm
smplayer usr/share/smplayer/translations/smplayer_he_IL.qm
smplayer usr/share/smplayer/translations/smplayer_hr.qm
smplayer usr/share/smplayer/translations/smplayer_hu.qm
smplayer usr/share/smplayer/translations/smplayer_id.qm
smplayer usr/share/smplayer/translations/smplayer_it.qm
smplayer usr/share/smplayer/translations/smplayer_ja.qm
smplayer usr/share/smplayer/translations/smplayer_ka.qm
smplayer usr/share/smplayer/translations/smplayer_ko.qm
smplayer usr/share/smplayer/translations/smplayer_ku.qm
smplayer usr/share/smplayer/translations/smplayer_lt.qm
smplayer usr/share/smplayer/translations/smplayer_mk.qm
smplayer usr/share/smplayer/translations/smplayer_ms_MY.qm
smplayer usr/share/smplayer/translations/smplayer_nb_NO.qm
smplayer usr/share/smplayer/translations/smplayer_nl.qm
smplayer usr/share/smplayer/translations/smplayer_nn_NO.qm
smplayer usr/share/smplayer/translations/smplayer_pl.qm
smplayer usr/share/smplayer/translations/smplayer_pt.qm
smplayer usr/share/smplayer/translations/smplayer_pt_BR.qm
smplayer usr/share/smplayer/translations/smplayer_ro_RO.qm
smplayer usr/share/smplayer/translations/smplayer_ru_RU.qm
smplayer usr/share/smplayer/translations/smplayer_sk.qm
smplayer usr/share/smplayer/translations/smplayer_sl_SI.qm
smplayer usr/share/smplayer/translations/smplayer_sq_AL.qm
smplayer usr/share/smplayer/translations/smplayer_sr.qm
smplayer usr/share/smplayer/translations/smplayer_sv.qm
smplayer usr/share/smplayer/translations/smplayer_th.qm
smplayer usr/share/smplayer/translations/smplayer_tr.qm
smplayer usr/share/smplayer/translations/smplayer_uk_UA.qm
smplayer usr/share/smplayer/translations/smplayer_uz.qm
smplayer usr/share/smplayer/translations/smplayer_vi_VN.qm
smplayer usr/share/smplayer/translations/smplayer_zh_CN.qm
smplayer usr/share/smplayer/translations/smplayer_zh_TW.qm
[study@study-virtualbox ~]$
지정 패키지가 소유한 모든 디렉터리 및 파일을 나열합니다.
저장소 내 패키지 정보 확인
[study@study-virtualbox ~]$ pacman -Si smplayer
저장소 : community
이름 : smplayer
버전 : 21.8.0-1
설명 : Media player with built-in codecs that can play virtually
all video and audio formats
아키텍처 : x86_64
URL : https://www.smplayer.info/
라이선스 : GPL
모음들 : 없음
다음을 제공 : 없음
다음에 의존 : glibc qt5-script qt5-base mpv libx11 zlib gcc-libs
hicolor-icon-theme
선택 의존성 : smplayer-themes: icon themes collection
smplayer-skins: skin themes collection
smtube: browse and play youtube videos
youtube-dl: youtube videos and streaming
mplayer: alternative multimedia engine
다음과 충돌 : 없음
다음을 대체 : 없음
다운로드 크기 : 3.49 MiB
설치된 크기 : 15.52 MiB
꾸러미 만든이 : Caleb Maclennan <alerque@archlinux.org>
빌드 날짜 : 없음
유효검사자 : MD5 합 SHA-256 합 서명
[study@study-virtualbox ~]$
위와 같이 지정 패키지에 대한 일반적인 정보를 확인할 수 있습니다.
[study@study-virtualbox ~]$ pacman -Sii smplayer
저장소 : community
이름 : smplayer
버전 : 21.8.0-1
설명 : Media player with built-in codecs that can play virtually
all video and audio formats
아키텍처 : x86_64
URL : https://www.smplayer.info/
라이선스 : GPL
모음들 : 없음
다음을 제공 : 없음
다음에 의존 : glibc qt5-script qt5-base mpv libx11 zlib gcc-libs
hicolor-icon-theme
선택 의존성 : smplayer-themes: icon themes collection
smplayer-skins: skin themes collection
smtube: browse and play youtube videos
youtube-dl: youtube videos and streaming
mplayer: alternative multimedia engine
다음이 요구 : smplayer-skins smplayer-themes
다음의 선택 의존성 : smtube
다음과 충돌 : 없음
다음을 대체 : 없음
다운로드 크기 : 3.49 MiB
설치된 크기 : 15.52 MiB
꾸러미 만든이 : Caleb Maclennan <alerque@archlinux.org>
빌드 날짜 : 없음
MD5 합 : 3ef867ea9c6e85c9696cb632c2039233
SHA-256 합 : d7ff2e0a30ad28e8a780be391ff275443f43af5fcd6d91106807bdbb5d01fe9f
서명들 : A85E811EB4CA2E08
[study@study-virtualbox ~]$
-i 옵션을 두번 사용하면 위와 같이 보다 자세한 내용을 확인할 수 있습니다.
다음이 요구, 다음의 선택 의존성, MD5와 SHA-256 해시 정보, 서명 정보 등의 추가 정보를 확인할 수 있게 됩니다.
설치된 패키지들 중 해당 문자열 포함 패키지 검색
[study@study-virtualbox ~]$ sudo pacman -Q apache
apache 2.4.48-1
[study@study-virtualbox ~]$
설치된 패키지들 중 패키지명과 설명 안에 해당 문자열이 포함된 패키지를 검색합니다.
설치된 패키지의 정보 확인
[study@study-virtualbox ~]$ sudo pacman -Qi 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>
빌드 날짜 : 없음
설치 날짜 : 없음
설치 이유 : 명시적으로 설치했습니다
설치 스크립트 : 아니요
유효검사자 : 서명
[study@study-virtualbox ~]$
시스템에 설치된 패키지에 대한 일반적인 정보를 확인합니다.
[study@study-virtualbox ~]$ sudo 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 ~]$
-i 옵션을 두번 사용하면 위와 같이 PKGBUILD 파일에서 백업을 요구한 구성 파일과 해당 파일들의 수정 여부를 확인할 수 있습니다.
[study@study-virtualbox ~]$ pacman -Qii vlc
이름 : vlc
버전 : 3.0.16-3
설명 : Multi-platform MPEG, VCD/DVD, and DivX player
아키텍처 : x86_64
URL : https://www.videolan.org/vlc/
라이선스 : LGPL2.1 GPL2
모음들 : 없음
다음을 제공 : 없음
다음에 의존 : a52dec libdvbpsi libxpm libdca libproxy lua52 libidn
libmatroska taglib libmpcdec ffmpeg faad2 libmad
libmpeg2 xcb-util-keysyms libtar libxinerama libsecret
libupnp libixml.so=11-64 libupnp.so=17-64 libarchive
qt5-base qt5-x11extras qt5-svg freetype2 fribidi
harfbuzz fontconfig libxml2 gnutls libplacebo
wayland-protocols
선택 의존성 : 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 [설치함]
다음이 요구 : 없음
다음의 선택 의존성 : 없음
다음과 충돌 : vlc-plugin
다음을 대체 : vlc-plugin
설치된 크기 : 59.77 MiB
꾸러미 만든이 : Antonio Rojas <arojas@archlinux.org>
빌드 날짜 : 없음
설치 날짜 : 없음
설치 이유 : 명시적으로 설치했습니다
설치 스크립트 : 아니요
유효검사자 : 서명
백업 파일들 :
(없음)
[study@study-virtualbox ~]$
위는 또다른 예입니다.
설치된 패키지의 설치 디렉터리 및 파일 출력
[study@study-virtualbox ~]$ sudo pacman -Ql tree
tree /usr/
tree /usr/bin/
tree /usr/bin/tree
tree /usr/share/
tree /usr/share/man/
tree /usr/share/man/man1/
tree /usr/share/man/man1/tree.1.gz
[study@study-virtualbox ~]$
위와 같이 패키지별 설치 디렉터리와 파일의 경로를 확인할 수 있습니다.
패키지로 설치된 파일의 개수 확인
[study@study-virtualbox ~]$ sudo pacman -Qk mc
mc: 총 파일 갯수 456개, 빠진 파일 갯수 0개
[study@study-virtualbox ~]$
[study@study-virtualbox ~]$ sudo pacman -Qkk mc
mc: 총 파일 갯수 456개, 대체한 파일 0개
[study@study-virtualbox ~]$
-k 옵션을 한 번만 쓰면 해당 패키지의 총 개수와 설치에 빠진 파일 개수가 출력됩니다.
-k 옵션을 두 번 쓰면 해당 패키지의 총 개수와 대체한 파일 개수가 출력됩니다.
설치된 파일이 어떤 패키지에 포함되어 있는지 확인
[study@study-virtualbox ~]$ pacman -Qo /usr/bin/tree
/usr/bin/tree는 tree 1.8.0-2가 소유했습니다
[study@study-virtualbox ~]$
시스템 안에 존재하는 패키지 설치 파일이 어떤 패키지에 포함되어 있는지 출력합니다.
-F 옵션이 저장소를 기준으로 검색한다면 -Qo 옵션은 설치된 패키지를 기준으로 검색합니다.
더이상 불필요한 종속 패키지 나열
[study@study-virtualbox ~]$ pacman -Qdt
libopenaptx 0.2.0-1
python-isort 5.9.3-1
python-mccabe 0.6.1-9
rust 1:1.54.0-1
vulkan-headers 1:1.2.188-1
[study@study-virtualbox ~]$
더이상 쓰이지 않는 종속 패키지를 나열합니다.
명시적으로 설치된 패키지 목록 나열
[study@study-virtualbox ~]$ pacman -Qe
accerciser 3.38.0-2
autoconf 2.71-1
automake 1.16.4-1
baobab 40.0-1
base 2-2
bash-completion 2.11-2
binutils 2.36.1-3
- 생략 -
tree 1.8.0-2
vim 8.2.2891-1
vino 3.22.0+74+g7a95e10-1
vlc 3.0.16-3
which 2.21-5
xdg-user-dirs-gtk 0.10+9+g5b7efc6-3
yelp 40.3-1
[study@study-virtualbox ~]$
사용자가 직접 명시적으로 설치한 패키지들만 나열합니다.
비종속성 명시 설치 패키지 나열
[study@study-virtualbox ~]$ pacman -Qet
accerciser 3.38.0-2
baobab 40.0-1
base 2-2
bison 3.7.6-1
dconf-editor 3.38.3-1
- 생략 -
tree 1.8.0-2
vim 8.2.2891-1
vino 3.22.0+74+g7a95e10-1
vlc 3.0.16-3
xdg-user-dirs-gtk 0.10+9+g5b7efc6-3
[study@study-virtualbox ~]$
사용자가 직접 명시적으로 설치하고 다른 패키지에게 종속성으로 사용되지 않는 모든 패키지를 나열합니다.
상호 의존 관계 패키지 목록 나열
[study@study-virtualbox ~]$ pacman -Qd
a52dec 0.7.4-11
aalib 1.4rc5-14
accountsservice 0.6.55-3
acl 2.3.1-1
adobe-source-code-pro-fonts 2.038ro+1.058it+1.018var-1
adwaita-icon-theme 40.1.1-1
alsa-card-profiles 1:0.3.34-1
- 생략 -
zip 3.0-9
zita-alsa-pcmi 0.3.2-3
zita-resampler 1.8.0-1
zlib 1:1.2.11-4
zstd 1.5.0-1
zvbi 0.2.35-4
zxing-cpp 1.2.0-1
[study@study-virtualbox ~]$
의존성의 상호보완적인 목록은 위와 같이 보여질 수 있습니다.
다운로드 받은 패키지 캐시에 복사
[study@study-virtualbox ~]$ sudo pacman -U file:///path/to/package/package_name-version.pkg.tar.zst
활성화된 저장소가 아니라 시스템에 등록되지 않은 외 저장소 등에서 다운받은 패키지를 아치 캐시 디렉터리에 복사해 관리하는 명령입니다.
지난 시간에 외부에서 다운받은 패키지를 설치하는 방법을 설명하기 위해 사용한 예시 파일을 토대로 설명하도록 하겠습니다.
[study@study-virtualbox ~]$ cd Downloads
[study@study-virtualbox Downloads]$ ls
nimfsoft.asc tian-2021.08.11-1-x86_64.pkg.tar.zst
[study@study-virtualbox Downloads]$
위의 tian 패키지(tian-2021.08.11-1-x86_64.pkg.tar.zst)를 캐시 디렉터리에 복사해 보관하도록 하겠습니다.
[study@study-virtualbox Downloads]$ sudo pacman -U file:///home/study/Downloads/tian-2021.08.11-1-x86_64.pkg.tar.zst
:: 꾸러미 가져오는 중...
tian-2021.08.11-... 301.5 KiB 14.7 MiB/s 00:00 [######################] 100%
오류: 파일 'tian-2021.08.11-1-x86_64.pkg.tar.zst.sig'를 디스크에서 가져오는 데 실패 : Couldn't open file /home/study/Downloads/tian-2021.08.11-1-x86_64.pkg.tar.zst.sig
경고: 일부 파일을 가져오지 못했습니다.
[study@study-virtualbox Downloads]$
[study@study-virtualbox Downloads]$ sudo pacman -U file:///home/study/Downloads/tian-2021.08.11-1-x86_64.pkg.tar.zst
꾸러미 불러오는 중...
오류: '/var/cache/pacman/pkg/tian-2021.08.11-1-x86_64.pkg.tar.zst': 필요한 서명이 누락된 꾸러미
[study@study-virtualbox Downloads]$
tian 패키지의 경우 서명 파일이 존재하지 않아 위와 같은 오류 메시지를 출력합니다.
[study@study-virtualbox Downloads]$ ls /var/cache/pacman/pkg | grep tian
tian-2021.08.11-1-x86_64.pkg.tar.zst
[study@study-virtualbox Downloads]$
서명 파일이 없을 뿐 패키지 파일 자체는 존재함을 알 수 있습니다.
이번엔 정상적으로 패키지 파일과 서명 파일 모두 다운받았다고 가정해봅시다.
여기서는 캐시 디렉터리에 있는 wget 패키지와 그 서명 파일을 Downloads 파일에 복사하고 기존 캐시 디렉터리를 완전히 비운다음 복사한 wget 패키지를 다시 캐시 디렉터리에 복사해보도록 하겠습니다.
[study@study-virtualbox pkg]$ ls | grep wget
wget-1.21.1-1-x86_64.pkg.tar.zst
wget-1.21.1-1-x86_64.pkg.tar.zst.sig
[study@study-virtualbox pkg]$
pacman을 이용해 -Sw옵션으로 wget 패키지를 다운로드받거나 -S 옵션으로 설치 작업을 수행한 후 캐시 디렉터리
를 확인해보면 위와 같이 wget 패키지가 들어가 있음을 알 수 있습니다.
[study@study-virtualbox pkg]$ sudo cp wget-1.21.1-1-x86_64.pkg.tar.zst* ~/Downloads/
[sudo] study 암호:
[study@study-virtualbox pkg]$
위와 같이 wget 패키지를 ~/Downloads/ 디렉터리에 복사합니다.
[study@study-virtualbox pkg]$ sudo pacman -Scc
캐시 디렉터리: /var/cache/pacman/pkg/
:: 캐시에서 모든 파일을 제거하시겠습니까? [y/N] y
캐시에서 모든 파일 제거 중...
데이터베이스 디렉터리: /var/lib/pacman/
:: 사용하지 않는 저장소를 제거하시겠습니까? [Y/n]
사용하지 않는 동기화 저장소 제거 중...
[study@study-virtualbox pkg]$
그후 위처럼 캐시 디렉터리를 모두 비우도록 합시다.
[study@study-virtualbox pkg]$ ls -a
. ..
[study@study-virtualbox pkg]$
이제 캐시 디렉터리를 확인해보면 그 어떤 패키지 파일도 존재하지 않음을 확인할 수 있습니다.
[study@study-virtualbox pkg]$ cd ~/Downloads
[study@study-virtualbox Downloads]$ ls
nimfsoft.asc wget-1.21.1-1-x86_64.pkg.tar.zst
tian-2021.08.11-1-x86_64.pkg.tar.zst wget-1.21.1-1-x86_64.pkg.tar.zst.sig
[study@study-virtualbox Downloads]$
~/Downloads/ 디렉터리에는 wget 패키지가 잘 보관되어 있습니다.
[study@study-virtualbox Downloads]$ sudo pacman -U file:///home/study/Downloads/wget-1.21.1-1-x86_64.pkg.tar.zst
:: 꾸러미 가져오는 중...
wget-1.21.1-1-x86_64 740.9 KiB 724 MiB/s 00:00 [######################] 100%
꾸러미 불러오는 중...
경고: wget-1.21.1-1는 최신 버전입니다. -- 재설치
의존성 해결 중...
꾸러미 충돌을 찾는 중...
꾸러미 (1) wget-1.21.1-1
총 설치 크기: 2.99 MiB
알짜 업그레이드 크기: 0.00 MiB
:: 설치를 진행하시겠습니까? [Y/n] n
[study@study-virtualbox Downloads]$
이제 '$ sudo pacman -U file://패키지 파일 경로(/로 시작)'를 실행해줍니다.
그러면 위처럼 패키지 설치 작업이 진행됩니다.
우리는 패키지 설치 작업이 아니라 캐시 디렉터리에 패키지 복제 작업만 하고자 하는 것이므로 설치 진행 여부 질문에서 n을 입력하고 엔터키를 눌러줍니다.
[study@study-virtualbox Downloads]$ ls /var/cache/pacman/pkg
wget-1.21.1-1-x86_64.pkg.tar.zst wget-1.21.1-1-x86_64.pkg.tar.zst.sig
[study@study-virtualbox Downloads]$
캐시 디렉터리를 다시 확인해보면 wget 패키지가 잘 복사된 것을 확인할 수 있습니다.
패키지 설치 이유(설치 방식) 변경
[study@study-virtualbox ~]$ pacman -Qi tree
이름 : tree
버전 : 1.8.0-2
설명 : A directory listing program displaying a depth indented
list of files
아키텍처 : x86_64
URL : http://mama.indstate.edu/users/ice/tree/
라이선스 : GPL
모음들 : 없음
다음을 제공 : 없음
다음에 의존 : glibc
선택 의존성 : 없음
다음이 요구 : 없음
다음의 선택 의존성 : 없음
다음과 충돌 : 없음
다음을 대체 : 없음
설치된 크기 : 92.44 KiB
꾸러미 만든이 : Jelle van der Waa <jelle@archlinux.org>
빌드 날짜 : 없음
설치 날짜 : 없음
설치 이유 : 명시적으로 설치했습니다
설치 스크립트 : 아니요
유효검사자 : 서명
[study@study-virtualbox ~]$
pacman으로 패키지를 지정하여 설치한 후 설치 패키지 정보를 질의하면 위와 같이 출력됩니다.
이때 설치 이유 항목을 보면 '명시적으로 설치했습니다'라고 표시되는 것을 볼 수 있습니다.
[study@study-virtualbox ~]$ pacman -Qi tree | grep '설치 이유'
설치 이유 : 명시적으로 설치했습니다
[study@study-virtualbox ~]$
설치 이유만 보고 싶으면 위처럼 명령을 실행하시면 됩니다.
[study@study-virtualbox ~]$ sudo pacman -D --asdeps tree
tree: 설치 이유를 '의존성 요소로 설치'로 설정했습니다
[study@study-virtualbox ~]$
어찌되었든 명시적으로 설치했던 패키지를 종속 패키지로 설치한 것으로 설정하려면 위처럼 실행하시면 됩니다.
[study@study-virtualbox ~]$ pacman -Qi tree | grep '설치 이유'
설치 이유 : 다른 꾸러미의 의존 요소로 설치했습니다
[study@study-virtualbox ~]$
$ pacman -Qi 명령ㅇㄹ 위처럼 실행하면 설치 이유가 위처럼 바뀐 것을 확인할 수 있습니다.
반대로 종속 패키지로 설치된 패키지를 사용자가 명시적으로 직접 지정 설치한 것으로 설정하려면 --asexplicit 옵션을 사용하시면 됩니다.