ในบทความนี้จะอธิบายการใช้คำสั่ง 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 สลับไปมาดู