LPIC-1Linux

آموزش لینوکس : استفاده از مدیر بسته YUM و RPM

امروز می خواهیم مدیر بسته YUM و RPM را که مخصوص خانواده ردهت (RedHat) می باشد را معرفی کنیم. در پست قبل “استفاده از مدیر بسته دبیان” هم درباره خانواده دبیان صحبت کردیم و هم توضیحاتی درباره تمام انواع پکیج ها دادیم، پس بهتر است قبل از این که این پست را بخوانید سری به پست قبل نیز بزنید زیرا موارد مشابه زیادی دارند.

لوگوی شرکت ردهت | استفاده از مدیر بسته YUM و RPM
لوگوی شرکت ردهت | استفاده از مدیر بسته YUM و RPM

اول یه توضیح درباره خود ردهت بدیم، رد هت (Red Hat) یک شرکت آمریکایی نرم‌افزار متن باز و سازنده مهم توزیع لینوکس است، که در سال 1993 در رالی، کارولینای شمالی تأسیس شده‌است. این شرکت پشتیبان توزیع‌های لینوکس، Red Hat Enterprise Linux و فدورا می‌باشد. لینوکس رد هت هم توسط این شرکت ایجاد شده‌است. این شرکت با نام رد هت اینکوپریشن در بورس نیویورک به فروش سهام خود مشغول است.

در اوایل سال 1991، باب یانگ نرم‌افزار آزاد و یونیکس را به مدیران سیستم حاضر در نیویورک معرفی کرد. پس از آن، او در سال 1993 شرکت ای‌سی‌سی اینکوپریشن را راه‌اندازی کرد که به فروش نرم‌افزارهای لینوکس و یونیکس و مجله‌های مربوط به آن‌ها می‌پرداخت. مارک ارویگ در اکتبر 1994 نسخه‌ای از لینوکس خود را با نام ردهت عرضه کرد که به «انتشار هالوین» معروف است. در سال 1995، یانگ لینوکس ارویگ را خریداری و با شرکت خود ادغام کرد و سپس نام شرکت را به ردهت تغییر داد. ارویگ و یانگ در همان سال، نسخهٔ 2 لینوکس ردهت را منتشر کردند که برای اولین بار شامل سیستم مدیریت بسته‌های آرپی‌ام (RPM) بود. این شرکت تاکنون به پیشرفت و گسترش سیستم‌های لینوکس کمک کرده‌است.

درحال حاضر به دلیل رایگان بودن سِنت او. اِس. (CentOS) خیلی از افراد از آن استفاده می کنند زیرا یک نسخه رایگان از Red Hat می باشد و تقریبا تمام ویژگی های آن را نیز دارد.

مدیر بسته YUM و RPM

آموزش نصب فایل rpm

مانند سناریو قبل ما باز کار خود را روی نرم افزار bzr انجام می دهیم، فرمت rpm مخصوص فایل های ردهتی و خانواده آن است، برای مثال ما فایل bzr-2.6.0-2.fc20.x86_64.rpm را دانلود کرده ایم و با دستور زیر میتوانیم آن را نصب کنیم:

rpm -i bzr-2.6.0-2.fc20.x86_64.rpm 

ولی به ما ارور زیر را می دهد:

error: Failed dependencies:
    python-paramiko is needed by bzr-2.6.0-2.fc20.x86_64

دلیل این پیغام این است که نیاز به کتابخانه python-paramiko دارد و شما باید اول python-paramiko را نصب کنید و سپس bzr-2.6.0-2.fc20.x86_64.rpm  را نصب کنید.

آموزش نصب برنامه با yum

ولی برای این که به مشکل بالا بر نخورید میتونید از مخازن دستور yum استفاده کنید که دقیقا شبیه به apt و apt-get عمل می کند، البته یک فرق کوچک دارد، شما در apt و apt-get اول باید از دستور update استفاده می کردید تا repository های آن بروز شود و سپس دستور نصب را می زدید ولی در yum به این صورت نیست، خود yum به صورت خودکار اول repository ها را برسی و بروز می کنند و سپس شروع به دانلود و نصب می کند.

برای نصب bzr از دستور زیر در yum استفاده می کنیم:

[root@localhost ~]# yum install bzr

و بعد از آپدیت و نصب با صفحه ای به شکل زیر رو به رو می شویم که به ما می گوید موفقیت آمیز بوده است:

