รับทําเว็บไซต์ รับทําseo
บทความที่น่าสนใจ

บทความ ที่น่าสนใจ

Linux Server (CentOS) : การใช้งานคำสั่ง yum

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