본문 바로가기

Linux

yum을 사용하여 소프트웨어 업데이트 관리

yum command
작업 명령
설치되어 사용 가능한 패키지를 이름으로 나영 yum list [NAME-PATTERN]
설치되어 사용 가능한 그룹을 나열 yum grouplist
패키지를 키워드로 검색 yum search KEYWORD
패키지 세부 정보를 표시 yum info PACKAGENAME
패키지를 설치 yum install PACKAGENAME
패키지 그룹을 설치 yum groupinstall "GROUPNAME"
모든 패키지를 업데이트 yum update
패키지를 제거 yum remove PACKAGENAME
트랜잭션 내역을 표시 yum history

yum을 사용하여 소프트웨어 찾기
  • yum help
    사용 할 수 있는 Command 및 Option 표시
  • yum list
    설치되어 있거나 설치 가능한 패키지를 표시
    [root@ip-172-31-27-55 ~]# yum list 'http*'
    Loaded plugins: priorities, update-motd, upgrade-helper
    Installed Packages
    http-parser.x86_64                             2.0-3.20121128gitcd01361.3.amzn1                        @amzn-main
    http-parser-devel.x86_64                       2.0-3.20121128gitcd01361.3.amzn1                        @amzn-main
    Available Packages
    http-parser.i686                               2.0-3.20121128gitcd01361.3.amzn1                        amzn-main
    httpd.x86_64                                   2.2.29-1.5.amzn1                                        amzn-main
    httpd-devel.x86_64                             2.2.29-1.5.amzn1                                        amzn-main
    httpd-manual.noarch                            2.2.29-1.5.amzn1                                        amzn-main
    httpd-tools.x86_64                             2.2.29-1.5.amzn1                                        amzn-main
    httpd24.x86_64                                 2.4.12-1.60.amzn1                                       amzn-main
    httpd24-devel.x86_64                           2.4.12-1.60.amzn1                                       amzn-main
    httpd24-manual.noarch                          2.4.12-1.60.amzn1                                       amzn-main
    httpd24-tools.x86_64                           2.4.12-1.60.amzn1                                       amzn-main 
  • yum search KEYWORD
    이름 및 요약 필드에만 표시되는 키워드에 따라 패키지를 나열
    이름, 요약 및 설명 필드에 "web server"가 들어가는 패키지를 검색 하려면 search all을 사용
    [root@ip-172-31-27-55 ~]# yum search all 'web server'
    Loaded plugins: priorities, update-motd, upgrade-helper
    ============== Matched: web server ==============================================
    erlang-inets.x86_64 : A set of services such as a Web server and a ftp client etc
    mod_auth_mysql.x86_64 : Basic authentication for the Apache web server using a MySQL database
    nginx.x86_64 : A high performance web server and reverse proxy server
    python26-tornado.noarch : Scalable, non-blocking web server and tools
    python27-tornado.noarch : Scalable, non-blocking web server and tools
    freeradius.x86_64 : High-performance and highly configurable free RADIUS server
    hsqldb.noarch : HyperSQL Database Engine
    htdig.x86_64 : ht://Dig - Web search engine
    htdig-web.x86_64 : Scripts and HTML code needed for using ht://Dig as a web search engine
    http-parser.i686 : HTTP request/response parser for C
    http-parser.x86_64 : HTTP request/response parser for C
    httpd.x86_64 : Apache HTTP Server
    httpd24.x86_64 : Apache HTTP Server
  • yum info PACKAGENAME
    설치에 필요한 디스크 공간을 포함하여 패키지에 대한 상세 정보를 제공
    Apache HTTP 서버에 대한 정보를 보려면
    [root@ip-172-31-27-55 ~]# yum info httpd
    Loaded plugins: priorities, update-motd, upgrade-helper
    Available Packages
    Name        : httpd
    Arch        : x86_64
    Version     : 2.2.29
    Release     : 1.5.amzn1
    Size        : 1.2 M
    Repo        : amzn-main/latest
    Summary     : Apache HTTP Server
    URL         : http://httpd.apache.org/
    License     : ASL 2.0
    Description : The Apache HTTP Server is a powerful, efficient, and extensible
                : web server.
  • yum provides PATHNAME
    지정된 경로 이름(와일드카드 문자를 포함하는 경우가 많음)과 일치하는 패키지를 표시
    /var/www/html 디렉토리를 제공하는 패키지를 찾으려면
    [root@ip-172-31-27-55 ~]# yum provides /var/www/html
    Loaded plugins: priorities, update-motd, upgrade-helper
    httpd-2.2.29-1.5.amzn1.x86_64 : Apache HTTP Server
    Repo        : amzn-main
    Matched from:
    Filename    : /var/www/html

    httpd24-2.4.12-1.60.amzn1.x86_64 : Apache HTTP Server
    Repo        : amzn-main
    Matched from:
    Filename    : /var/www/html

    1:php-pear-1.9.5-2.17.amzn1.noarch : PHP Extension and Application Repository framework
    Repo        : amzn-main
    Matched from:
    Filename    : /var/www/html
