Linux 패키지 관리를 위한 20가지 YUM 명령
이 문서에서는 YUM(Yellowdog Updater Modified) 도구를 사용하여 Linux 시스템에서 패키지를 설치, 업데이트, 제거, 검색하고 관리하는 방법에 대해 설명합니다. Strong>RedHat.
이 문서에 표시된 예제 명령은 RHEL 8 서버에서 실제로 테스트되었습니다. 이러한 자료를 연구 목적, RHEL 인증 또는 새 패키지를 설치하고 시스템을 최신 상태로 유지하는 방법을 탐색하는 데 사용할 수 있습니다.
이 문서의 기본 요구 사항은 명령에 대한 기본적인 이해와 아래 나열된 모든 명령을 탐색하고 연습할 수 있는 Linux 운영 체제가 있어야 한다는 것입니다.
YUM은 무엇인가요?
YUM(Yellowdog Updater 수정됨)은 오픈 소스 명령줄이자 RPM(용 그래픽 기반 패키지 관리 도구)입니다. RedHat 패키지 관리자) 기반 Linux 시스템.
이를 통해 사용자와 시스템 관리자는 시스템에서 소프트웨어 패키지를 쉽게 설치, 업데이트, 제거 또는 검색할 수 있습니다. GPL(일반 공중 라이선스)에 따라 Seth Vidal이 오픈 소스로 개발 및 출시했습니다. 즉, 누구나 다운로드할 수 있습니다. 코드에 액세스하여 버그를 수정하고 맞춤형 패키지를 개발할 수 있습니다.
YUM은 다양한 타사 저장소를 사용하여 종속성 문제를 해결함으로써 패키지를 자동으로 설치합니다.
업데이트: yum 명령은 yum의 차세대 버전이자 다음 명령을 대체하는 것으로 간주되는 dnf 명령으로 대체됩니다. 최신 RPM 기반 배포판의 YUM.
1. YUM으로 패키지 설치
Firefox라는 패키지를 설치하려면 아래 명령을 실행하면 Firefox에 필요한 모든 종속성을 자동으로 찾아서 설치합니다.
yum install firefox
Loaded plugins: fastestmirror
Dependencies Resolved
================================================================================================
Package Arch Version Repository Size
================================================================================================
Updating:
firefox i686 10.0.6-1.el6.centos updates 20 M
Updating for dependencies:
xulrunner i686 10.0.6-1.el6.centos updates 12 M
Transaction Summary
================================================================================================
Install 0 Package(s)
Upgrade 2 Package(s)
Total download size: 32 M
Is this ok [y/N]: y
Downloading Packages:
(1/2): firefox-10.0.6-1.el6.centos.i686.rpm | 20 MB 01:10
(2/2): xulrunner-10.0.6-1.el6.centos.i686.rpm | 12 MB 00:52
------------------------------------------------------------------------------------------------
Total 63 kB/s | 32 MB 02:04
Updated:
firefox.i686 0:10.0.6-1.el6.centos
Dependency Updated:
xulrunner.i686 0:10.0.6-1.el6.centos
Complete!
위 명령은 시스템에 패키지를 설치하기 전에 확인을 요청합니다. 확인 요청 없이 자동으로 패키지를 설치하려면 아래 예와 같이 -y
옵션을 사용하세요.
yum -y install firefox
2. YUM을 사용하여 패키지 제거
모든 종속성이 포함된 패키지를 완전히 제거하려면 아래와 같이 다음 명령을 실행하면 됩니다.
yum remove firefox
Loaded plugins: fastestmirror
Setting up Remove Process
Resolving Dependencies
--> Running transaction check
---> Package firefox.i686 0:10.0.6-1.el6.centos set to be erased
--> Finished Dependency Resolution
Dependencies Resolved
====================================================================================================
Package Arch Version Repository Size
====================================================================================================
Removing:
firefox i686 10.0.6-1.el6.centos @updates 23 M
Transaction Summary
====================================================================================================
Remove 1 Package(s)
Reinstall 0 Package(s)
Downgrade 0 Package(s)
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Erasing : firefox-10.0.6-1.el6.centos.i686 1/1
Removed:
firefox.i686 0:10.0.6-1.el6.centos
Complete!
같은 방식으로 위 명령은 패키지를 제거하기 전에 확인을 요청합니다. 확인 메시지를 비활성화하려면 아래와 같이 -y
옵션을 추가하면 됩니다.
yum -y remove firefox
3. YUM을 사용하여 패키지 업데이트
오래된 버전의 MySQL 패키지가 있고 이를 최신 안정 버전으로 업데이트하고 싶다고 가정해 보겠습니다. 다음 명령을 실행하면 모든 종속성 문제가 자동으로 해결되고 설치됩니다.
yum update mysql
Loaded plugins: fastestmirror
Dependencies Resolved
============================================================================================================
Package Arch Version Repository Size
============================================================================================================
Updating:
vsftpd i386 2.0.5-24.el5_8.1 updates 144 k
Transaction Summary
============================================================================================================
Install 0 Package(s)
Upgrade 1 Package(s)
Total size: 144 k
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Updating : vsftpd 1/2
Cleanup : vsftpd 2/2
Updated:
vsftpd.i386 0:2.0.5-24.el5_8.1
Complete!
4. YUM을 사용하여 패키지 나열
이름으로 특정 패키지를 검색하려면 list 기능을 사용하세요. 예를 들어 OpenSSH라는 패키지를 검색하려면 다음 명령을 사용하세요.
yum list openssh
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.neu.edu.cn
* epel: mirror.neu.edu.cn
* extras: mirror.neu.edu.cn
* rpmforge: mirror.nl.leaseweb.net
* updates: mirror.nus.edu.sg
Installed Packages
openssh.i386 4.3p2-72.el5_6.3 installed
Available Packages 4.3p2-82.el5 base
더 정확하게 검색하려면 알고 있는 경우 해당 버전으로 패키지 이름을 정의하십시오. 예를 들어 패키지의 특정 버전 OpenSSH-4.3p2을 검색하려면 다음 명령을 사용합니다.
yum list openssh-4.3p2
5. YUM을 사용하여 패키지 검색
패키지의 정확한 이름이 기억나지 않으면 검색 기능을 사용하여 지정한 패키지 이름과 일치하는 사용 가능한 모든 패키지를 검색하세요. 예를 들어, 단어와 일치하는 모든 패키지를 검색합니다.
yum search vsftpd
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.neu.edu.cn
* epel: mirror.neu.edu.cn
* extras: mirror.neu.edu.cn
* rpmforge: mirror.nl.leaseweb.net
* updates: ftp.iitm.ac.in
============================== Matched: vsftpd ========================
ccze.i386 : A robust log colorizer
pure-ftpd-selinux.i386 : SELinux support for Pure-FTPD
vsftpd.i386 : vsftpd - Very Secure Ftp Daemon
6. YUM을 사용하여 패키지에 대한 정보 얻기
패키지를 설치하기 전에 패키지에 대한 정보를 알고 싶다고 가정해 보겠습니다. 패키지에 대한 정보를 얻으려면 아래 명령을 실행하십시오.
yum info firefox
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.neu.edu.cn
* epel: mirror.neu.edu.cn
* extras: mirror.neu.edu.cn
* rpmforge: mirror.nl.leaseweb.net
* updates: ftp.iitm.ac.in
Available Packages
Name : firefox
Arch : i386
Version : 10.0.6
Release : 1.el5.centos
Size : 20 M
Repo : updates
Summary : Mozilla Firefox Web browser
URL : http://www.mozilla.org/projects/firefox/
License : MPLv1.1 or GPLv2+ or LGPLv2+
Description: Mozilla Firefox is an open-source web browser, designed for standards
: compliance, performance and portability.
7. YUM을 사용하여 사용 가능한 모든 패키지 나열
Yum 데이터베이스에서 사용 가능한 모든 패키지를 나열하려면 아래 명령을 사용하십시오.
yum list | less
8. YUM을 사용하여 설치된 모든 패키지 나열
시스템에 설치된 모든 패키지를 나열하려면 아래 명령을 실행하면 설치된 모든 패키지가 표시됩니다.
yum list installed | less
9. Yum은 기능을 제공합니다
Yum 제공 기능은 특정 파일이 속한 패키지를 찾는 데 사용됩니다. 예를 들어 /etc/httpd/conf/httpd.conf가 포함된 패키지 이름을 알고 싶은 경우입니다.
yum provides /etc/httpd/conf/httpd.conf
Loaded plugins: fastestmirror
httpd-2.2.3-63.el5.centos.i386 : Apache HTTP Server
Repo : base
Matched from:
Filename : /etc/httpd/conf/httpd.conf
httpd-2.2.3-63.el5.centos.1.i386 : Apache HTTP Server
Repo : updates
Matched from:
Filename : /etc/httpd/conf/httpd.conf
httpd-2.2.3-65.el5.centos.i386 : Apache HTTP Server
Repo : updates
Matched from:
Filename : /etc/httpd/conf/httpd.conf
httpd-2.2.3-53.el5.centos.1.i386 : Apache HTTP Server
Repo : installed
Matched from:
Other : Provides-match: /etc/httpd/conf/httpd.conf
10. Yum을 사용하여 사용 가능한 업데이트 확인
시스템에 설치된 패키지 중 사용 가능한 업데이트가 몇 개 있는지 확인하려면 다음 명령을 사용하십시오.
yum check-update
11. Yum을 사용하여 시스템 업데이트
모든 보안 및 바이너리 패키지 업데이트로 시스템을 최신 상태로 유지하려면 다음 명령을 실행하십시오. 시스템에 모든 최신 패치와 보안 업데이트가 설치됩니다.
yum update
12. 사용 가능한 모든 그룹 패키지 나열
Linux에서는 여러 패키지가 특정 그룹에 번들로 제공됩니다. yum을 사용하여 개별 패키지를 설치하는 대신 그룹에 속하는 모든 관련 패키지를 설치하는 특정 그룹을 설치할 수 있습니다. 예를 들어 사용 가능한 모든 그룹을 나열하려면 다음 명령을 실행하면 됩니다.
yum grouplist
Installed Groups:
Administration Tools
DNS Name Server
Dialup Networking Support
Editors
Engineering and Scientific
FTP Server
Graphics
Java Development
Legacy Network Server
Available Groups:
Authoring and Publishing
Base
Beagle
Cluster Storage
Clustering
Development Libraries
Development Tools
Eclipse
Educational Software
KDE (K Desktop Environment)
KDE Software Development
13. 그룹 패키지 설치
특정 패키지 그룹을 설치하려면 groupinstall 옵션을 사용합니다. 예를 들어, "MySQL Database"를 설치하려면 아래 명령을 실행하면 됩니다.
yum groupinstall 'MySQL Database'
Dependencies Resolved
=================================================================================================
Package Arch Version Repository Size
=================================================================================================
Updating:
unixODBC i386 2.2.11-10.el5 base 290 k
Installing for dependencies:
unixODBC-libs i386 2.2.11-10.el5 base 551 k
Transaction Summary
=================================================================================================
Install 1 Package(s)
Upgrade 1 Package(s)
Total size: 841 k
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : unixODBC-libs 1/3
Updating : unixODBC 2/3
Cleanup : unixODBC 3/3
Dependency Installed:
unixODBC-libs.i386 0:2.2.11-10.el5
Updated:
unixODBC.i386 0:2.2.11-10.el5
Complete!
14. 그룹 패키지 업데이트
기존에 설치된 그룹 패키지를 업데이트하려면 아래와 같이 다음 명령을 실행하면 됩니다.
yum groupupdate 'DNS Name Server'
Dependencies Resolved
================================================================================================================
Package Arch Version Repository Size
================================================================================================================
Updating:
bind i386 30:9.3.6-20.P1.el5_8.2 updates 981 k
bind-chroot i386 30:9.3.6-20.P1.el5_8.2 updates 47 k
Updating for dependencies:
bind-libs i386 30:9.3.6-20.P1.el5_8.2 updates 864 k
bind-utils i386 30:9.3.6-20.P1.el5_8.2 updates 174 k
Transaction Summary
================================================================================================================
Install 0 Package(s)
Upgrade 4 Package(s)
Total size: 2.0 M
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Updating : bind-libs 1/8
Updating : bind 2/8
Updating : bind-chroot 3/8
Updating : bind-utils 4/8
Cleanup : bind 5/8
Cleanup : bind-chroot 6/8
Cleanup : bind-utils 7/8
Cleanup : bind-libs 8/8
Updated:
bind.i386 30:9.3.6-20.P1.el5_8.2 bind-chroot.i386 30:9.3.6-20.P1.el5_8.2
Dependency Updated:
bind-libs.i386 30:9.3.6-20.P1.el5_8.2 bind-utils.i386 30:9.3.6-20.P1.el5_8.2
Complete!
15. 그룹 패키지 제거
시스템에서 기존에 설치된 그룹을 삭제하거나 제거하려면 아래 명령을 사용하십시오.
yum groupremove 'DNS Name Server'
Dependencies Resolved
===========================================================================================================
Package Arch Version Repository Size
===========================================================================================================
Removing:
bind i386 30:9.3.6-20.P1.el5_8.2 installed 2.1 M
bind-chroot i386 30:9.3.6-20.P1.el5_8.2 installed 0.0
Transaction Summary
===========================================================================================================
Remove 2 Package(s)
Reinstall 0 Package(s)
Downgrade 0 Package(s)
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Erasing : bind 1/2
warning: /etc/sysconfig/named saved as /etc/sysconfig/named.rpmsave
Erasing : bind-chroot 2/2
Removed:
bind.i386 30:9.3.6-20.P1.el5_8.2 bind-chroot.i386 30:9.3.6-20.P1.el5_8.2
Complete!
16. 활성화된 Yum 저장소 나열
시스템에서 활성화된 모든 Yum 저장소를 나열하려면 다음 옵션을 사용하십시오.
yum repolist
repo id repo name status
base CentOS-5 - Base enabled: 2,725
epel Extra Packages for Enterprise Linux 5 - i386 enabled: 5,783
extras CentOS-5 - Extras enabled: 282
mod-pagespeed mod-pagespeed enabled: 1
rpmforge RHEL 5 - RPMforge.net - dag enabled: 11,290
updates CentOS-5 - Updates enabled: 743
repolist: 20,824
16. 활성화 및 비활성화된 Yum 저장소를 모두 나열합니다.
다음 명령은 시스템에서 활성화 및 비활성화된 모든 yum 저장소를 표시합니다.
yum repolist all
repo id repo name status
C5.0-base CentOS-5.0 - Base disabled
C5.0-centosplus CentOS-5.0 - Plus disabled
C5.0-extras CentOS-5.0 - Extras disabled
base CentOS-5 - Base enabled: 2,725
epel Extra Packages for Enterprise Linux 5 - i386 enabled: 5,783
extras CentOS-5 - Extras enabled: 282
repolist: 20,824
17. 특정 저장소에서 패키지 설치
활성화되거나 비활성화된 특정 저장소에서 특정 패키지를 설치하려면 yum 명령에서 --enablerepo
옵션을 사용해야 합니다. 예를 들어 PhpMyAdmin 패키지를 설치하려면 명령을 실행하면 됩니다.
yum --enablerepo=epel install phpmyadmin
Dependencies Resolved
=============================================================================================
Package Arch Version Repository Size
=============================================================================================
Installing:
phpMyAdmin noarch 3.5.1-1.el6 epel 4.2 M
Transaction Summary
=============================================================================================
Install 1 Package(s)
Total download size: 4.2 M
Installed size: 17 M
Is this ok [y/N]: y
Downloading Packages:
phpMyAdmin-3.5.1-1.el6.noarch.rpm | 4.2 MB 00:25
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : phpMyAdmin-3.5.1-1.el6.noarch 1/1
Verifying : phpMyAdmin-3.5.1-1.el6.noarch 1/1
Installed:
phpMyAdmin.noarch 0:3.5.1-1.el6
Complete!
18. 대화형 Yum 쉘
Yum 유틸리티는 여러 명령을 실행할 수 있는 사용자 정의 셸을 제공합니다.
yum shell
Loaded plugins: fastestmirror
Setting up Yum Shell
> update httpd
Loading mirror speeds from cached hostfile
* base: mirrors.sin3.sg.voxel.net
* epel: ftp.riken.jp
* extras: mirrors.sin3.sg.voxel.net
* updates: mirrors.sin3.sg.voxel.net
Setting up Update Process
>
19. Yum 캐시 정리
기본적으로 yum은 각 하위 디렉터리와 함께 /var/cache/yum/에 모든 저장소 활성화 패키지 데이터를 보관합니다. 활성화된 저장소에서 캐시된 모든 파일을 정리하려면 다음 명령을 정기적으로 실행해야 합니다. 모든 캐시를 정리하고 불필요한 공간을 사용하고 있지 않은지 확인하십시오. 우리는 캐시된 데이터를 있는 그대로 유지하고 싶기 때문에 아래 명령의 출력을 제공하고 싶지 않습니다.
yum clean all
20. Yum의 역사 보기
yum 명령의 과거 트랜잭션을 모두 보려면 다음 명령을 사용하십시오.
yum history
Loaded plugins: fastestmirror
ID | Login user | Date and time | Action(s) | Altered
-------------------------------------------------------------------------------
10 | root | 2012-08-11 15:19 | Install | 3
9 | root | 2012-08-11 15:11 | Install | 1
8 | root | 2012-08-11 15:10 | Erase | 1 EE
7 | root | 2012-08-10 17:44 | Install | 1
6 | root | 2012-08-10 12:19 | Install | 2
5 | root | 2012-08-10 12:14 | Install | 3
4 | root | 2012-08-10 12:12 | I, U | 13 E<
3 | root | 2012-08-09 13:01 | Install | 1 >
2 | root | 2012-08-08 20:13 | I, U | 292 EE
1 | System | 2012-08-08 17:15 | Install | 560
history list
우리는 예제를 통해 모든 기본부터 고급 yum 명령까지 다루려고 노력했습니다. yum 명령과 관련된 내용이 누락되었을 수 있습니다. 댓글 상자를 통해 업데이트해 주세요. 그래서 우리는 받은 피드백을 바탕으로 계속해서 동일한 내용을 업데이트하고 있습니다.