ทางทีมดูแลพัฒนา CentOS จะคอยดูแลปรับปรุงโปรแกรมและออกเวอร์ชั่นใหม่ตาม RedHat อยู่เสมอ ไฟล์แพ็คเกจเวอร์ชั่นใหม่นี้ จะถูกเก็บไว้ใน repos ชื่อ updates เพื่อให้ผู้ใช้งานสามารถใช้ yum เข้ามาตรวจสอบและปรับปรุงโปรแกรมได้
ในที่นี้จะแนะนำวิธีการปรับปรุงโปรแกรมโดยใช้คำสั่ง yum ทั้งปรับปรุงเฉพาะโปรแกรม หรือปรับปรุงทุกโปรแกรมที่ติดตั้งบนเครื่องลีนุกซ์แล้ว
คำเตือน แนะนำให้ทดสอบในเครื่องลีนุกซ์ทดลองดูก่อน เพื่อดูผลกระทบการปรับปรุงเวอร์ชั่นของโปรแกรม
ปรับปรุงแพ็คเกจที่ระบุ
สมมติว่าต้องการจะปรับปรุง (update) แพ็คเกจ openssh
ใช้คำสั่ง yum list installed เพื่อดูข้อมูลแพ็คเกจ openssh ที่ติดตั้งไว้
[root@cent62-yum ~]# yum list installed openssh Loaded plugins: fastestmirror, security Loading mirror speeds from cached hostfile Installed Packages openssh.x86_64 5.3p1-70.el6 @anaconda-CentOS-201112091719.x86_64/6.2
ใช้คำสั่ง yum list available หรือ yum list updates เพื่อดูเวอร์ชั่นที่มีให้ปรับปรุง
[root@cent62-yum ~]# yum list updates openssh Loaded plugins: fastestmirror, security Loading mirror speeds from cached hostfile Updated Packages openssh.x86_64 5.3p1-70.el6_2.2 updates
ใช้คำสั่ง yum update ตามด้วยชื่อแพ็คเกจที่ต้องการปรับปรุง
หมายเหตุ สังเกตการใช้คำว่า updates และ update อย่างแรก updates (มี s) เป็นชื่อ repos ส่วน update (ไม่มี s) เป็นคำสั่งของ yum เพื่อใช้ปรับปรุงแพ็คเกจเวอร์ชั่น
[root@cent62-yum ~]# yum update openssh Loaded plugins: fastestmirror, security Loading mirror speeds from cached hostfile Setting up Update Process Resolving Dependencies --> Running transaction check ---> Package openssh.x86_64 0:5.3p1-70.el6 will be updated --> Processing Dependency: openssh = 5.3p1-70.el6 for package: openssh-server-5.3p1-70.el6.x86_64 --> Processing Dependency: openssh = 5.3p1-70.el6 for package: openssh-clients-5.3p1-70.el6.x86_64 ---> Package openssh.x86_64 0:5.3p1-70.el6_2.2 will be an update --> Running transaction check ---> Package openssh-clients.x86_64 0:5.3p1-70.el6 will be updated ---> Package openssh-clients.x86_64 0:5.3p1-70.el6_2.2 will be an update ---> Package openssh-server.x86_64 0:5.3p1-70.el6 will be updated ---> Package openssh-server.x86_64 0:5.3p1-70.el6_2.2 will be an update --> Finished Dependency Resolution
Dependencies Resolved
================================================================================ Package Arch Version Repository Size ================================================================================ Updating: openssh x86_64 5.3p1-70.el6_2.2 updates 235 k Updating for dependencies: openssh-clients x86_64 5.3p1-70.el6_2.2 updates 357 k openssh-server x86_64 5.3p1-70.el6_2.2 updates 297 k
Transaction Summary ================================================================================ Upgrade 3 Package(s)
Total download size: 888 k Is this ok [y/N]:
เหมือนกับการติดตั้งใหม่ yum จะตรวจสอบแพ็คเกจอื่นๆ ที่จำเป็น รวมทั้งเวอร์ชั่นที่ต้องปรับปรุงพร้อมกันไปด้วย
เช่นในตัวอย่างนี้ ถ้าต้องการปรับปรุงแพ็คเกจ openssh จำเป็นต้องปรับปรุง openssh-clients และ openssh-server ไปด้วย
พิมพ์ y แล้ว [Enter] เพื่อยืนยันการปรับปรุง
Is this ok [y/N]: y Downloading Packages: (1/3): openssh-5.3p1-70.el6_2.2.x86_64.rpm | 235 kB 00:01 (2/3): openssh-clients-5.3p1-70.el6_2.2.x86_64.rpm | 357 kB 00:01 (3/3): openssh-server-5.3p1-70.el6_2.2.x86_64.rpm | 297 kB 00:01 -------------------------------------------------------------------------------- Total 150 kB/s | 888 kB 00:05
Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Updating : openssh-5.3p1-70.el6_2.2.x86_64 1/6 Updating : openssh-clients-5.3p1-70.el6_2.2.x86_64 2/6 Updating : openssh-server-5.3p1-70.el6_2.2.x86_64 3/6 Cleanup : openssh-server-5.3p1-70.el6.x86_64 4/6 Cleanup : openssh-clients-5.3p1-70.el6.x86_64 5/6 Cleanup : openssh-5.3p1-70.el6.x86_64 6/6
Updated: openssh.x86_64 0:5.3p1-70.el6_2.2
Dependency Updated: openssh-clients.x86_64 0:5.3p1-70.el6_2.2 openssh-server.x86_64 0:5.3p1-70.el6_2.2
Complete!
ใช้คำสั่ง yum list เพื่อดูแพ็คเกจหลังการปรับปรุง
[root@cent62-yum ~]# yum list installed openssh Loaded plugins: fastestmirror, security Loading mirror speeds from cached hostfile Installed Packages openssh.x86_64 5.3p1-70.el6_2.2 @updates
ลองใช้ yum list updates อีกครั้ง จะไม่มีเวอร์ชั่นใหม่ ให้ปรับปรุงอีกแล้ว
[root@cent62-yum ~]# yum list updates openssh Loaded plugins: fastestmirror, security Loading mirror speeds from cached hostfile Error: No matching Packages to list
หมายเหตุ หลังการปรับปรุงแพ็คเกจ บางโปรแกรมอาจต้องแก้ไขเพิ่มเติม เช่นหลังการปรับปรุง openssh ต้องมีการรีสตาร์ตเซอร์วิส sshd (OpenSSH Server) เพื่อให้เวอร์ชั่นใหม่มีผล
ปรับปรุงทุกแพ็คเกจในเครื่อง
พิมพ์ yum list updates เพื่อดูรายชื่อแพ็คเกจทั้งหมด ที่มีเวอร์ชั่นใหม่ (ใน repos) ให้ปรับปรุง
[root@cent62-yum ~]# yum list updates Loaded plugins: fastestmirror, security Loading mirror speeds from cached hostfile Updated Packages at.x86_64 3.1.10-43.el6_2.1 updates bind-libs.x86_64 32:9.7.3-8.P3.el6_2.2 updates bind-utils.x86_64 32:9.7.3-8.P3.el6_2.2 updates chkconfig.x86_64 1.3.49.3-1.el6_2 updates cups-libs.x86_64 1:1.4.2-44.el6_2.3 updates ...
หากต้องการปรับปรุงแพ็คเกจทั้งหมด สามารถทำได้โดยพิมพ์ yum update โดยไม่ต้องตามด้วยชื่อแพ็คเกจใดๆ
[root@cent62-yum ~]# yum update Loaded plugins: fastestmirror, security Loading mirror speeds from cached hostfile Setting up Update Process Resolving Dependencies --> Running transaction check ---> Package at.x86_64 0:3.1.10-43.el6 will be updated ---> Package at.x86_64 0:3.1.10-43.el6_2.1 will be an update ---> Package bind-libs.x86_64 32:9.7.3-8.P3.el6 will be updated ---> Package bind-libs.x86_64 32:9.7.3-8.P3.el6_2.2 will be an update ---> Package bind-utils.x86_64 32:9.7.3-8.P3.el6 will be updated ---> Package bind-utils.x86_64 32:9.7.3-8.P3.el6_2.2 will be an update
...
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================ Package Arch Version Repository Size ================================================================================ Installing: kernel x86_64 2.6.32-220.13.1.el6 updates 24 M Updating: at x86_64 3.1.10-43.el6_2.1 updates 60 k bind-libs x86_64 32:9.7.3-8.P3.el6_2.2 updates 840 k bind-utils x86_64 32:9.7.3-8.P3.el6_2.2 updates 178 k
...
Transaction Summary ================================================================================ Install 1 Package(s) Upgrade 53 Package(s)
Total download size: 68 M Is this ok [y/N]:
ผลลัพธ์จะแสดงรายชื่อแพ็คเกจทั้งหมดที่จะปรับปรุง แสดงจำนวนแพ็คเกจ และขนาดรวมที่ต้องดาวน์โหลด พิมพ์ y แล้ว [Enter] เพื่อยืนยันการปรับปรุง
Is this ok [y/N]: y Downloading Packages: (1/54): at-3.1.10-43.el6_2.1.x86_64.rpm | 60 kB 00:01 (2/54): bind-libs-9.7.3-8.P3.el6_2.2.x86_64.rpm | 840 kB 00:04 (3/54): bind-utils-9.7.3-8.P3.el6_2.2.x86_64.rpm | 178 kB 00:01 (4/54): chkconfig-1.3.49.3-1.el6_2.x86_64.rpm | 159 kB 00:03
...
-------------------------------------------------------------------------------- Total 293 kB/s | 68 MB 03:58 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Updating : 12:dhcp-common-4.1.1-25.P1.el6_2.1.x86_64 1/107 Updating : kernel-firmware-2.6.32-220.13.1.el6.noarch 2/107 Updating : tzdata-2012b-3.el6.noarch 3/107 Updating : glibc-2.12-1.47.el6_2.9.x86_64 4/107
...
Installed: kernel.x86_64 0:2.6.32-220.13.1.el6
Updated: at.x86_64 0:3.1.10-43.el6_2.1 bind-libs.x86_64 32:9.7.3-8.P3.el6_2.2 bind-utils.x86_64 32:9.7.3-8.P3.el6_2.2 chkconfig.x86_64 0:1.3.49.3-1.el6_2
...
Complete!
รีสตาร์ตเครื่องหลังจาก update โปรแกรมทั้งเครื่อง
เมื่อบู๊ตเครื่องขึ้นมาแล้ว ลองใช้ yum list updates อีกครั้ง
[root@cent62-yum ~]# yum list updates Loaded plugins: fastestmirror, security Loading mirror speeds from cached hostfile
ไม่มีแพ็คเกจให้ update อีกแล้ว หรือหมายความว่าเครื่องลีนุกซ์ของเราติดตั้งหรือปรับปรุงโปรแกรมเป็นเวอร์ชั่นใหม่ล่าสุด เท่ากับไฟล์ที่อยู่ใน repos แล้ว
ปรับปรุงเวอร์ชั่นจาก CentOS 6.0 เป็น 6.2
หากเราติดตั้ง CentOS เวอร์ชั่นเก่า เช่น 6.0 แล้วต้องการปรับปรุงเป็นเวอร์ชั่นใหม่ เราสามารถใช้คำสั่ง yum update เพื่อปรับปรุงได้ แทนที่ต้องใช้แผ่นดีวีดีติดตั้งใหม่ทั้งหมด
แต่ไม่สามารถจะปรับปรุงข้าม Major เวอร์ชั่นได้ เช่นไม่สามารถปรับปรุงจาก 5.5 เป็น 6.2 ได้ ทำได้เฉพาะภายใต้ Major เวอร์ชั่นเดียวกันเท่านั้น
ตัวอย่างเครื่องที่ติดตั้ง CentOS 6.0 ไว้
[root@cent60 ~]# cat /etc/redhat-release CentOS Linux release 6.0 (Final)
[root@cent60 ~]# uname -a Linux cent60.example.com 2.6.32-71.el6.x86_64 #1 SMP Fri May 20 03:51:51 BST 2011 x86_64 x86_64 x86_64 GNU/Linux
ต้องการจะ update เป็น CentOS 6.2 สามารถใช้ yum update เพื่อปรับปรุงได้
[root@cent60 ~]# yum update Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile Setting up Update Process Resolving Dependencies --> Running transaction check ---> Package abrt.x86_64 0:2.0.4-14.el6.centos set to be updated --> Processing Dependency: libreport.so.0()(64bit) for package: abrt-2.0.4-14.el6.centos.x86_64 --> Processing Dependency: libabrt_dbus.so.0()(64bit) for package: abrt-2.0.4-14.el6.centos.x86_64 ---> Package abrt-addon-ccpp.x86_64 0:2.0.4-14.el6.centos set to be updated --> Processing Dependency: libbtparser.so.2()(64bit) for package: abrt-addon-ccpp-2.0.4-14.el6.centos.x86_64 ---> Package abrt-addon-kerneloops.x86_64 0:2.0.4-14.el6.centos set to be updated --> Processing Dependency: libreport-plugin-kerneloops for package: abrt-addon-kerneloops-2.0.4-14.el6.centos.x86_64 ---> Package abrt-addon-python.x86_64 0:2.0.4-14.el6.centos set to be updated ---> Package abrt-cli.x86_64 0:2.0.4-14.el6.centos set to be updated --> Processing Dependency: libreport-cli for package: abrt-cli-2.0.4-14.el6.centos.x86_64 --> Processing Dependency: libreport-plugin-mailx for package: abrt-cli-2.0.4-14.el6.centos.x86_64 ---> Package abrt-libs.x86_64 0:2.0.4-14.el6.centos set to be updated
...
Dependencies Resolved
================================================================================================================================ Package Arch Version Repository Size ================================================================================================================================ Installing: abrt x86_64 2.0.4-14.el6.centos base 210 k replacing abrt-plugin-sosreport.x86_64 1.1.13-4.el6 kernel x86_64 2.6.32-220.13.1.el6 updates 24 M libreport-plugin-logger x86_64 2.0.5-20.el6 base 16 k replacing abrt-plugin-logger.x86_64 1.1.13-4.el6 libreport-plugin-rhtsupport x86_64 2.0.5-20.el6 base 24 k replacing abrt-plugin-rhtsupport.x86_64 1.1.13-4.el6 Updating: abrt-addon-ccpp x86_64 2.0.4-14.el6.centos base 93 k abrt-addon-kerneloops x86_64 2.0.4-14.el6.centos base 63 k abrt-addon-python x86_64 2.0.4-14.el6.centos base 57 k abrt-cli x86_64 2.0.4-14.el6.centos base 55 k abrt-libs x86_64 2.0.4-14.el6.centos base 53 k
...
Transaction Summary ================================================================================================================================ Install 12 Package(s) Upgrade 220 Package(s)
Total download size: 152 M Is this ok [y/N]:
ตอบ y เพื่อยืนยันการปรับปรุง
Is this ok [y/N]: y Downloading Packages: (1/232): abrt-2.0.4-14.el6.centos.x86_64.rpm | 210 kB 00:01 (2/232): abrt-addon-ccpp-2.0.4-14.el6.centos.x86_64.rpm | 93 kB 00:00 (3/232): abrt-addon-kerneloops-2.0.4-14.el6.centos.x86_64.rpm | 63 kB 00:00 (4/232): abrt-addon-python-2.0.4-14.el6.centos.x86_64.rpm | 57 kB 00:00 (5/232): abrt-cli-2.0.4-14.el6.centos.x86_64.rpm | 55 kB 00:00 (6/232): abrt-libs-2.0.4-14.el6.centos.x86_64.rpm | 53 kB 00:00
...
-------------------------------------------------------------------------------------------------------------------------------- Total 272 kB/s | 152 MB 09:34
Is this ok [y/N]: y
ตอบ y เพื่อยืนยันการปรับปรุง
Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Updating : libgcc-4.4.6-3.el6.x86_64 1/456 Updating : setup-2.8.14-13.el6.noarch 2/456 warning: /etc/shadow created as /etc/shadow.rpmnew Updating : filesystem-2.4.30-3.el6.x86_64 3/456 Updating : centos-release-6-2.el6.centos.7.x86_64 4/456
...
Installed: abrt.x86_64 0:2.0.4-14.el6.centos kernel.x86_64 0:2.6.32-220.13.1.el6 libreport-plugin-logger.x86_64 0:2.0.5-20.el6 libreport-plugin-rhtsupport.x86_64 0:2.0.5-20.el6
Dependency Installed: btparser.x86_64 0:0.13-1.el6 dhcp-common.x86_64 12:4.1.1-25.P1.el6_2.1 libreport.x86_64 0:2.0.5-20.el6 libreport-cli.x86_64 0:2.0.5-20.el6 libreport-plugin-kerneloops.x86_64 0:2.0.5-20.el6 libreport-plugin-mailx.x86_64 0:2.0.5-20.el6 libreport-plugin-reportuploader.x86_64 0:2.0.5-20.el6 libreport-python.x86_64 0:2.0.5-20.el6
Updated: abrt-addon-ccpp.x86_64 0:2.0.4-14.el6.centos abrt-addon-kerneloops.x86_64 0:2.0.4-14.el6.centos abrt-addon-python.x86_64 0:2.0.4-14.el6.centos abrt-cli.x86_64 0:2.0.4-14.el6.centos abrt-libs.x86_64 0:2.0.4-14.el6.centos acl.x86_64 0:2.2.49-6.el6
...
Replaced: abrt-plugin-logger.x86_64 0:1.1.13-4.el6 abrt-plugin-rhtsupport.x86_64 0:1.1.13-4.el6 abrt-plugin-sosreport.x86_64 0:1.1.13-4.el6
Complete!
รีสตาร์ตเครื่อง แล้วตรวจสอบผลที่ได้
[root@cent60 ~]# cat /etc/redhat-release CentOS release 6.2 (Final)
[root@cent60 ~]# uname -a Linux cent60.example.com 2.6.32-220.13.1.el6.x86_64 #1 SMP Tue Apr 17 23:56:34 BST 2012 x86_64 x86_64 x86_64 GNU/Linux