Loaded plugins: langpacks
Resolving Dependencies
--> Running transaction check
---> Package bzr.x86_64 0:2.6.0-2.fc20 will be installed
--> Processing Dependency: python-paramiko for package: bzr-2.6.0-2.fc20.x86_64
--> Running transaction check
---> Package python-paramiko.noarch 0:1.15.1-1.fc20 will be installed
--> Processing Dependency: python-crypto >= 2.1 for package: python-paramiko-1.15.1-1.fc20.noarch
--> Running transaction check
---> Package python-crypto.x86_64 0:2.6.1-1.fc20 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=========================================================================================================================
 Package                          Arch                    Version                         Repository                Size
=========================================================================================================================
Installing:
 bzr                              x86_64                  2.6.0-2.fc20                    fedora                   6.3 M
Installing for dependencies:
 python-crypto                    x86_64                  2.6.1-1.fc20                    fedora                   470 k
 python-paramiko                  noarch                  1.15.1-1.fc20                   updates                  998 k

Transaction Summary
=========================================================================================================================
Install  1 Package (+2 Dependent packages)

Total size: 7.7 M
Total download size: 998 k
Installed size: 36 M
Is this ok [y/d/N]: y
Downloading packages:
Not downloading Presto metadata for updates
python-paramiko-1.15.1-1.fc20.noarch.rpm                                                          | 998 kB  00:00:32     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : python-crypto-2.6.1-1.fc20.x86_64                                                                     1/3 
  Installing : python-paramiko-1.15.1-1.fc20.noarch                                                                  2/3 
  Installing : bzr-2.6.0-2.fc20.x86_64                                                                               3/3 
  Verifying  : python-crypto-2.6.1-1.fc20.x86_64                                                                     1/3 
  Verifying  : python-paramiko-1.15.1-1.fc20.noarch                                                                  2/3 
  Verifying  : bzr-2.6.0-2.fc20.x86_64                                                                               3/3 

Installed:
  bzr.x86_64 0:2.6.0-2.fc20                                                                                              

Dependency Installed:
  python-crypto.x86_64 0:2.6.1-1.fc20                       python-paramiko.noarch 0:1.15.1-1.fc20                      

Complete!

همانطور که در متن بالا می بینید به ما گفته برای نصب bzr چند پکیج دیگه هم مانند پایتون و موارد دیگر نصب شده است.

محل repository های yum

دقیقا مثل دیبان در این جا هم ما فایل تنظیمات را داخل etc در /etc/yum.repos.d/ پیدا می کنیم که تمام فایل های این قسمت یک repository می باشند، برای نمونه فایل fedora-updates.repo را باز می کنیم:

$ cat /etc/yum.repos.d/fedora-updates.repo
[updates]
name=Fedora $releasever - $basearch - Updates
failovermethod=priority
#baseurl=http://download.fedoraproject.org/pub/fedora/linux/updates/$releasever/$basearch/
metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-f$releasever&arch=$basearch
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
skip_if_unavailable=False

[updates-debuginfo]
name=Fedora $releasever - $basearch - Updates - Debug
failovermethod=priority
#baseurl=http://download.fedoraproject.org/pub/fedora/linux/updates/$releasever/$basearch/debug/
metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-debug-f$releasever&arch=$basearch
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
skip_if_unavailable=False

[updates-source]
name=Fedora $releasever - Updates Source
failovermethod=priority
#baseurl=http://download.fedoraproject.org/pub/fedora/linux/updates/$releasever/SRPMS/
metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-source-f$releasever&arch=$basearch
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
skip_if_unavailable=False

و همچنین یک فایل به آدرس /etc/yum.conf/ داریم که تنظیمات خود دستور yum می باشد.

حذف با rpm

برای حذف یک پکیج با دستور rpm کافیه از سوئیچ e- استفاده کنیم:

[root@localhost ~]# rpm -e bzr

نکته ای که اینجا داریم برعکس apt نمیتواند dependencies  های آن را شناسایی و حذف کند، یعنی فایل هایی که به واسته نصب آن نصب شده بود را پاک نمی کند دلیل آن هم این است که dependencies ها را در هیچ دیتابیسی ذخیره نمی کند.

آموزش Upgrading با yum

شما با دستور زیر به راحتی می توانید تمام پکیج های خود را بروزرسانی کنید و نکته ای هم که دارد گفتیم برعکس apt نیاز ندارد اول update بزنید و سپس Upgrad کنید:

# yum upgrade

شما می توانید با دستور زیر بگید تمام پکیج هایی که با z شروع می شود را بروزرسانی کن:

# yum upgrade 'z*'