yum을 사용하여 소프트웨어 설치 및 제거
  • yum install PACKAGENAME
    종속성을 포함한 소프트웨어 패키지를 가져와서 설치
    [root@ip-172-31-27-55 ~]# yum install httpd
  • yum update PACKAGENAME
    새 버전의 소프트웨어 패키지와 종속성이 있는 패키지를 가져와서 설치
    일반적으로 이 프로세스는 구성 파일을 제 위체에 보존하려 하지만, 업데이트 후에 이전 패키지가 작동하지 않을 것이라고 패키지 작성자가 생각하는 경우에는 이름을 변경할 수 있음
    PACKAGENAME을 지정하지 않으면 관련된 모든 업데이트가 설치
    [root@ip-172-31-27-55 ~]# yum update
    새 커널은 그 커널로 부팅할 때만 테스트할 수 있으므로 패키지는 여러 버전이 한 번에 설치될 수 있도록 특별히 설계됨.
    새 커널이 부팅에 실패하면 이전 커널을 사용할 수 있음.
    yum update kernel을 사용하면 실제로 새 커널이 설치됨.
    구성 파일은 관리자가 업데이트를 요구하는 경우에도 "항상 설치' 할 수 있도록 패키지 목록을 보유하고 있음.

    <참고>
    설치되어 사용 가능한 커널을 모두 나열하려면 yum list kernel을 사용
    현재 실행 중인 커널을 보려면 uname 명령을 사용.
    -r 옵션은 커널 버전과 릴리즈만 표시, -a 옵션은 커널 릴리즈와 추가 정보를 표시
    [root@ip-172-31-27-55 ~]# yum list kernel
    Loaded plugins: priorities, update-motd, upgrade-helper
    Installed Packages
    kernel.x86_64                                             3.14.35-28.38.amzn1                                              installed  
    Available Packages
    kernel.x86_64                                             3.14.48-33.39.amzn1                                              amzn-updates
    [root@ip-172-31-27-55 ~]# uname -r
    3.14.35-28.38.amzn1.x86_64
    [root@ip-172-31-27-55 ~]# uname -a
    Linux ip-172-31-27-55 3.14.35-28.38.amzn1.x86_64 #1 SMP Wed Mar 11 22:50:37 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
  • yum remove PACKAGENAME
    지원 되는 패키지를 포함하여 설치된 소프트웨어 패키지를 제거
    [root@ip-172-31-27-55 ~]# yum remove httpd

yum을 사용하여 소프트웨어 그룹 설치 및 제거
  • yum은 특수한 목적을 위해 함께 설치된 관련 소프트웨어의 컬렉션인 그룹의 개념도 가지고 있음.
    Red Hat Enterprise Linux 7에는 두 종류의 그룹이 있음.
    정규 그룹은 패키지 컬렉션, 환경 그룹은 자체 패키지를 포함한 다른 그룹의 컬렉션
    그룸이 제공하는 패키지 또는 그룹은 필수(그룹이 설치되는 경우에 설치되어야 하는)일 수도 있고 기본값(일반적으로 그룹이 설치되면 설치되는)일 수도 있으며, 선택 사항(구체적으로 지정하지 안으면 설치되지 않는)일 수도 있음.

    yum list와 마찬가지로 yum group list(또는 yum grouplist) 명령은 설치되어 사용 가능한 그룹의 이름을 표시.
    일부 그룹은 환경 그룹을 통해 설치되며 기본적으로 숨겨짐. 이 숨겨진 그룹은 yum group list hidden 명령을 사용하여 나열할 수도 있음.
    ids 옵션이 추가되면 그룹 ID도 표시됨. 그룹을 설치, 업데이트 및 제거할 수 있으며, 그렇지 않으면 이름 또는 ID로 쿼리할 수 있음
    [root@ip-172-31-27-55 ~]# yum group list
    Loaded plugins: priorities, update-motd, upgrade-helper
    There is no installed groups file.
    Maybe run: yum groups mark convert (see man yum)
    Available Groups:
       Console internet tools
       DNS Name Server
       Development Libraries
       Development tools
       Editors
       FTP Server
       Java Development
       Legacy UNIX compatibility
       Mail Server
       MySQL Database
       MySQL Database client
       NFS file server
    ............
  • 그룹에 대한 정보는 yum group info(또는 yum groupinfo)로 표시. 이것은 필수, 기본 및 선택 사항인 패키지 이름 또는 그룹 ID의 목록을 포함.
    패키지 이름 또는 그룹 ID의 앞에는 마커가 붙을 수도 있음.
    마커 의미
    = 패키지가 설치됩니다. 그룹의 일부로 설치되었음
    + 패키지가 설치되지 않음. 그룹이 설치 또는 업데이트되면 설치됨
    - 패키지가 설치되이 않음. 그룹이 설치 또는 업데이트되면 설치되지 않음
    마커 없음 패키지가 설치되지만 그룹을 통해 설치되지는 않았음

    [root@ip-172-31-27-55 ~]# yum group info "Networking Tools"
    Loaded plugins: priorities, update-motd, upgrade-helper

    Group: Networking Tools
    Group-Id: network-tools
    Description: Tools for configuring and analyzing computer networks.
    Mandatory Packages:
       =tcpdump
    Default Packages:
        nc
    Optional Packages:
       arptables_jf
       arpwatch
       iptraf
       iptstate
       lksctp-tools
       mrtg
       netlabel_tools
       nmap
       openswan
       stunnel
       wireshark

  • yum group install(또는 yum groupinstall) 명령은 그룹 및 그 필수/기본 패키지와 여기에 종속된 패키지를 설치
    [root@ip-172-31-27-55 ~]# yum group install "Networking Tools"
    Loaded plugins: priorities, update-motd, upgrade-helper
    There is no installed groups file.
    Maybe run: yum groups mark convert (see man yum)
    Resolving Dependencies
    --> Running transaction check
    ---> Package tcpdump.x86_64 14:4.0.0-3.20090921gitdf3cb4.2.10.amzn1 will be installed
    --> Processing Dependency: libpcap.so.1()(64bit) for package: 14:tcpdump-4.0.0-3.20090921gitdf3cb4.2.10.amzn1.x86_64
    --> Running transaction check
    ---> Package libpcap.x86_64 14:1.4.0-1.20130826git2dbcaa1.10.amzn1 will be installed
    --> Finished Dependency Resolution

    Dependencies Resolved

    ===============================================================================================
    Package                Arch                  Version                                                Repository                   Size
    ===============================================================================================
    Installing for group install "Networking Tools":
    tcpdump                x86_64                14:4.0.0-3.20090921gitdf3cb4.2.10.amzn1                amzn-updates                372 k
    Installing for dependencies:
    libpcap                x86_64                14:1.4.0-1.20130826git2dbcaa1.10.amzn1                 amzn-main                   144 k

    Transaction Summary
    ===============================================================================================
    Install  1 Package (+1 Dependent package)

    Total download size: 516 k
    Installed size: 1.1 M
    Is this ok [y/d/N]: 
    중요
    Red Hat Enterprise Linux 7에서는 yum 그룹의 동작방식이 Red Hat Enterprise Linux 6 및 이전 버전과는 달라짐. RHEL7에서는 그룹이 개체로 취급되며, 시스템의 추적을 받음.
    설치된 그룹이 업데이트되고 새로운 필수 또는 기본 패키지가 yum 리포지토리에 의해 그룹에 추카되면 이 새로운 패키지는 업데이트할 때 설치됨.

    RHEL6 및 이전 버전에서는 모든 필수 패키지가 설치되었거나 필수 패키지가 없거나 그룹의 기본 또는 선택 사항 패키지가 설치되는 경우에 그룹이 설치되는 것으로 간주함.
    RHEL7 에서는 yum group install 을 사용하여 설치한 경우에만 그룹이 설치되는 것으로 간주함.
    RHEL7에 새로 추가된 명령인 yum group mark install GROUPNAME은 그룹이 설치된 것으로 표시하는데 사용할 수 있으며, 누락된 패키지와 그 종속성은 다음 업데이트 시에 설치됨.

    마지막으로 RHEL6 및 이전 버전에서는 두 단어로 된 yum group 명령 형식을 사용하지 않았습니다. 다시 말해 RHEL6에서는 yum grouplist 가 있었지만 이에 해당하는 RHEL7 명령인 yum group list는 없었음.

