ในบทความนี้จะอธิบายการใช้คำสั่ง yum เพื่อดูข้อมูล ค้นรายชื่อแพ็คเกจ การติดตั้ง การลบแพ็คเกจ และดูประวัติการแก้ไข
แสดงรายชื่อ repos (repolist)
ใช้คำสั่ง yum repolist แสดงรายชื่อ repos ที่คอนฟิกไว้
[root@cent62-yum ~]# yum repolist Loaded plugins: fastestmirror, security Loading mirror speeds from cached hostfile * c6-media: repo id repo name status c6-media CentOS-6 - Media 6,294 repolist: 6,294
โดยดีฟอลต์จะแสดงเฉพาะ repos ที่เปิดการใช้งาน (enabled) ไว้
ถ้าต้องการแสดงรายชื่อ repos ทั้งหมดที่คอนฟิกไว้ มีไฟล์คอนฟิกอยู่ใน /etc/yum.repos.d/
ผลลัพธ์ที่แสดงจะมี สถานะ status การเปิด/ปิด การใช้งานอยู่ด้วย
[root@cent62-yum ~]# yum repolist all Loaded plugins: fastestmirror, security Loading mirror speeds from cached hostfile * c6-media: repo id repo name status base CentOS-6 - Base disabled c6-media CentOS-6 - Media enabled: 6,294 centosplus CentOS-6 - Plus disabled contrib CentOS-6 - Contrib disabled debug CentOS-6 - Debuginfo disabled extras CentOS-6 - Extras disabled updates CentOS-6 - Updates disabled repolist: 6,294
แสดงรายชื่อแพ็คเกจ (list)
ใช้คำสั่ง yum ตามด้วย list เพื่อแสดงแพ็คเกจ ผลลัพธ์ที่ได้จะมีอยู่สองกลุ่ม
- Installed Packages คือรายชื่อแพ็คเกจที่ติดตั้งลงในเครื่องเรียบร้อยแล้ว
- Available Packages คือรายชื่อแพ็คเกจที่มีอยู่ใน repos ที่เปิดการใช้งาน (enabled) แต่ยังไม่ได้ติดตั้งลงเครื่อง และพร้อมที่จะถูกติดตั้งด้วย yum install
หากพิมพ์แค่ yum list จะแสดงรายชื่อแพ็คเกจทั้งหมด
ตัวอย่างการใช้คำสั่ง yum list
[root@cent62-yum ~]# yum list Loaded plugins: fastestmirror, security Loading mirror speeds from cached hostfile * c6-media: Installed Packages ConsoleKit.x86_64 0.4.1-3.el6 @anaconda-CentOS-201112091719.x86_64/6.2 ConsoleKit-libs.x86_64 0.4.1-3.el6 @anaconda-CentOS-201112091719.x86_64/6.2 MAKEDEV.x86_64 3.24-6.el6 @anaconda-CentOS-201112091719.x86_64/6.2 abrt.x86_64 2.0.4-14.el6.centos @anaconda-CentOS-201112091719.x86_64/6.2 abrt-addon-ccpp.x86_64 2.0.4-14.el6.centos @anaconda-CentOS-201112091719.x86_64/6.2 ... Available Packages 389-ds-base.x86_64 1.2.9.14-1.el6 c6-media 389-ds-base-devel.i686 1.2.9.14-1.el6 c6-media 389-ds-base-devel.x86_64 1.2.9.14-1.el6 c6-media 389-ds-base-libs.i686 1.2.9.14-1.el6 c6-media 389-ds-base-libs.x86_64 1.2.9.14-1.el6 c6-media ...
ผลลัพธ์ที่แสดงประกอบด้วย
- ชื่อแพ็คเกจ
- เวอร์ชั่น
- สถานะการติดตั้ง หรือชื่อ repos
แต่ถ้าต้องการแสดงแค่รายชื่อแพ็คเกจที่ถูกติดตั้งลงเครื่องแล้ว (installed) หรืออยู่ใน repos แต่ยังไม่ได้ติดตั้ง (available) อย่างใดอย่างหนึ่ง สามารถทำได้โดยพิมพ์ installed หรือ available ต่อท้าย yum list
ตัวอย่างเช่น
[root@cent62-yum ~]# yum list available Loaded plugins: fastestmirror, security Loading mirror speeds from cached hostfile * c6-media: Available Packages 389-ds-base.x86_64 1.2.9.14-1.el6 c6-media 389-ds-base-devel.i686 1.2.9.14-1.el6 c6-media 389-ds-base-devel.x86_64 1.2.9.14-1.el6 c6-media 389-ds-base-libs.i686 1.2.9.14-1.el6 c6-media 389-ds-base-libs.x86_64 1.2.9.14-1.el6 c6-media ...
ค้นหาชื่อแพ็คเกจ (list, search)
หากต้องการค้นหาชื่อแพ็คเกจ ทำได้โดยใช้คำสั่ง yum list ตามด้วยชื่อแพ็คเกจที่ต้องการหา อาจจะระบุสถานะการติดตั้งว่า installed หรือ available ด้วยได้
เช่นต้องการค้นหาชื่อแพ็คเกจชื่อ php สามารถทำได้โดย
[root@cent62-yum ~]# yum list php
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
* c6-media:
Available Packages
php.x86_64 5.3.3-3.el6_1.3 c6-media
แต่ถ้าต้องการค้นหาชื่อแพ็คเกจที่มีชื่อขึ้นต้นด้วย php แล้วตามด้วยอะไรก็ได้ สามารถใช้เครื่องหมายดอกจัน “*” ต่อท้ายได้
[root@cent62-yum ~]# yum list php* Loaded plugins: fastestmirror, security Loading mirror speeds from cached hostfile * c6-media: Available Packages php.x86_64 5.3.3-3.el6_1.3 c6-media php-bcmath.x86_64 5.3.3-3.el6_1.3 c6-media php-cli.x86_64 5.3.3-3.el6_1.3 c6-media php-common.x86_64 5.3.3-3.el6_1.3 c6-media php-dba.x86_64 5.3.3-3.el6_1.3 c6-media ...
หากพิมพ์เครื่องหมายดอกจัน “*” แล้วไม่ขึ้นผลลัพธ์ที่ค้นหา ลองพิมพ์เครื่องหมาย “\” นำหน้าเครื่องหมายดอกจัน เช่น
[root@cent62-yum ~]# yum list php\* Loaded plugins: fastestmirror, security Loading mirror speeds from cached hostfile * c6-media: Available Packages php.x86_64 5.3.3-3.el6_1.3 c6-media php-bcmath.x86_64 5.3.3-3.el6_1.3 c6-media php-cli.x86_64 5.3.3-3.el6_1.3 c6-media php-common.x86_64 5.3.3-3.el6_1.3 c6-media php-dba.x86_64 5.3.3-3.el6_1.3 c6-media ...
แต่ถ้าไม่ทราบ หรือไม่แน่ใจเรื่องชื่อแพ็คเกจ ลองใช้ yum search เพื่อค้นหาคำที่ต้องการ ทั้งชื่อแพ็คเกจ (Name) และรายละเอียดของแพ็คเกจ (Summary)
ตัวอย่างการค้นหาคำว่า php
[root@cent62-yum ~]# yum search php Loaded plugins: fastestmirror, security Loading mirror speeds from cached hostfile * c6-media: ================================================= N/S Matched: php ================================================= cups-php.x86_64 : Common Unix Printing System - php module graphviz-php.x86_64 : PHP extension for graphviz php.x86_64 : PHP scripting language for creating dynamic web sites php-bcmath.x86_64 : A module for PHP applications for using the bcmath library php-cli.x86_64 : Command-line interface for PHP ...
ดูข้อมูลของแพ็คเกจ (info)
ใช้คำสั่ง yum info ตามด้วยชื่อแพ็คเกจ เพื่อดูข้อมูล รายละเอียดของแพ็คเกจ
[root@cent62-yum ~]# yum info php-common Loaded plugins: fastestmirror, security Loading mirror speeds from cached hostfile * c6-media: Available Packages Name : php-common Arch : x86_64 Version : 5.3.3 Release : 3.el6_1.3 Size : 522 k Repo : c6-media Summary : Common files for PHP URL : http://www.php.net/ License : PHP Description : The php-common package contains files used by both the php : package and the php-cli package.
ติดตั้งโปรแกรม (install)
ใช้คำสั่ง yum install ตามด้วยชื่อแพ็คเกจที่ต้องการติดตั้ง เช่นต้องการติดตั้ง php
[root@cent62-yum ~]# yum install php Loaded plugins: fastestmirror, security Loading mirror speeds from cached hostfile * c6-media: Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package php.x86_64 0:5.3.3-3.el6_1.3 will be installed --> Processing Dependency: httpd-mmn = 20051115 for package: php-5.3.3-3.el6_1.3.x86_64 --> Processing Dependency: php-cli = 5.3.3-3.el6_1.3 for package: php-5.3.3-3.el6_1.3.x86_64 --> Processing Dependency: php-common = 5.3.3-3.el6_1.3 for package: php-5.3.3-3.el6_1.3.x86_64 --> Processing Dependency: httpd for package: php-5.3.3-3.el6_1.3.x86_64 --> Running transaction check ---> Package httpd.x86_64 0:2.2.15-15.el6.centos will be installed --> Processing Dependency: httpd-tools = 2.2.15-15.el6.centos for package: httpd-2.2.15-15.el6.centos.x86_64 --> Processing Dependency: /etc/mime.types for package: httpd-2.2.15-15.el6.centos.x86_64 --> Processing Dependency: apr-util-ldap for package: httpd-2.2.15-15.el6.centos.x86_64 --> Processing Dependency: libaprutil-1.so.0()(64bit) for package: httpd-2.2.15-15.el6.centos.x86_64 --> Processing Dependency: libapr-1.so.0()(64bit) for package: httpd-2.2.15-15.el6.centos.x86_64 ---> Package php-cli.x86_64 0:5.3.3-3.el6_1.3 will be installed ---> Package php-common.x86_64 0:5.3.3-3.el6_1.3 will be installed --> Running transaction check ---> Package apr.x86_64 0:1.3.9-3.el6_1.2 will be installed ---> Package apr-util.x86_64 0:1.3.9-3.el6_0.1 will be installed ---> Package apr-util-ldap.x86_64 0:1.3.9-3.el6_0.1 will be installed ---> Package httpd-tools.x86_64 0:2.2.15-15.el6.centos will be installed ---> Package mailcap.noarch 0:2.1.31-2.el6 will be installed --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: php x86_64 5.3.3-3.el6_1.3 c6-media 1.1 M Installing for dependencies: apr x86_64 1.3.9-3.el6_1.2 c6-media 123 k apr-util x86_64 1.3.9-3.el6_0.1 c6-media 87 k apr-util-ldap x86_64 1.3.9-3.el6_0.1 c6-media 15 k httpd x86_64 2.2.15-15.el6.centos c6-media 809 k httpd-tools x86_64 2.2.15-15.el6.centos c6-media 70 k mailcap noarch 2.1.31-2.el6 c6-media 27 k php-cli x86_64 5.3.3-3.el6_1.3 c6-media 2.2 M php-common x86_64 5.3.3-3.el6_1.3 c6-media 522 k Transaction Summary ================================================================================ Install 9 Package(s) Total download size: 4.9 M Installed size: 16 M Is this ok [y/N]: y
yum จะช่วยแก้ไขปัญหาเรื่อง dependency และแสดงรายชื่อแพ็คเกจที่จำเป็นต้องติดตั้งเพิ่มเติม
ตอบ y เพื่อติดตั้ง
Downloading Packages: -------------------------------------------------------------------------------- Total 20 MB/s | 4.9 MB 00:00 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : apr-1.3.9-3.el6_1.2.x86_64 1/9 Installing : apr-util-1.3.9-3.el6_0.1.x86_64 2/9 Installing : php-common-5.3.3-3.el6_1.3.x86_64 3/9 Installing : php-cli-5.3.3-3.el6_1.3.x86_64 4/9 Installing : httpd-tools-2.2.15-15.el6.centos.x86_64 5/9 Installing : apr-util-ldap-1.3.9-3.el6_0.1.x86_64 6/9 Installing : mailcap-2.1.31-2.el6.noarch 7/9 Installing : httpd-2.2.15-15.el6.centos.x86_64 8/9 Installing : php-5.3.3-3.el6_1.3.x86_64 9/9 Installed: php.x86_64 0:5.3.3-3.el6_1.3 Dependency Installed: apr.x86_64 0:1.3.9-3.el6_1.2 apr-util.x86_64 0:1.3.9-3.el6_0.1 apr-util-ldap.x86_64 0:1.3.9-3.el6_0.1 httpd.x86_64 0:2.2.15-15.el6.centos httpd-tools.x86_64 0:2.2.15-15.el6.centos mailcap.noarch 0:2.1.31-2.el6 php-cli.x86_64 0:5.3.3-3.el6_1.3 php-common.x86_64 0:5.3.3-3.el6_1.3 Complete!
ลบแพ็คเกจ (erase)
เช่นเดียวกับการติดตั้ง เมื่อต้องการลบแพ็คเกจ คำสั่ง yum จะทำการตรวจสอบก่อนการลบ เช่นมีแพ็คเกจอื่นไหม ที่ต้องใช้แพ็คเกจที่เราจะลบ
เข่น ต้องการจะลบ php-common ใช้คำสั่ง yum remove หรือ yum erase
[root@cent62-yum ~]# yum erase php-common Loaded plugins: fastestmirror, security Setting up Remove Process Resolving Dependencies --> Running transaction check ---> Package php-common.x86_64 0:5.3.3-3.el6_1.3 will be erased --> Processing Dependency: php-common = 5.3.3-3.el6_1.3 for package: php-cli-5.3.3-3.el6_1.3.x86_64 --> Processing Dependency: php-common = 5.3.3-3.el6_1.3 for package: php-5.3.3-3.el6_1.3.x86_64 --> Running transaction check ---> Package php.x86_64 0:5.3.3-3.el6_1.3 will be erased ---> Package php-cli.x86_64 0:5.3.3-3.el6_1.3 will be erased --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Removing: php-common x86_64 5.3.3-3.el6_1.3 @c6-media 2.9 M Removing for dependencies: php x86_64 5.3.3-3.el6_1.3 @c6-media 3.5 M php-cli x86_64 5.3.3-3.el6_1.3 @c6-media 6.2 M Transaction Summary ================================================================================ Remove 3 Package(s) Installed size: 13 M Is this ok [y/N]:
ผลลัพธ์แสดงว่ามีแพ็คเกจชื่อ php และ php-cli ที่ใช้แพ็คเกจ php-common ที่จะลบ
จะลบ php-common ได้ ต้องลบทั้ง php และ php-cli
ตอบ y หากต้องการยืนยันจะลบ
Is this ok [y/N]: y Downloading Packages: Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Erasing : php-5.3.3-3.el6_1.3.x86_64 1/3 Erasing : php-cli-5.3.3-3.el6_1.3.x86_64 2/3 Erasing : php-common-5.3.3-3.el6_1.3.x86_64 3/3 Removed: php-common.x86_64 0:5.3.3-3.el6_1.3 Dependency Removed: php.x86_64 0:5.3.3-3.el6_1.3 php-cli.x86_64 0:5.3.3-3.el6_1.3 Complete!
ประวัติการใช้คำสั่ง (history)
นอกจากจะช่วยแก้ไขปัญหา dependency ช่วยติดตั้งโปรแกรมได้แล้ว yum ยังเก็บประวัติการใช้ การติดตั้งอีกด้วย
ใช้คำสั่ง yum history เพื่อดูประวัติ รายงานการใช้คำสั่ง yum
[root@cent62-yum ~]# yum history Loaded plugins: fastestmirror, security ID | Login user | Date and time | Action(s) | Altered ------------------------------------------------------------------------------- 4 | root <root> | 2012-05-06 22:17 | Install | 9 3 | root <root> | 2012-05-06 16:59 | Install | 3 < 2 | root <root> | 2012-05-05 23:55 | Install | 3 > 1 | System <unset> | 2012-05-01 22:58 | Install | 380 history list
หากต้องการดูรายละเอียด ใช้คำสั่ง yum history แล้วตามด้วยเลข ID ที่ต้องการ เช่นต้องการดู ID 4 ล่าสุดที่เพิ่งแก้ไขไป
[root@cent62-yum ~]# yum history info 4 Loaded plugins: fastestmirror, security Transaction ID : 4 Begin time : Sun May 6 22:17:33 2012 Begin rpmdb : 383:43a9713783c6f11d9a4360c9335e1fffe5f7c441 End time : 22:17:39 2012 (6 seconds) End rpmdb : 392:d18f5a46c15d88a509cb71f73fb0b0de9aa70909 User : root <root> Return-Code : Success Command Line : install php Transaction performed with: Installed rpm-4.8.0-19.el6.x86_64 @anaconda-CentOS-201112091719.x86_64/6.2 Installed yum-3.2.29-22.el6.centos.noarch @anaconda-CentOS-201112091719.x86_64/6.2 Installed yum-plugin-fastestmirror-1.1.30-10.el6.noarch @anaconda-CentOS-201112091719.x86_64/6.2 Packages Altered: Dep-Install apr-1.3.9-3.el6_1.2.x86_64 @c6-media Dep-Install apr-util-1.3.9-3.el6_0.1.x86_64 @c6-media Dep-Install apr-util-ldap-1.3.9-3.el6_0.1.x86_64 @c6-media Dep-Install httpd-2.2.15-15.el6.centos.x86_64 @c6-media Dep-Install httpd-tools-2.2.15-15.el6.centos.x86_64 @c6-media Dep-Install mailcap-2.1.31-2.el6.noarch @c6-media Install php-5.3.3-3.el6_1.3.x86_64 @c6-media Dep-Install php-cli-5.3.3-3.el6_1.3.x86_64 @c6-media Dep-Install php-common-5.3.3-3.el6_1.3.x86_64 @c6-media history info
นอกจากนี้ yum history ยังสามารถยกเลิก (undo) การแก้ไขได้ด้วย เช่นต้องการยกเลิกการติดตั้งแพ็คเกจ php ที่เพิ่งทำไป
สามารถใช้คำสั่ง yum history ต่อด้วย undo เพื่อยกเลิก
[root@cent62-yum ~]# yum history undo 4 Loaded plugins: fastestmirror, security Loading mirror speeds from cached hostfile * c6-media: Undoing transaction 4, from Sun May 6 22:17:33 2012 Dep-Install apr-1.3.9-3.el6_1.2.x86_64 @c6-media Dep-Install apr-util-1.3.9-3.el6_0.1.x86_64 @c6-media Dep-Install apr-util-ldap-1.3.9-3.el6_0.1.x86_64 @c6-media Dep-Install httpd-2.2.15-15.el6.centos.x86_64 @c6-media Dep-Install httpd-tools-2.2.15-15.el6.centos.x86_64 @c6-media Dep-Install mailcap-2.1.31-2.el6.noarch @c6-media Install php-5.3.3-3.el6_1.3.x86_64 @c6-media Dep-Install php-cli-5.3.3-3.el6_1.3.x86_64 @c6-media Dep-Install php-common-5.3.3-3.el6_1.3.x86_64 @c6-media Resolving Dependencies --> Running transaction check ---> Package apr.x86_64 0:1.3.9-3.el6_1.2 will be erased ---> Package apr-util.x86_64 0:1.3.9-3.el6_0.1 will be erased ---> Package apr-util-ldap.x86_64 0:1.3.9-3.el6_0.1 will be erased ---> Package httpd.x86_64 0:2.2.15-15.el6.centos will be erased ---> Package httpd-tools.x86_64 0:2.2.15-15.el6.centos will be erased ---> Package mailcap.noarch 0:2.1.31-2.el6 will be erased ---> Package php.x86_64 0:5.3.3-3.el6_1.3 will be erased ---> Package php-cli.x86_64 0:5.3.3-3.el6_1.3 will be erased ---> Package php-common.x86_64 0:5.3.3-3.el6_1.3 will be erased --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Removing: apr x86_64 1.3.9-3.el6_1.2 @c6-media 296 k apr-util x86_64 1.3.9-3.el6_0.1 @c6-media 198 k apr-util-ldap x86_64 1.3.9-3.el6_0.1 @c6-media 9.3 k httpd x86_64 2.2.15-15.el6.centos @c6-media 2.9 M httpd-tools x86_64 2.2.15-15.el6.centos @c6-media 137 k mailcap noarch 2.1.31-2.el6 @c6-media 52 k php x86_64 5.3.3-3.el6_1.3 @c6-media 3.5 M php-cli x86_64 5.3.3-3.el6_1.3 @c6-media 6.2 M php-common x86_64 5.3.3-3.el6_1.3 @c6-media 2.9 M Transaction Summary ================================================================================ Remove 9 Package(s) Installed size: 16 M Is this ok [y/N]:
ออปชั่น undo จะแสดงข้อมูลแพ็คเกจที่จะถูกแก้ไข เช่นถูกลบจากการติดตั้ง (erase)
กด y เพื่อยืนยันการ undo
Is this ok [y/N]: y Downloading Packages: Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Erasing : php-5.3.3-3.el6_1.3.x86_64 1/9 Erasing : httpd-2.2.15-15.el6.centos.x86_64 2/9 Erasing : httpd-tools-2.2.15-15.el6.centos.x86_64 3/9 Erasing : apr-util-ldap-1.3.9-3.el6_0.1.x86_64 4/9 Erasing : apr-util-1.3.9-3.el6_0.1.x86_64 5/9 Erasing : php-cli-5.3.3-3.el6_1.3.x86_64 6/9 Erasing : mailcap-2.1.31-2.el6.noarch 7/9 Erasing : php-common-5.3.3-3.el6_1.3.x86_64 8/9 Erasing : apr-1.3.9-3.el6_1.2.x86_64 9/9 Removed: apr.x86_64 0:1.3.9-3.el6_1.2 apr-util.x86_64 0:1.3.9-3.el6_0.1 apr-util-ldap.x86_64 0:1.3.9-3.el6_0.1 httpd.x86_64 0:2.2.15-15.el6.centos httpd-tools.x86_64 0:2.2.15-15.el6.centos mailcap.noarch 0:2.1.31-2.el6 php.x86_64 0:5.3.3-3.el6_1.3 php-cli.x86_64 0:5.3.3-3.el6_1.3 php-common.x86_64 0:5.3.3-3.el6_1.3 Complete!
ก็จะเป็นการยกเลิกการแก้ไขย้อนหลังได้
ลองใช้คำสั่ง yum history อีกที จะมี ID 5 เพิ่มขึ้นมา เก็บประวัติการแก้ไข ลบแพ็คเกจ (erase)
[root@cent62-yum ~]# yum history
Loaded plugins: fastestmirror, security
ID | Login user | Date and time | Action(s) | Altered
-------------------------------------------------------------------------------
5 | root <root> | 2012-05-06 22:32 | Erase | 9
4 | root <root> | 2012-05-06 22:17 | Install | 9
3 | root <root> | 2012-05-06 16:59 | Install | 3 <
2 | root <root> | 2012-05-05 23:55 | Install | 3 >
1 | System <unset> | 2012-05-01 22:58 | Install | 380
history list
เพื่อความเข้าใจ ลองใช้คำสั่ง redo, undo ทั้ง ID 4 และ 5 สลับไปมาดู