اطلاعیه

بستن
هنوز اطلاعیه ای در دست نیست.

20 دستور از YUM برای مدیریت پکیج ها (Yellowdog Updater, Modified)

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

    20 دستور از YUM برای مدیریت پکیج ها (Yellowdog Updater, Modified)

    در این آموزش ما نحوه نصب آپدیت، حذف و پیدا کردن پکیج ها، مدیریت پکیج ها و ریپازیتوری ها روی سیستم های لینوکسی با استفاده از دستور yum (مخفف Yellowdog Updater, Modified) ابزاری که توسط RedHat توسعه شده را آموزش خواهیم داد. کامند های نمونه که در این مقاله آموزش میدهیم روی سرور centos 6.3 خودمان تست کرده ایم و شما میتوانید این document را به منظور مطالعه certification و یا حتی برای نصب پکیج های جدید و به روز نگه داشتن سیستم تان استفاده کنید.

    برای اینکه این مقاله را به خوبی بفهمید باید درک پایه ای از دستورات و کار با سیستم عامل لینوکس را بدانید تا بتوانید دستورهای لیست شده در زیر را تمرین و یاد بگیرید.
    دستور yum در لینوکس



    همچنین توصیه میشود مطالعه کنید :

    نحوه نصب پکیج های rpm در لینوکس (RHEL/CentOS) به همراه 20 مثال عملی




    دستور YUM چیست ؟

    yum مخفف Yellowdog Updater Modified یک دستور opensource میباشد و همچنین ابزار مدیریت پکیج به صورت گرافیکی برای rpm مخفف RedHat Package Manager روی سیستم های لینوکسی میباشد این نرم افزار به کاربران و مدیران سیستم این امکان را میدهد تا با آسانی پکیج های نرم افزاری را روی یک سیستم نصب آپدیت جذف و یا سرچ کند. این نرم افزار توسط Seth Vidal تحت لیسانس GPL مخفف General Public License به عنوان یک سورس باز develop و release شد. کدباز یا opensource یعنی اینکه هر کسی اجازه دسترسی و دانلود کد آن را برای رفع باگ ها و develop پکیج ها دارد.

    yum از تعدادی repository برای نصب پکیج ها به صورت اتوماتیک و با رفع مشکلات dependency آنها استفاده میکند.



    1 - نصب یک پکیج با استفاده از YUM :

    برای نصب پکیجی با نام فایرفاکس 14 کافیست دستور زیر را اجرا کنید که به صورت اتوماتیک پکیج های پیش نیاز مورد نظر برای فایرفاکس 14 را پیدا و نصب میکند :
    کد PHP:
    # yum install firefox
    Loaded pluginsfastestmirror
    Dependencies Resolved

    ================================================================================================
     
    Package                    Arch        Version                    Repository            Size        
    ================================================================================================
    Updating:
    firefox                        i686        10.0.6-1.el6.centos     updates             20 M
    Updating 
    for dependencies:
     
    xulrunner                     i686        10.0.6-1.el6.centos     updates             12 M

    Transaction Summary
    ================================================================================================
    Install       0 Package(s)
    Upgrade       2 Package(s)

    Total download size32 M
    Is this ok 
    [y/N]: y
    Downloading Packages
    :
    (
    1/2): firefox-10.0.6-1.el6.centos.i686.rpm                                |  20 MB   01:10
    (2/2): xulrunner-10.0.6-1.el6.centos.i686.rpm                              |  12 MB   00:52
    ------------------------------------------------------------------------------------------------
    Total                                                           63 kB/|  32 MB   02:04

    Updated
    :
      
    firefox.i686 0:10.0.6-1.el6.centos

    Dependency Updated
    :
      
    xulrunner.i686 0:10.0.6-1.el6.centos

    Complete

    دستور زیر برای نصب هر پکیج روی سیستم تان از شما تاییدیه میگیرد. اگر شما بخواهید پکیج ها به صورت اتوماتیک و بدون سوال برای تایید شما نصب شوند باید از آپشن y- در کامند yum استفاده شود :
    کد PHP:
    # yum -y install firefox 


    2 - حذف یک پکیج با استفاده از YUM :

    برای حذف یک پکیج به صورت کامل با تمام پیش نیازهایش دستور زیر را اجرا کنید :
    کد PHP:
    # yum remove firefox
    Loaded pluginsfastestmirror
    Setting up Remove Process
    Resolving Dependencies
    --> Running transaction check
    ---> Package firefox.i686 0:10.0.6-1.el6.centos set to be erased
    --> Finished Dependency Resolution

    Dependencies Resolved

    ====================================================================================================
     
    Package                    Arch        Version                        Repository            Size        
    ====================================================================================================
    Removing:
     
    firefox                    i686        10.0.6-1.el6.centos            @updates              23 M

    Transaction Summary
    ====================================================================================================
    Remove        1 Package(s)
    Reinstall     0 Package(s)
    Downgrade     0 Package(s)

    Is this ok [y/N]: y
    Downloading Packages
    :
    Running rpm_check_debug
    Running Transaction Test
    Transaction Test Succeeded
    Running Transaction
       Erasing        
    :  firefox-10.0.6-1.el6.centos.i686                                                                                                                           1/1

    Removed
    :
      
    firefox.i686 0:10.0.6-1.el6.centos

    Complete

    همانطور که میبینید دستور بالا هم از شما سوال تاییدیه برای حذف پکیج میپرسد که شما با آپشن y- این سوال را غیرفعال میکنید :
    کد PHP:
    # yum -y remove firefox 


    3 - آپدیت/به روز رسانی یک پکیج با استفاده از YUM :

    فرض کنید ورژن پکیج mysql شما قدیمی شده باشد و میخواهید آن را به آخرین ورژن ثابت موجود آپدیت کنید فقط کافیست دستور زیر را اجرا کنید که به صورت اتوماتیک تمام dependency ها را نیز نصب خواهد کرد :
    کد PHP:
    # yum update mysql
    Loaded pluginsfastestmirror
    Dependencies Resolved

    ============================================================================================================
     
    Package            Arch                Version                    Repository                    Size
    ============================================================================================================
    Updating:
     
    vsftpd             i386                2.0.5-24.el5_8.1           updates                       144 k

    Transaction Summary
    ============================================================================================================
    Install       0 Package(s)
    Upgrade       1 Package(s)

    Total size144 k
    Is this ok 
    [y/N]: y
    Downloading Packages
    :
    Running rpm_check_debug
    Running Transaction Test
    Finished Transaction Test
    Transaction Test Succeeded
    Running Transaction
      Updating       
    vsftpd                                                                     1/2
      Cleanup        
    vsftpd                                                                     2/2

    Updated
    :
      
    vsftpd.i386 0:2.0.5-24.el5_8.1

    Complete



    4 - لیست کردن یک پکیج با استفاه از YUM :

    با استفاده از Function لیست (list) پکیج مورد نظر با نام مشخص شده را سرچ خواهد کرد. برای مثال برای سرچ پکیجی با نام openssh دستور زیر را اجرا میکنیم :
    کد PHP:
    # yum list openssh
    Loaded pluginsfastestmirror
    Loading mirror speeds from cached hostfile
     
    basemirror.neu.edu.cn
     
    epelmirror.neu.edu.cn
     
    extrasmirror.neu.edu.cn
     
    rpmforgemirror.nl.leaseweb.net
     
    updatesmirror.nus.edu.sg
    Installed Packages
    openssh
    .i386                                         4.3p2-72.el5_6.3                                                                       installed
    Available Packages                                  4.3p2
    -82.el5                                                                           base 
    برای اینکه سرچ خود را دقیق تر انجام بدید نام پکیج را به همراه ورژن آن مشخص کنید. برای مثال برای سرچ ورژن خاصی از openssh-4.3p2 دستور زیر را اجرا کنید :
    کد PHP:
    # yum list openssh-4.3p2 


    5 - جستجو یک پکیج با استفاده از YUM :

    اگر شما نام دقیق پکیجی را به خاطر نمی آورید باید از function سرچ (serch) استفاده کنید تا تمام پکیج های موجود که با نام پکیجی که مورد نظر شماست match باشند را پیدا کند. برای مثال برای جستجو کردن تمامی پکیج ها که با word مچ هستند دستور زیر را اجرا کنید :
    کد PHP:
    # yum search vsftpd
    Loaded pluginsfastestmirror
    Loading mirror speeds from cached hostfile
     
    basemirror.neu.edu.cn
     
    epelmirror.neu.edu.cn
     
    extrasmirror.neu.edu.cn
     
    rpmforgemirror.nl.leaseweb.net
     
    updatesftp.iitm.ac.in
    ============================== Matchedvsftpd ========================
    ccze.i386 A robust log colorizer
    pure
    -ftpd-selinux.i386 SELinux support for Pure-FTPD
    vsftpd
    .i386 vsftpd Very Secure Ftp Daemon 


    6 - دریافت اطلاعات یک پکیج با استفاده از YUM :

    مثلا شما میخواهید اطلاعاتی در مورد یک پکیج قبل از نصب آن داشته باشید که دستور زیر را اجرا میکنیم :
    کد PHP:
    # yum info firefox
    Loaded pluginsfastestmirror
    Loading mirror speeds from cached hostfile
     
    basemirror.neu.edu.cn
     
    epelmirror.neu.edu.cn
     
    extrasmirror.neu.edu.cn
     
    rpmforgemirror.nl.leaseweb.net
     
    updatesftp.iitm.ac.in
    Available Packages
    Name       
    firefox
    Arch       
    i386
    Version    
    10.0.6
    Release    
    1.el5.centos
    Size       
    20 M
    Repo       
    updates
    Summary    
    Mozilla Firefox Web browser
    URL        
    http://www.mozilla.org/projects/firefox/
    License    MPLv1.1 or GPLv2+ or LGPLv2+
    DescriptionMozilla Firefox is an open-source web browserdesigned for standards
               
    complianceperformance and portability


    7 - لیست کردن تمام پکیج های موجود با استفاده از YUM :

    برای لیست کردن تمام پکیج های موجود در دیتابیس yum دستور زیر را اجرا کنید :
    کد PHP:
    # yum list | less 


    8 - لیست همه پکیج های نصب شده با استفاده از YUM :

    برای لیست کردن تمامی پکیج های نصب شده روی یک سیستم دستور زیر را اجرا مکنیم :
    کد PHP:
    # yum list installed | less 


    9 - فانکشن Provides در YUM :

    function provides برای پیدا کردن این است که کدام پکیج ها به فایل مشخص شده تعلق دارند. برای مثال اگر شما بخواهید نام پکیجی را که فایل /etc/httpd/conf/httpd.conf/ به آن متعلق هست را بدانید دستور زیر را اجرا کنید :
    کد PHP:
    # yum provides /etc/httpd/conf/httpd.conf
    Loaded pluginsfastestmirror
    httpd
    -2.2.3-63.el5.centos.i386 Apache HTTP Server
    Repo        
    base
    Matched from
    :
    Filename    : /etc/httpd/conf/httpd.conf

    httpd
    -2.2.3-63.el5.centos.1.i386 Apache HTTP Server
    Repo        
    updates
    Matched from
    :
    Filename    : /etc/httpd/conf/httpd.conf

    httpd
    -2.2.3-65.el5.centos.i386 Apache HTTP Server
    Repo        
    updates
    Matched from
    :
    Filename    : /etc/httpd/conf/httpd.conf

    httpd
    -2.2.3-53.el5.centos.1.i386 Apache HTTP Server
    Repo        
    installed
    Matched from
    :
    Other       Provides-match: /etc/httpd/conf/httpd.conf 


    10 - چک کردن آپدیت های موجود با استفاده از YUM :

    برای پیدا کردن این که چند پکیج نصب شده روی سیستم تان ورژن جدیدی برای آن موجود است دستور زیر را اجرا میکنید :
    کد PHP:
    # yum check-update 


    11 - آپدیت کردن سیستم با استفاده از YUM :

    برای اینکه سیستم تان را با تمام اپدیت های پکیج باینری و امنیتی به روز نگه دارید دستور زیر را اجرا کنید. این دستور تمامی آخرین patch ها و آپدیت های امنیتی را در سیستم شما نصب خواهد کرد :
    کد PHP:
    # yum update 


    12 - لیست کردن گروهی تمامی پکیج های موجود :

    در لینوکس تعدادی از پکیج ها به گروه خاصی متعلق هستند به جای نصب پکیج های مجزا با yum شما میتوانید گروه خاص را با تمامی پکیج هایی مربوطه و متعلق به گروه نصب کنید. برای مثال برای لیست کردن تمام گروه های موجود فقط دستور زیر را اجرا کنید :
    کد PHP:
    # yum grouplist
    Installed Groups:
       
    Administration Tools
       DNS Name Server
       Dialup Networking Support
       Editors
       Engineering 
    and Scientific
       FTP Server
       Graphics
       Java Development
       Legacy Network Server
    Available Groups
    :
       
    Authoring and Publishing
       Base
       Beagle
       Cluster Storage
       Clustering
       Development Libraries
       Development Tools
       Eclipse
       Educational Software
       KDE 
    (K Desktop Environment)
       
    KDE Software Development 


    13 - نصب گروهی یک پکیج :

    برای نصب یک پکیج گروهی باید از آپشن groupinstall استفاده کنیم. برای مثال به منظور نصب Mysql Database دستور زیر را اجرا میکنیم :
    کد PHP:
    # yum groupinstall 'MySQL Database'
    Dependencies Resolved

    =================================================================================================
    Package                                Arch      Version             Repository        Size
    =================================================================================================
    Updating:
     
    unixODBC                           i386      2.2.11-10.el5      base              290 k
    Installing 
    for dependencies:
     
    unixODBC-libs                      i386      2.2.11-10.el5      base              551 k

    Transaction Summary
    =================================================================================================
    Install       1 Package(s)
    Upgrade       1 Package(s)

    Total size841 k
    Is this ok 
    [y/N]: y
    Downloading Packages
    :
    Running rpm_check_debug
    Running Transaction Test
    Finished Transaction Test
    Transaction Test Succeeded
    Running Transaction
      Installing     
    unixODBC-libs    1/3
      Updating       
    unixODBC         2/3
      Cleanup        
    unixODBC         3/3

    Dependency Installed
    :
      
    unixODBC-libs.i386 0:2.2.11-10.el5

    Updated
    :
      
    unixODBC.i386 0:2.2.11-10.el5

    Complete



    14 - آپدیت/به روز رسانی گروهی یک پکیج :

    به منظور آپدیت کردن پکیج گروهی نصب شده موجود در سیستم تان کافیست دستور زیر را در سیستم تان اجرا کنید :
    کد PHP:
    # yum groupupdate 'DNS Name Server'

    Dependencies Resolved
    ================================================================================================================
     
    Package            Arch            Version                Repository           Size
    ================================================================================================================
    Updating:
     
    bind                           i386            30:9.3.6-20.P1.el5_8.2          updates              981 k
     bind
    -chroot                    i386            30:9.3.6-20.P1.el5_8.2          updates              47 k
    Updating 
    for dependencies:
     
    bind-libs                      i386            30:9.3.6-20.P1.el5_8.2          updates              864 k
     bind
    -utils                     i386            30:9.3.6-20.P1.el5_8.2          updates              174 k

    Transaction Summary
    ================================================================================================================
    Install       0 Package(s)
    Upgrade       4 Package(s)

    Total size2.0 M
    Is this ok 
    [y/N]: y
    Downloading Packages
    :
    Running rpm_check_debug
    Running Transaction Test
    Finished Transaction Test
    Transaction Test Succeeded
    Running Transaction
      Updating       
    bind-libs            1/8
      Updating       
    bind                 2/8
      Updating       
    bind-chroot          3/8
      Updating       
    bind-utils           4/8
      Cleanup        
    bind                 5/8
      Cleanup        
    bind-chroot          6/8
      Cleanup        
    bind-utils           7/8
      Cleanup        
    bind-libs            8/8

    Updated
    :
      
    bind.i386 30:9.3.6-20.P1.el5_8.2                  bind-chroot.i386 30:9.3.6-20.P1.el5_8.2

    Dependency Updated
    :
      
    bind-libs.i386 30:9.3.6-20.P1.el5_8.2             bind-utils.i386 30:9.3.6-20.P1.el5_8.2

    Complete



    15 - پاک کردن گروهی یک پکیچ :

    برای حذف هر پکیج گروهی نصب شده موجود در سیستم تان فقط کافیست دستور زیر را اجرا کنید :
    کد PHP:
    # yum groupremove 'DNS Name Server'

    Dependencies Resolved

    ===========================================================================================================
     
    Package                Arch              Version                         Repository          Size
    ===========================================================================================================
    Removing:
     
    bind                   i386              30:9.3.6-20.P1.el5_8.2          installed           2.1 M
     bind
    -chroot            i386              30:9.3.6-20.P1.el5_8.2          installed           0.0

    Transaction Summary
    ===========================================================================================================
    Remove        2 Package(s)
    Reinstall     0 Package(s)
    Downgrade     0 Package(s)

    Is this ok [y/N]: y
    Downloading Packages
    :
    Running rpm_check_debug
    Running Transaction Test
    Finished Transaction Test
    Transaction Test Succeeded
    Running Transaction
      Erasing        
    bind                                                   1/2
    warning
    : /etc/sysconfig/named saved as /etc/sysconfig/named.rpmsave
      Erasing        
    bind-chroot                                            2/2

    Removed
    :
      
    bind.i386 30:9.3.6-20.P1.el5_8.2                                        bind-chroot.i386 30:9.3.6-20.P1.el5_8.2

    Complete



    16 - لیست کردن ریپازیتوری های YUM فعال شده :

    برای لیست کردن تمامی repository های yum فعال شده (Enabled) دستور زیر را اجرا کنید :
    کد PHP:
    # yum repolist

    repo id                     repo name                                            status
    base                        CentOS
    -Base                                      enabled:  2,725
    epel                        Extra Packages 
    for Enterprise Linux 5 i386         enabled:  5,783
    extras                      CentOS
    -Extras                                    enabled:    282
    mod
    -pagespeed               mod-pagespeed                                        enabled:      1
    rpmforge                    RHEL 5 
    RPMforge.net dag                          enabled11,290
    updates                     CentOS
    -Updates                                   enabled:    743
    repolist
    20,824 
    برای اینکه تمامی ریپازیتوری ها yum چه فعال و چه غیرفعال (Enabled or Disabled) دستور زیر را اجرا کنید :
    کد PHP:
    # yum repolist all

    repo id                     repo name                                            status
    C5.0
    -base                   CentOS-5.0 Base                                    disabled
    C5.0
    -centosplus             CentOS-5.0 Plus                                    disabled
    C5.0
    -extras                 CentOS-5.0 Extras                                  disabled
    base                        CentOS
    -Base                                      enabled:  2,725
    epel                        Extra Packages 
    for Enterprise Linux 5 i386         enabled:  5,783
    extras                      CentOS
    -Extras                                    enabled:    282
    repolist
    20,824 


    17 - نصب یک پکیج از یک repository خاص :

    برای نصب یک پکیج خاص از یک ریپازیتوری فعال یا غیرفعال شما باید از آپشن enablerepo-- در کامند yum خود استفاده کنید. برای مثال برای نصب mphmyadmin 3.5.2 از سایت (ریپازیتوری) EPEL دستور زیر را اجرا کنید :
    کد PHP:
    # yum --enablerepo=epel install phpmyadmin

    Dependencies Resolved
    =============================================================================================
     
    Package                Arch           Version            Repository           Size
    =============================================================================================
    Installing:
     
    phpMyAdmin             noarch         3.5.1-1.el6        epel                 4.2 M

    Transaction Summary
    =============================================================================================
    Install       1 Package(s)

    Total download size4.2 M
    Installed size
    17 M
    Is this ok 
    [y/N]: y
    Downloading Packages
    :
    phpMyAdmin-3.5.1-1.el6.noarch.rpm                       4.2 MB     00:25
    Running rpm_check_debug
    Running Transaction Test
    Transaction Test Succeeded
    Running Transaction
      Installing 
    phpMyAdmin-3.5.1-1.el6.noarch             1/1
      Verifying  
    phpMyAdmin-3.5.1-1.el6.noarch             1/1

    Installed
    :
      
    phpMyAdmin.noarch 0:3.5.1-1.el6

    Complete



    18 - محیط Shell دستور YUM :

    با دستور زیر shell فراهم میشود که شما میتوانید چندین دستور را در آن اجرا کنید که به آن شل yum میگویند :
    کد PHP:
    # yum shell
    Loaded pluginsfastestmirror
    Setting up Yum Shell
    update httpd
    Loading mirror speeds from cached hostfile
     
    basemirrors.sin3.sg.voxel.net
     
    epelftp.riken.jp
     
    extrasmirrors.sin3.sg.voxel.net
     
    updatesmirrors.sin3.sg.voxel.net
    Setting up Update Process



    19 - پاک کردن Cache YUM :

    به صورت پیش فرض yum تمامی اطلاعات پکیج های ریپازیتوری های فعال (Enabled) را در /var/cashe/yum/ با هر زیر دایرکتوری نگه داری میکند. برای حذف تمام فایل های cashe از repository های فعال شما نیاز دارید که دستور زیر را مرتبا اجرا کنید تا تمامی cashe ها پاک شوند و مطمین شوید که فضای غیرضروری استفاده شده است. ما خروجی دستور زیر را قرار نمیدهیم زیرا نمیخواهیم اطلاعات cashe مان پاک شود :
    کد PHP:
    # yum clean all 


    20 - نمایش History از YUM :

    برای نمایش تمامی تراکنش های گذشته (History) از دستور yum کافیست دستور زیر را اجرا کنید :
    کد PHP:
    # yum history

    Loaded pluginsfastestmirror
    ID     
    Login user               Date and time    Action(s)      | Altered
    -------------------------------------------------------------------------------
        
    10 root               2012-08-11 15:19 Install        |    3
         9 
    root               2012-08-11 15:11 Install        |    1
         8 
    root               2012-08-11 15:10 Erase          |    1 EE
         7 
    root               2012-08-10 17:44 Install        |    1
         6 
    root               2012-08-10 12:19 Install        |    2
         5 
    root               2012-08-10 12:14 Install        |    3
         4 
    root               2012-08-10 12:12 IU           |   13 E<
         
    root               2012-08-09 13:01 Install        |    >
         
    root               2012-08-08 20:13 IU           |  292 EE
         1 
    System            2012-08-08 17:15 Install        |  560
    history 
    list 

    ما تلاش کردیم تا تمامی کامندهای yum از مقدماتی تا پیشرفته با مثال هایشان را توضیح دهیم. اگر هرگونه موردی از دستور yum فراموش شده لطفا آن را اضافه و مطلب را آپدیت کنید.


    همچنین توصیه میشود مطالعه کنید :

    25 دستور پایه از apt-get و apt-cache برای مدیریت پکیج ها در توزیع های دبیان - اوبونتو


    هر گونه کپی برداری با کمی تغییر در عنوان و متن نوشته ها غیر قابل قبول منطقه لینوکسی ها میباشد.


    موفق باشید
    محمد هابیلی
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 02-17-2021, 11:35 AM.

درباره انجمن منطقه لینوکسی ها

انجمن منطقه لینوکسی ها با هدف ارتقاء سطح علمی کاربران در سطح جهانی و همچنین کمک به بالا بردن سطح علمی عمومی در زمینه های تخصصی فوق پایه گذاری شده است. انجمن منطقه لینوکسی ها از طریق کارشناسان و متخصصان پاسخگوی سوالات گوناگون کاربران مبتدی یا پیشرفته میباشد تا حد امکان تلاش شده که محیطی متنوع و کاربر پسند و به دور از هرگونه حاشیه جهت فعالیت کاربران در این انجمن ایجاد شود. لذا ما به صورت مستمر برای پیشرفت کمی و کیفی محتوی و اطلاعات انجمنمان میکوشیم که این برای ما ارزشمند و حائز اهمیت است. کلیه حقوق،اطلاعات و مقالات در این انجمن متعلق به سایت منطقه لینوکسی ها میباشد، و هرگونه نسخه برداری بدون ذکر منبع مورد پیگرد قانونی خواهد شد.

شبکه های اجتماعی
در حال انجام ...
X