چند نکته در yum:

  • اگر با i- استفاده کنید فقط نصب می کند
  • اگر با U- استفاده کنید هم نصب می کند و هم بروزرسانی
  • اگر با F- استفاده کنید فقط پکیج هایی که نصب هستن را بروزرسانی می کند
  • اگر v- استفاده کنید یعنی توضیحاتی هم به شما نمایش دهد
  • اگر h- استفاده کنید (به معنی هشتگ #) یعنی روند نصب را به شما نمایش دهد

برای مثال دستور نصب را به شکل زیر وارد می کنیم:

# yum -ihv bzr

دریافت اطلاعات از yum

شما می توانید با دستورات زیر اطلاعاتی درباره پکیج های نصب شده یا نصب نشده پیدا کنید که چند مثال اوردیم.

اگر پکیج نصب شده باشد:

[root@localhost ~]# yum list bzr
Loaded plugins: langpacks
Installed Packages
bzr.x86_64                                              2.6.0-2.fc20                                              @fedora

اگر پکیج نصب نشده باشد ولی در مخازن مجود باشد:

[root@localhost ~]# yum list emacs
Loaded plugins: langpacks
Available Packages
emacs.x86_64                                            1:24.3-25.fc20                                            updates

همچنین با سوئیچ q- هم اطلاعات مختصری می دهد.

اگر پکیج نصب شده باشد:

[root@localhost ~]# rpm -q bzr
bzr-2.6.0-2.fc20.x86_64

اگر پکیج نصب نشده باشد:

[root@localhost ~]# rpm -q emacs
package emacs is not installed

برای دیدن اطلاعات پکیج ها به صورت تکمیلی تر هم می توانید از دستور info استفاده کنید:

نمونه پکیج نصب شده:

[root@localhost ~]# yum info bzr
Loaded plugins: langpacks
Installed Packages
Name        : bzr
Arch        : x86_64
Version     : 2.6.0
Release     : 2.fc20
Size        : 29 M
Repo        : installed
From repo   : fedora
Summary     : Friendly distributed version control system
URL         : http://www.bazaar-vcs.org/
License     : GPLv2+
Description : Bazaar is a distributed revision control system that is powerful, friendly,
            : and scalable.  It is the successor of Baz-1.x which, in turn, was
            : a user-friendly reimplementation of GNU Arch.

نمونه پکیج نصب نشده:

[root@localhost ~]# yum info emacs
Loaded plugins: langpacks
Available Packages
Name        : emacs
Arch        : x86_64
Epoch       : 1
Version     : 24.3
Release     : 25.fc20
Size        : 2.9 M
Repo        : updates/20/x86_64
Summary     : GNU Emacs text editor
URL         : http://www.gnu.org/software/emacs/
License     : GPLv3+
Description : Emacs is a powerful, customizable, self-documenting, modeless text
            : editor. Emacs contains special code editing features, a scripting
            : language (elisp), and the capability to read mail, news, and more
            : without leaving the editor.
            : 
            : This package provides an emacs binary with support for X windows.

جستجو با yum

برای این که با کمک yum جستجو انجام دهید به صورت زیر عمل کنید، yum تمام پکیج هایی که کلمه شما در داخل آن باشد را پیدا و نمایش می دهد:

[root@localhost ~]# yum search hack 
Loaded plugins: langpacks
=================================================== N/S matched: hack ===================================================
nethack-vultures.x86_64 : NetHack - Vulture's Eye and Vulture's Claw
python-hacking.noarch : OpenStack Hacking Guideline Enforcement
...
...
wmMatrix.x86_64 : DockApp version of Jamie Zawinski's xmatrix screensaver hack

  Name and summary matches only, use "search all" for everything.

با دستور زیر اول تمام پکیج های نصب شده را میارد (qa-) و سپس با grep گفتیم هرچی داخلش vim داشت نمایش بده:

[root@localhost ~]# rpm -qa | grep vim 
vim-minimal-7.4.027-2.fc20.x86_64

و یا با دستور زیر گفتیم پکیج bzr چه فایل هایی را روی سیستم کپی کرده است و به دلیل کمبود جا با head گفتیم چنتای اولش رو نشون بده

[root@localhost ~]# rpm -ql bzr | head
/etc/bash_completion.d
/etc/bash_completion.d/bzr
/usr/bin/bzr
/usr/lib64/python2.7/site-packages/bzr-2.6.0-py2.7.egg-info
/usr/lib64/python2.7/site-packages/bzrlib
...
...

و دستور زیر عمل برعکس بالا رو انجام میده، برای مثال میخواهیم بدانیم فایل /usr/bin/bzr را کی کپی کرده است، پس به صورت زیر می نویسیم:

[root@localhost ~]# rpm -qf /usr/bin/bzr

و با دستور زیر نیز به ما می گوید پکیج مورد نظر به چه مواردی نیاز دارد تا اجرا شود:

[root@localhost ~]# rpm -qR bzr
/usr/bin/python
libc.so.6()(64bit)
libc.so.6(GLIBC_2.14)(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3.4)(64bit)
...
...

همچنین با دستور زیر لیست تمام Dependency های یک نرم افزار را می دهد:

[root@localhost ~]# yum deplist bzr

همچنین با whatprovides هم میتوان یکسری اطلاعات درباره پکیج مورد نظر هم قبل نصب پیدا کرد:

[root@localhost ~]# yum whatprovides bzr
Loaded plugins: langpacks
bzr-2.6.0-2.fc20.x86_64 : Friendly distributed version control system
Repo        : fedora

یکپارچگی

rpm برای این که فایل ها به درستی دانلود شود و امنیت شما رو حفظ کند برای تمام پکیج ها یک امضای دیجیتال قرار می دهد که با K- یا checksig– می توانید آن فایل را برسی کنید که از الگریتم های MD5 و SHA1 استفاده می کند:

[root@localhost ~]# rpm -vK bzr-2.6.0-2.fc20.x86_64.rpm
bzr-2.6.0-2.fc20.x86_64.rpm:
    Header V3 RSA/SHA256 Signature, key ID 246110c1: OK
    Header SHA1 digest: OK (171c91fbd14416ac44c0f6d396826d583c3840ce)
    V3 RSA/SHA256 Signature, key ID 246110c1: OK
    MD5 digest: OK (c4478d64f009d07cb17d018b377677ab)

دستور V- میاد پکیج رو برسی میکنه اگه اشکالی پیدا کند می گوید فلان فایل اشکال دارد در غیر این صورت هیچ پیغامی نمایش نمی دهد.

اگر bzr نصب باشد و دستور زیر را بزنید و هیچ اشکالی پیدا نکند چیزی نمایش نمی دهد:

[root@localhost ~]# rpm -V bzr 

حال ما یک فایل را از bzr پاک میکنیم

[root@localhost ~]# rm /etc/bash_completion.d/bzr 
rm: remove regular file ‘/etc/bash_completion.d/bzr’? y

حال اگر دوباره دستور اول را بزنیم اینبار متوجه می شود که یک فایل حذف شده است:

[root@localhost ~]# rpm -V bzr 
missing     /etc/bash_completion.d/bzr

و برای درست کردن آن نیز باید دوباره bzr را با دستور زیر reinstall کنیم:

[root@localhost ~]# yum reinstall bzr

 

yum یک ابزار دارد به نام yumdownloader که پکیج مورد نظر ما را فقط دانلود میکند و نصب نمی کند، اگر با سوئیچ resolve– استفاده شود تمام dependencies ها را نیز دانلود می کند:

[root@localhost ~]# yumdownloader --resolve bzr

 

در اخر هم بد نیست یه مقایسه بین توزیع های مختلف لینوکس داشته باشیم:

مدیر بسته دبیان و دیگر توزیع ها
مدیر بسته دبیان و دیگر توزیع ها | استفاده از مدیر بسته YUM و RPM

دستورات آپدیت لیست پکیج ها | استفاده از مدیر بسته YUM و RPM

دستورات آپدیت لیست پکیج ها | استفاده از مدیر بسته YUM و RPM


دستورات بروزرسانی پکیج های نصب شده | استفاده از مدیر بسته YUM و RPM
دستورات بروزرسانی پکیج های نصب شده | استفاده از مدیر بسته YUM و RPM

دستورات جستجوی پکیج ها | استفاده از مدیر بسته YUM و RPM
دستورات جستجوی پکیج ها | استفاده از مدیر بسته YUM و RPM

دیدن اطلاعات پکیج ها | استفاده از مدیر بسته YUM و RPM
دیدن اطلاعات پکیج ها | استفاده از مدیر بسته YUM و RPM

دستورات نصب پکیج از مخازن | استفاده از مدیر بسته YUM و RPM
دستورات نصب پکیج از مخازن | استفاده از مدیر بسته YUM و RPM

دستورات نصب پکیج از سیستم لوکال | استفاده از مدیر بسته YUM و RPM
دستورات نصب پکیج از سیستم لوکال | استفاده از مدیر بسته YUM و RPM

دستورات حذف پکیج ها و کتابخانه های نصب شده آن | استفاده از مدیر بسته YUM و RPM
دستورات حذف پکیج ها و کتابخانه های نصب شده آن | استفاده از مدیر بسته YUM و RPM

 

منبع
jadi

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا