ใช้ yum ปรับปรุงเวอร์ชั่นของแพ็คเกจ

ทางทีมดูแลพัฒนา 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 

 

ข้อมูลอ้างอิง

Leave a Reply

Your email address will not be published.