트랜잭션 내역 보기
  • 모든 설치 및 제거 트랜잭션은 /var/log/yum.log에 기록됨
    [root@ip-172-31-27-55 ~]# tail -5 /var/log/yum.log
    Aug 08 13:34:07 Installed: npm-1.3.6-5.el6.noarch
    Aug 08 13:34:08 Installed: gcc-c++-4.8.2-3.19.amzn1.noarch
    Aug 08 13:34:08 Updated: e2fsprogs-1.42.12-4.35.amzn1.x86_64
    Aug 10 02:50:34 Installed: 14:libpcap-1.4.0-1.20130826git2dbcaa1.10.amzn1.x86_64
    Aug 10 02:50:35 Installed: 14:tcpdump-4.0.0-3.20090921gitdf3cb4.2.10.amzn1.x86_64
  • 설치 및 제거 트랜잭션 요약은 yum history를 사용하여 볼 수 있음.
    [root@ip-172-31-27-55 ~]# yum history
    Loaded plugins: priorities, update-motd, upgrade-helper
    ID     | Login user               | Date and time    | Action(s)      | Altered
    -------------------------------------------------------------------------------
         3 | EC2 ... <ec2-user>       | 2015-08-10 02:50 | Install        |    2  
         2 | EC2 ... <ec2-user>       | 2015-08-08 13:33 | I, U           |  117  
         1 | System <unset>           | 2015-08-08 07:00 | Update         |    8  
    history list
  • yum history info - 트랜잭션 정보 확인
    [root@ip-172-31-27-55 ~]# yum history info 3
    Loaded plugins: priorities, update-motd, upgrade-helper
    Transaction ID : 3
    Begin time     : Mon Aug 10 02:50:34 2015
    Begin rpmdb    : 474:2e993d65f019be4906a17116c4f9355df49b9cf0
    End time       :            02:50:35 2015 (1 seconds)
    End rpmdb      : 476:affb56492fa15644d69ae54feec289044fb8cde2
    User           : EC2 Default User <ec2-user>
    Return-Code    : Success
    Command Line   : group install Networking Tools
    Transaction performed with:
        Installed     rpm-4.11.2-2.63.amzn1.x86_64  installed
        Installed     yum-3.4.3-137.54.amzn1.noarch installed
    Packages Altered:
        Dep-Install libpcap-14:1.4.0-1.20130826git2dbcaa1.10.amzn1.x86_64  @amzn-main
        Install     tcpdump-14:4.0.0-3.20090921gitdf3cb4.2.10.amzn1.x86_64 @amzn-updates
    history info

  • history undo(내역 실행 취소) 옵션을 사용하여 트랜잭션을 취소할 수 있음.
    [root@ip-172-31-27-55 ~]# yum history undo 3
    Loaded plugins: priorities, update-motd, upgrade-helper
    Undoing transaction 3, from Mon Aug 10 02:50:34 2015
        Dep-Install libpcap-14:1.4.0-1.20130826git2dbcaa1.10.amzn1.x86_64  @amzn-main
        Install     tcpdump-14:4.0.0-3.20090921gitdf3cb4.2.10.amzn1.x86_64 @amzn-updates
    Resolving Dependencies
    --> Running transaction check
    ---> Package libpcap.x86_64 14:1.4.0-1.20130826git2dbcaa1.10.amzn1 will be erased
    ---> Package tcpdump.x86_64 14:4.0.0-3.20090921gitdf3cb4.2.10.amzn1 will be erased
    --> Finished Dependency Resolution

    Dependencies Resolved

    ==========================================================================================
    Package               Arch                 Version                                                  Repository                   Size
    ==========================================================================================
    Removing:
    libpcap               x86_64               14:1.4.0-1.20130826git2dbcaa1.10.amzn1                   @amzn-main                  300 k
    tcpdump               x86_64               14:4.0.0-3.20090921gitdf3cb4.2.10.amzn1                  @amzn-updates               809 k

    Transaction Summary
    ==========================================================================================
    Remove  2 Packages

    Installed size: 1.1 M
    Is this ok [y/N]: 
References
  • yum(1)yum.conf(5) man page