9.2. 패키지 작업
yum을 사용하면 패키지 검색, 정보 보기, 설치 및 제거를 비롯하여 소프트웨어 패키지로 전체 작업 세트를 수행할 수 있습니다.
9.2.1. 패키지 검색
다음 명령을 사용하여 모든 RPM 패키지 이름, 설명 및 요약을 검색할 수 있습니다.
yum
search
term…
검색할 패키지 이름으로 용어를 바꿉니다.
예 9.4. 특정 문자열과 일치하는 패키지 검색
"vim", "gvim" 또는 "emacs"와 일치하는 모든 패키지를 나열하려면 다음을 입력합니다.
~]$ yum search vim gvim emacs Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager ============================= N/S matched: vim ============================== vim-X11.x86_64 : The VIM version of the vi editor for the X Window System vim-common.x86_64 : The common files needed by any version of the VIM editor [output truncated] ============================ N/S matched: emacs ============================= emacs.x86_64 : GNU Emacs text editor emacs-auctex.noarch : Enhanced TeX modes for Emacs [output truncated] Name and summary matches mostly, use "search all" for everything. Warning: No matches found for: gvim
yum search
명령은 이름을 모르는 패키지를 검색하는 데 유용하지만 관련 용어를 알고 있는 경우 유용합니다. 기본적으로 yum search
는 패키지 이름과 요약의 일치를 반환하므로 검색이 더 빨라집니다. yum search all
명령을 사용하여 더 완전하지만 느린 검색을 사용합니다.
결과 필터링
yum의 모든 list 명령을 사용하면 하나 이상의 glob 표현식 을 인수로 추가하여 결과를 필터링할 수 있습니다. glob 표현식은 와일드카드 문자 *
(모든 문자 하위 집합과 일치하도록 확장됨)과 (단일 문자와 일치하도록 확장됨) 중 하나 이상의 문자를 포함하는 일반적인 문자 문자열입니다.
glob 표현식을 yum
명령에 인수로 전달할 때 이스케이프해야 합니다. 그러지 않으면 Bash 쉘은 이러한 표현식을 경로 이름 확장 으로 해석하고 현재 디렉터리의 모든 파일을 yum
에 전달할 가능성이 있습니다. glob 표현식이 의도한 대로 yum
에 전달되도록 하려면 다음 방법 중 하나를 사용합니다.
- 뒤에 백슬래시 문자를 사용하여 와일드카드 문자 이스케이프
- 전체 글러그 표현식을 두 번 따옴표로 묶거나 한 번 따옴표로 묶습니다.
다음 섹션의 예제에서는 이 두 방법을 모두 사용하는 방법을 보여줍니다.
9.2.2. 패키지 나열
설치 및 사용 가능한 모든 패키지에 대한 정보를 나열하려면 쉘 프롬프트에서 다음을 입력합니다.
yum
list
all
삽입된 glob 표현식 과 일치하는 설치 및 사용 가능한 패키지를 나열하려면 다음 명령을 사용합니다.
yum list glob_expression…
예 9.5. ABRT 관련 패키지 나열
다양한 ABRT 애드온과 플러그인이 있는 패키지는 "abrt-addon-" 또는 "abrt-plugin-"로 시작합니다. 이러한 패키지를 나열하려면 쉘 프롬프트에서 다음 명령을 입력합니다. 와일드카드 문자를 백슬래시 문자로 이스케이프하는 방법에 유의하십시오.
~]$ yum list abrt-addon\* abrt-plugin\* Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager Installed Packages abrt-addon-ccpp.x86_64 2.1.11-35.el7 @rhel-7-server-rpms abrt-addon-kerneloops.x86_64 2.1.11-35.el7 @rhel-7-server-rpms abrt-addon-pstoreoops.x86_64 2.1.11-35.el7 @rhel-7-server-rpms abrt-addon-python.x86_64 2.1.11-35.el7 @rhel-7-server-rpms abrt-addon-vmcore.x86_64 2.1.11-35.el7 @rhel-7-server-rpms abrt-addon-xorg.x86_64 2.1.11-35.el7 @rhel-7-server-rpms
시스템에 설치된 모든 패키지를 나열하려면 installed
키워드를 사용합니다. 출력의 오른쪽 열에는 패키지가 검색된 리포지토리가 나열됩니다.
yum list installed glob_expression…
예 9.6. 설치된 모든 versions of theoctets 패키지 나열
다음 예제에서는 "krb"로 시작하고 정확히 하나의 문자와 하이픈으로 시작하는 설치된 모든 패키지를 나열하는 방법을 보여줍니다. 이는 특정 구성 요소의 모든 버전을 숫자로 구분하므로 나열하려는 경우에 유용합니다. 적절한 처리를 위해 전체 글러그 표현식이 인용됩니다.
~]$ yum list installed "krb?-*" Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager Installed Packages krb5-libs.x86_64 1.13.2-10.el7 @rhel-7-server-rpms
설치할 수 있는 활성화된 모든 리포지토리의 패키지를 모두 나열하려면 다음 형식으로 명령을 사용합니다.
yum list available glob_expression…
예 9.7. 사용 가능한 gstreamer 플러그인 나열
예를 들어 "gstreamer"가 포함된 이름이 있는 사용 가능한 패키지를 모두 나열한 다음 "plugin"을 실행하려면 다음 명령을 실행합니다.
~]$ yum list available gstreamer*plugin\* Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager Available Packages gstreamer-plugins-bad-free.i686 0.10.23-20.el7 rhel-7-server-rpms gstreamer-plugins-base.i686 0.10.36-10.el7 rhel-7-server-rpms gstreamer-plugins-good.i686 0.10.31-11.el7 rhel-7-server-rpms gstreamer1-plugins-bad-free.i686 1.4.5-3.el7 rhel-7-server-rpms gstreamer1-plugins-base.i686 1.4.5-2.el7 rhel-7-server-rpms gstreamer1-plugins-base-devel.i686 1.4.5-2.el7 rhel-7-server-rpms gstreamer1-plugins-base-devel.x86_64 1.4.5-2.el7 rhel-7-server-rpms gstreamer1-plugins-good.i686 1.4.5-2.el7 rhel-7-server-rpms
리포지토리 나열
시스템에서 활성화된 각 리포지토리의 리포지토리 ID, 이름 및 수를 나열하려면 다음 명령을 사용하십시오.
yum
repolist
이러한 리포지토리에 대한 자세한 정보를 나열하려면 -v
옵션을 추가합니다. 이 옵션을 활성화하면 파일 이름, 전체 크기, 마지막 업데이트의 날짜, 나열된 각 리포지토리에 대한 기본 URL을 포함한 정보가 표시됩니다. 또는 동일한 출력을 생성하는 repoinfo
명령을 사용할 수 있습니다.
yum
repolist
-v
yum
repoinfo
활성화된 리포지토리와 비활성화된 리포지토리를 모두 나열하려면 다음 명령을 사용합니다. 사용 가능한 리포지토리를 표시하도록 출력 목록에 상태 열이 추가됩니다.
yum
repolist
all
비활성화
를 첫 번째 인수로 전달하면 명령 출력을 비활성화 리포지토리로 줄일 수 있습니다. 추가 사양의 경우 ID 또는 리포지토리 이름 또는 관련 glob_expressions를 인수로 전달할 수 있습니다. 리포지토리 ID 또는 이름과 삽입된 인수 사이에 정확히 일치하는 경우 이 리포지토리는 활성화 또는 비활성화 필터를 전달하지 않는 경우에도 나열됩니다.
9.2.3. 패키지 정보 표시
하나 이상의 패키지에 대한 정보를 표시하려면 다음 명령을 사용합니다(glob 표현식은 여기에서도 유효합니다).
yum info package_name…
package_name 을 패키지 이름으로 바꿉니다.
예 9.8. abrt 패키지에 대한 정보 표시
abrt 패키지에 대한 정보를 표시하려면 다음을 입력합니다.
~]$ yum info abrt Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager Installed Packages Name : abrt Arch : x86_64 Version : 2.1.11 Release : 35.el7 Size : 2.3 M Repo : installed From repo : rhel-7-server-rpms Summary : Automatic bug detection and reporting tool URL : https://fedorahosted.org/abrt/ License : GPLv2+ Description : abrt is a tool to help users to detect defects in applications and : to create a bug report with all information needed by maintainer to fix : it. It uses plugin system to extend its functionality.
yum info package_name
명령은 rpm -q --info package_name
명령과 유사하지만 RPM 패키지가 설치된 yum 리포지토리의 이름(출력에서 리포지토리 :
줄 검색)을 추가로 제공합니다.
yumdb 사용
다음 명령을 사용하여 패키지에 대한 대체 및 유용한 정보를 위해 yum 데이터베이스를 쿼리할 수도 있습니다.
yumdb info package_name
이 명령은 패키지의 검사 합계(및 SHA-256 등 이를 생성하는 데 사용되는 알고리즘), 패키지를 설치하기 위해 호출된 명령줄에 제공된 명령(있는 경우) 및 시스템에 패키지가 설치된 이유를 나타내는 이유(사용자가 사용자가
설치되었음을 나타내고 depp는 종속성으로 제공됨)를 포함하여 패키지에 대한 추가 정보를 제공합니다.
예 9.9. yum package에 대한 정보를 위해 yumdb 쿼리
yum 패키지에 대한 추가 정보를 표시하려면 다음을 입력합니다.
~]$ yumdb info yum Loaded plugins: langpacks, product-id yum-3.4.3-132.el7.noarch changed_by = 1000 checksum_data = a9d0510e2ff0d04d04476c693c0313a11379053928efd29561f9a837b3d9eb02 checksum_type = sha256 command_line = upgrade from_repo = rhel-7-server-rpms from_repo_revision = 1449144806 from_repo_timestamp = 1449144805 installed_by = 4294967295 origin_url = https://cdn.redhat.com/content/dist/rhel/server/7/7Server/x86_64/os/Packages/yum-3.4.3-132.el7.noarch.rpm reason = user releasever = 7Server var_uuid = 147a7d49-b60a-429f-8d8f-3edb6ce6f4a1
yumdb
명령에 대한 자세한 내용은 yumdb(8) 매뉴얼 페이지를 참조하십시오.
9.2.4. 패키지 설치
단일 패키지 및 모든 패키지가 설치되지 않은 종속 항목을 설치하려면 root
로 다음 형식으로 명령을 입력합니다.
yum install package_name
해당 이름을 인수로 추가하여 여러 패키지를 동시에 설치할 수도 있습니다. 이 작업을 수행하려면 root
로 입력합니다.
yum install package_name package_name…
AMD64 또는 Intel 64 시스템과 같은 멀티lib 시스템에 패키지를 설치하는 경우 패키지 이름에 .arch 를 추가하여 패키지의 아키텍처를 지정할 수 있습니다.
yum install package_name.arch
예 9.10. multilib 시스템에 패키지 설치
i686
아키텍처에 대한 sqlite 패키지를 설치하려면 다음을 입력합니다.
~]# yum install sqlite.i686
glob 표현식을 사용하여 유사한 여러 개의 이름이 지정된 패키지를 빠르게 설치할 수 있습니다. root
로 실행:
yum install glob_expression…
예 9.11. 모든 무의식 플러그인 설치
전역 표현식은 비슷한 이름으로 여러 패키지를 설치하려는 경우에 유용합니다. 모든 무의식 플러그인을 설치하려면 다음 형식으로 명령을 사용합니다.
~]# yum install audacious-plugins-\*
패키지 이름 및 와일드카드 식 외에도 yum install
에 파일 이름을 제공할 수도 있습니다. 설치하려는 바이너리의 이름을 알고 있지만 패키지 이름은 아닌 경우 yum install
경로 이름을 지정할 수 있습니다. 루트
로서 다음을 입력합니다.
yum install /usr/sbin/named
그런 다음 yum은 패키지 목록을 검색하고 /usr/sbin/named
(있는 경우)를 제공하고 설치 여부를 묻는 메시지를 표시합니다.
위의 예에서 볼 수 있듯이 yum install
명령에는 엄격하게 정의된 인수가 필요하지 않습니다. 이를 통해 다양한 패키지 이름 및 글러그 표현식을 처리할 수 있으므로 사용자가 더 쉽게 설치할 수 있습니다. 반면 yum은 특히 많은 수의 패키지를 지정하는 경우 yum 이 입력을 올바르게 구문 분석할 때까지 약간의 시간이 걸립니다. 패키지 검색을 최적화하려면 다음 명령을 사용하여 인수를 구문 분석하는 방법을 명시적으로 정의할 수 있습니다.
yum install-n
name
yum install-na
name.architecture
yum install-nevra
name-epoch:version-release.architecture
install-n
를 사용하여yum 은 이름을 패키지의 정확한 이름으로 해석합니다. install-na
명령은 yum 에 패키지 이름과 아키텍처가 점 문자로 구분되어 있음을 알려줍니다. install-nevra
를 사용하면yum 은 name-epoch:version-release.architecture 형식의 인수를 예상합니다. 마찬가지로 제거할 패키지를 검색할 때 yum remove-n
,yum remove-na
, yum remove-nevra
를 사용할 수 있습니다.
이름이 지정된
바이너리가 포함된 패키지를 설치하려고 하지만 파일이 설치된 bin/
또는 sbin/
디렉터리에 대해서는 yum provides
명령을 glob 표현식과 함께 사용하십시오.
~]# yum provides "*bin/named" Loaded plugins: langpacks, product-id, search-disabled-repos, subscription- : manager 32:bind-9.9.4-14.el7.x86_64 : The Berkeley Internet Name Domain (BIND) DNS : (Domain Name System) server Repo : rhel-7-server-rpms Matched from: Filename : /usr/sbin/named
yum은 "*/file_name"
은 file_name 이 포함된 패키지를 찾는 데 유용한 방법입니다.
예 9.12. 설치 프로세스
다음 예제는 yum 을 사용하여 설치 개요를 보여줍니다. 최신 버전의 httpd 패키지를 다운로드하여 설치하려면 root
로 실행합니다.
~]# yum install httpd Loaded plugins: langpacks, product-id, subscription-manager Resolving Dependencies --> Running transaction check ---> Package httpd.x86_64 0:2.4.6-12.el7 will be updated ---> Package httpd.x86_64 0:2.4.6-13.el7 will be an update --> Processing Dependency: 2.4.6-13.el7 for package: httpd-2.4.6-13.el7.x86_64 --> Running transaction check ---> Package httpd-tools.x86_64 0:2.4.6-12.el7 will be updated ---> Package httpd-tools.x86_64 0:2.4.6-13.el7 will be an update --> Finished Dependency Resolution Dependencies Resolved
위의 명령을 실행한 후 yum 은 필요한 플러그인을 로드하고 트랜잭션 검사를 실행합니다. 이 경우 httpd 가 이미 설치되어 있습니다. 설치된 패키지가 현재 사용 가능한 최신 버전보다 오래되었으므로 업데이트됩니다. httpd가 사용하는 httpd-tools 패키지에도 동일하게 적용됩니다. 그러면 트랜잭션 요약이 표시됩니다.
================================================================================ Package Arch Version Repository Size ================================================================================ Updating: httpd x86_64 2.4.6-13.el7 rhel-x86_64-server-7 1.2 M Updating for dependencies: httpd-tools x86_64 2.4.6-13.el7 rhel-x86_64-server-7 77 k Transaction Summary ================================================================================ Upgrade 1 Package (+1 Dependent package) Total size: 1.2 M Is this ok [y/d/N]:
이 단계에서 yum 은 설치를 확인하라는 메시지를 표시합니다. y
(yes) 및 N
(no) 옵션 외에도 d
(download only)를 선택하여 패키지를 다운로드하지만 직접 설치할 수는 없습니다. y
를 선택하면 설치가 성공적으로 완료될 때까지 다음 메시지로 진행됩니다.
Downloading packages: Running transaction check Running transaction test Transaction test succeeded Running transaction Updating : httpd-tools-2.4.6-13.el7.x86_64 1/4 Updating : httpd-2.4.6-13.el7.x86_64 2/4 Cleanup : httpd-2.4.6-12.el7.x86_64 3/4 Cleanup : httpd-tools-2.4.6-12.el7.x86_64 4/4 Verifying : httpd-2.4.6-13.el7.x86_64 1/4 Verifying : httpd-tools-2.4.6-13.el7.x86_64 2/4 Verifying : httpd-tools-2.4.6-12.el7.x86_64 3/4 Verifying : httpd-2.4.6-12.el7.x86_64 4/4 Updated: httpd.x86_64 0:2.4.6-13.el7 Dependency Updated: httpd-tools.x86_64 0:2.4.6-13.el7 Complete!
시스템에서 로컬 디렉터리에서 이전에 다운로드한 패키지를 설치하려면 다음 명령을 사용합니다.
yum localinstall
path
경로를 설치하려는 패키지의 경로로 바꿉니다.
9.2.5. 패키지 다운로드
예 9.12. “설치 프로세스” 에 표시된 대로 설치 프로세스의 특정 시점에서 다음 메시지와 함께 설치를 확인하라는 메시지가 표시됩니다.
... Total size: 1.2 M Is this ok [y/d/N]: ...
d
옵션을 사용하면 yum이 패키지를 즉시 설치하지 않고 다운로드합니다. yum localinstall
명령을 사용하여 나중에 오프라인에서 이러한 패키지를 설치하거나 다른 장치와 공유할 수 있습니다. 다운로드한 패키지는 기본적으로 /var/cache/yum/$basearch/$releasever/packages/
.에 의해 캐시 디렉터리의 하위 디렉터리 중 하나에 저장됩니다. 다운로드는 다른 작업에 병렬로 yum 을 사용할 수 있도록 백그라운드 모드로 진행됩니다.
9.2.6. 패키지 제거
패키지 설치와 마찬가지로 yum을 사용하면 해당 패키지를 제거할 수 있습니다. 특정 패키지와 종속된 패키지를 제거하려면 root
로 다음 명령을 실행합니다.
yum remove package_name…
여러 패키지를 설치할 때 명령에 패키지 이름을 추가하여 한 번에 여러 패키지를 제거할 수 있습니다.
예 9.13. 여러 패키지 제거
totem 을 제거하려면 쉘 프롬프트에서 다음을 입력합니다.
~]# yum remove totem
install
과 유사하게remove
는 다음 인수를 사용할 수 있습니다.
- 패키지 이름
- glob 표현식
- 파일 목록
- 패키지는 제공
yum은 패키지가 종속된 패키지도 제거하지 않고 패키지를 제거할 수 없습니다. RPM 에서만 수행할 수 있는 이러한 유형의 작업은 권장되지 않으며 시스템이 작동하지 않거나 애플리케이션이 제대로 작동하지 않거나 중단될 수 있습니다.