آموزش لینوکس

در این وبلاگ مطالبی در خصوص سیستم عامل لینوکس به اشتراک گذاشته می شود.

آموزش لینوکس

در این وبلاگ مطالبی در خصوص سیستم عامل لینوکس به اشتراک گذاشته می شود.

مدیریت بسته ها با ابزار yum

يكشنبه, ۸ ارديبهشت ۱۳۹۸، ۱۲:۱۲ ب.ظ

YUM مخفف عبارت Yellowdog Updater Modified و ابزاری برای مدیریت پکیج ها در سیستم عامل لینوکس با توزیع هایی که بر پایه ی rpm هستند (RedHat,Suse,Fedora,CentOS) می باشد.

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


* فایل تنظیمات ابزار yum :

ابزار yum توسط یک فایل متنی که در مسیر etc/ و با نام yum.conf  قرار دارد، مدیریت می شود. رایج است که تنظیمات عمومی و کلی ابزار yum از طریق این فایل صورت ‌گیرد و تنظیمات خاص برای هر Repository از طریق فایل /etc/yum.repo.d/<name.repo> تعریف و تنظیم ‌شود.

پارامترهای مختلفی برای پیکربندی ابزار yum وجود دارد، در ادامه به معرفی تعدادی از آن‌ها می پردازیم.

پارامتر assumeyes :

در صورتیکه این پارامتر برابر با یک باشد، ابزار yum برای انجام Transactionها تاییدیه نمی گیرد. مقدار این پارامتر در حالت پیش فرض برابر صفر می باشد.

 

پارامتر keepcache :

در حالت پیش‌فرض مقدار این گزینه برابر با صفر می‌باشد، یعنی پکیج های دانلود شده بعد از نصب شدن حذف می گردند. برای جلوگیری از حذف پکیج ها می توان این مقدار را به یک تغییر داد.

 

پارامتر cachedir :

این گزینه محل قرارگرفتن پکیج های دانلود شده و اطلاعات Repository ها را تعیین می کند.

  

پارامتر logfile :

توسط این گزینه فایل log تعیین می شود. بصورت پیش‌فرض مسیر این فایل بصورت زیر می باشد.

cat /var/log/yum.log

Apr 23 09:22:39 Erased: firefox.x86_64

Apr 23 09:23:08 Installed: tree-1.6.0-10.el7.x86_64

 

پارامتر gpgcheck :

این گزینه تعیین می کند که پکیج ها قبل از نصب از نظر اصالت بررسی شوند یا خیر. یعنی hedear پکیج با استاندارد معرفی شده توسط سازنده ی پکیج تطابق داده می شود. برای اینکار نیاز به برقراری اینترنت می باشد. بصورت پیش‌فرض این گزینه فعال می‌باشد.

 

پارامتر reposdir :

مسیر قرار گرفتن فایل‌های تنظیمات Repository ها (فایل هایی با پسوند repo.)، توسط این گزینه مشخص می شود. دایرکتوری پیش‌فرض /etc/yum.repos.d/ می باشد.

 

پارامتر debuglevel :

این پارامتر با عددی بین 1 و 10 مقداردهی می شود. در صورت  انتخاب عدد بزرگتر، جزئیات بیشتری در خروجی دستور yum به نمایش در می آید. در حالت پیش‌فرض این پارامتر برابر با عدد دو می باشد. برای مثال وضعیت خروجی را در دو حالت بررسی می کنیم.

vi /etc/yum.conf

debuglevel = 0

yum install treeee

Error: Nothing to do

*****

vi /etc/yum.conf

debuglevel = 2

yum install treeee

Not loading "rhnplugin" plugin, as it is disabled

Loading "ulninfo" plugin

Loading "langpacks" plugin

Adding en_US.UTF-8 to language list

Adding fa_IR.UTF-8 to language list

Config time: 0.048

Yum version: 3.4.3

rpmdb time: 0.000

Setting up Package Sacks

RPMFusionNF-Update                                | 3.3 kB 00:00:00  

isa                                                           | 2.9 kB 00:00:00  

pkgsack time: 0.027

Checking for virtual provide or file-provide for treeee

No package treeee available.

Error: Nothing to do

 

پارامتر exactarch :

در حالت پیش‌فرض این پارامتر برابر یک می‌باشد، که باعث می‌شود معماری دقیق پکیج ها در زمان به روز رسانی در نظر گرفته شود. یعنی نمی‌توان پکیج firefox.i386 را بوسیله firefox.i686 به روز رسانی نمود.

* با توجه به گزینه های موجود، کاربران می تواند بر اساس نیاز خود به شخصی سازی ابزار yum اقدام نمایند. ابزار yum زمانی بهترین عملکرد(حل مسئله ی وابستگی پکیج ها) را دارد که برای آن Repository تعریف شود.

ایجاد Repository در مطلبی با عنوان ایجاد مخزن در لینوکس (repository)بیان شده است.

 

 

* بررسی Repository ها :

با استفاده از دستور زیر وضعیت تمامی Repository های سیستم نمایش داده می شود.

yum repolist all

Loaded plugins: langpacks, ulninfo

repo id                             repo name                        status

Oracle_6u5_x64                Oracle_6u5_x64                enabled: 3,752

Oracle_6u7_x64                Oracle_6u7_x64                enabled: 3,889

Oracle_6u9_x64                Oracle_6u9_x64                disabled

repolist: 7,641

 

برای نمایش Repository های فعال سیستم از دستور زیر استفاده می شود.

yum repolist enabled                      or               yum repolist

Loaded plugins: langpacks, ulninfo

repo id                               repo name                           status

Oracle_6u5_x64                  Oracle_6u5_x64                    3,752

Oracle_6u7_x64                  Oracle_6u7_x64                    3,889

repolist: 7,641

 

با دستور زیر Repository های غیرفعال نمایش داده می شود.

yum repolist disabled

Loaded plugins: langpacks, ulninfo

repo id                               repo name                                  

Oracle_6u9_x64                  Oracle_6u9_x64                              

repolist: 0

 

* نمایش پکیج ها :

با دستور زیر لیست تمامی پکیج های در دسترس Repository ها و پکیج های نصب شده بر روی سیستم  نمایش می یابد.

yum list all                     or                      yum list

Loaded plugins: langpacks, ulninfo

Installed Packages

389-ds-base.x86_64           1.3.4.0-19.el7                 @anaconda/7.2

389-ds-base-libs.x86_64     1.3.4.0-19.el7                  @anaconda/7.2

ModemManager.x86_64      1.1.0-8.git20130913.el7    @anaconda/7.2

atk.i686                             1.30.0-1.el6                     Oracle_6u5_x64

atlas.i686                           3.8.4-2.el6                       Oracle_6u5_x64

atlas.x86_64                       3.8.4-2.el6                       Oracle_6u5_x64

audispd-plugins.x86_64       2.3.7-5.el6                       Oracle_6u7_x64

audit-libs.i686                     2.3.7-5.el6                       Oracle_6u7_x64

audit-libs-devel.i686            2.3.7-5.el6                       Oracle_6u7_x64

...

 

در خروجی دستور بالا، ستون اول مربوط به نام پکیج، ستون دوم شماره نسخه پکیج و ستون سوم وضعیت پکیج را نشان می دهد. ستون سوم برای پکیج هایی که بر روی سیستم نصب شده‌اند با کاراکتر @ شروع می شود و برای پکیج هایی که بر روی سیستم  نصب نشده‌اند، فقط نام Repository ایی که در آن قرار دارند نمایش می یابد.

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

yum list available

 

برای دیدن لیست تمامی پکیج های نصب شده بر روی سیستم می‌توان از دستور زیر استفاده کرد.

yum list installed

 

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

yum list extras

 

توسط دستور زیر می‌توان لیست پکیج هایی که دارای نسخه بالاتر جهت بروزرسانی در Repository ها هستند، را مشخص نمود.

yum list updates              or                yum check-update

Loaded plugins: langpacks, ulninfo

Oracle_6u5_x64                                                    | 2.9 kB  00:00:00    

Oracle_6u7_x64                                                    | 2.9 kB  00:00:00    

Updated Packages

device-mapper-multipath.x86_64      0.4.9-87.0.2.el6        Oracle_6u7_x64

gdisk.x86_64                                  0.8.10-1.el6             Oracle_6u7_x64

glx-utils.x86_64                              10.4.3-1.el6              Oracle_6u7_x64

grep.x86_64                                   2.20-3.el6                Oracle_6u7_x64

...

 

* جستجوی پکیج :

برای جستجوی یک پکیج در میان پکیج های نصب شده بر روی سیستم و Repository ها، می‌توان از دستور زیر استفاده نمود.

yum list all '*firefox*'

Loaded plugins: langpacks, ulninfo

Installed Packages

firefox.x86_64                38.3.0-2.0.1.el7_1                 @anaconda/7.2

Available Packages

firefox.i686                     17.0.10-1.0.1.el6_4               Oracle_6u5_x64

در خروجی دو پکیج  مشاهده می شود، در ابتدا پکیجی که بر روی سیستم نصب شده است و در انتها پکیجی که در دسترس قرار دارد و می‌توان برای نصب آن اقدام کرد.

 

با دستور زیر می‌توان یک پکیج را در میان پکیج های نصب شده بر روی سیستم جستجو نمود.

yum list installed '*firefox*'

Loaded plugins: langpacks, ulninfo

Installed Packages

firefox.x86_64                 38.3.0-2.0.1.el7_1               @anaconda/7.2

  

برای جستجو در میان نام پکیج ها و توضیحات مربوط به آنها از پارامتر search استفاده می شود.

yum search multi

Loaded plugins: langpacks, ulninfo

============= N/S matched: multi ===============

device-mapper-multipath.x86_64 : Tools to manage multipath devices using device-mapper

kdemultimedia.x86_64 : KDE Multimedia applications

kdemultimedia-devel.i686 : Developer files for kdemultimedia

gettext.x86_64 : GNU libraries and utilities for producing multi-lingual messages

ksig.x86_64 : A graphical application to manage multiple email signatures

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

 

* نمایش متاداده یک پکیج :

با پارامتر info اطلاعات مربوط به یک پکیج نمایش داده می شود.

yum info tree

Loaded plugins : langpacks, ulninfo

Installed Packages

Name            : tree

Arch              : x86_64

Version          : 1.5.3

Release          : 3.el6

Size               : 65 k

Repo             : installed

From repo      : Oracle_6u7_x64

Summary       : File system tree viewer

URL               : http://mama.indstate.edu/users/ice/tree/

License          : GPLv2+

Description    : The tree utility recursively displays the contents of directories in a

                   : tree-like format. Tree is basically a UNIX port of DOS tree utility.

 

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

yum provides /etc/dhcp/dhclient.d/ntp.sh

Loaded plugins: langpacks, ulninfo

ntp-4.2.6p5-5.el6.x86_64 : The NTP daemon and utilities

Repo           : Oracle_6u7_x64

Matched from:

Filename    : /etc/dhcp/dhclient.d/ntp.sh

 

ntp-4.2.6p5-22.el7.x86_64 : The NTP daemon and utilities

Repo        : @anaconda/7.2

Matched from:

Filename    : /etc/dhcp/dhclient.d/ntp.sh

خروجی دو پکیج را نشان می دهد، پکیج اول بر روی سیستم نصب نشده است، اما در صورت نصب، این فایل ایجاد خواهد شد. و پکیج دوم که بر روی سرور نصب شده و این فایل را ایجاد نموده است.

 

برای تشخیص اینکه یک پکیج چه فایل هایی را ایجاد نموده و یا خواهد نمود، می توان از دستور زیر استفاده کرد.

repoquery --list samba.x86_64

/etc/logrotate.d/samba

/etc/openldap/schema

/etc/openldap/schema/samba.schema

/etc/pam.d/samba

/etc/rc.d/init.d/nmb

/etc/rc.d/init.d/smb

/etc/samba/smbusers

/usr/bin/eventlogadm

/usr/bin/mksmbpasswd.sh

 

* نمایش Dependency های یک پکیج :

yum deplist tree

Loaded plugins: langpacks, ulninfo

package: tree.x86_64 1.5.3-3.el6

dependency: libc.so.6(GLIBC_2.4)(64bit)

rovider: glibc.x86_64 2.12-1.166.el6

dependency: rtld(GNU_HASH)

provider: glibc.x86_64 2.12-1.166.el6

provider: glibc.i686 2.12-1.166.el6


* نصب پکیج :

برای نصب پکیج بصورت زیر عمل می شود.

yum install  [Package_Name]

yum install tree.x86_64

Loaded plugins: langpacks, ulninfo

Resolving Dependencies

--> Running transaction check

---> Package tree.x86_64 0:1.5.3-3.el6 will be installed

--> Finished Dependency Resolution

 

Dependencies Resolved

 

===================================================================

 Package        Arch             Version                  Repository                Size

===================================================================

Installing:

 tree           x86_64           1.5.3-3.el6              Oracle_6u7_x64            35 k

 

Transaction Summary

===================================================================

Install  1 Package

 

Total download size: 35 k

Installed size: 65 k

Is this ok [y/d/N]: y

Downloading packages:

tree-1.5.3-3.el6.x86_64.rpm                                       |  35 kB  00:00:00    

Running transaction check

Running transaction test

Transaction test succeeded

Running transaction

  Installing : tree-1.5.3-3.el6.x86_64                                               1/1

  Verifying  : tree-1.5.3-3.el6.x86_64                                               1/1

 

Installed:

  tree.x86_64 0:1.5.3-3.el6                                                             

 

Complete!

 

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

yum -y install tree.x86_64

 

برای نصب چند پکیج بصورت همزمان، کافیست نام پکیج ها پشت سرهم وارد شوند.

yum install [package_name1] [package_name2]

 

نکته : نحوه ی چگونگی استفاده از نام پکیج ها در دستور yum را با مثال نشان می دهیم.

yum install tr

Loaded plugins: langpacks, ulninfo

No package tr available.

Error: Nothing to do

در دستور بالا چون هیچ پکیجی با نام tr در دسترس نیست، کاری انجام نمی شود.

yum install tr*

Installing:

trace-cmd            x86_64         1.0.5-11.el6           Oracle_6u7_x64         105 k

transfig                 x86_64         1:3.2.5-10.el6         Oracle_6u7_x64         246 k

tree                       x86_64         1.5.3-3.el6            Oracle_6u7_x64          35 k

trilead-ssh2         noarch         213-6.2.el6            Oracle_6u5_x64         247 k

Updating:

trousers                x86_64         0.3.13-2.el6           Oracle_6u7_x64         276 k

 

Transaction Summary

===================================================================

Install  4 Packages

Upgrade  1 Package

دستور بالا سبب نصب تمامی پکیج هایی می‌شود که نامشان با tr شروع می‌شود.

yum install tree

دستور بالا سبب نصب پکیج هایی با نام tree می‌شود. (مانندtree.x86_64 , tree.i386)

 

* حذف پکیج :

برای حذف یک پکیج از دستور زیر استفاده می شود.

yum -y remove tree               or                yum -y erase tree

Loaded plugins: langpacks, ulninfo

Resolving Dependencies

--> Running transaction check

---> Package tree.x86_64 0:1.5.3-3.el6 will be erased

--> Finished Dependency Resolution

 

Dependencies Resolved

 

===================================================================

 Package        Arch             Version                 Repository                 Size

===================================================================

Removing:

 tree           x86_64           1.5.3-3.el6             @Oracle_6u7_x64            65 k

 

Transaction Summary

===================================================================

Remove  1 Package

 

Installed size: 65 k

Downloading packages:

Running transaction check

Running transaction test

Transaction test succeeded

Running transaction

  Erasing    : tree-1.5.3-3.el6.x86_64                                               1/1

  Verifying  : tree-1.5.3-3.el6.x86_64                                               1/1

 

Removed:

  tree.x86_64 0:1.5.3-3.el6                                                             

 

Complete!

 

* نصب مجدد یک پکیج :

این پارامتر زمانی مورد استفاده قرار می گیرد که بطور مثال یکی از فایل های مربوط به یک پکیج دچار مشکل شود. با این روش تنظیماتی که کاربر بر روی یک پکیج اعمال نموده است، پاک نمی شود.

yum reinstall [package_name]

 

* انجام عمل حذف و نصب پکیج بصورت همزمان :

جهت حذف پکیج lftp و نصب پکیج vsftpd از دستور زیر استفاده می شود.

yum swap lftp  vsftpd

 

* ارتقا پکیج :

جهت ارتقا یک پکیج به نسخه بالاتر می توان بصورت زیر عمل کرد.

yum update [package_name]

yum upgrade [package_name]

تفاوت update , upgrade :

فرایند update تغییراتی در جزئیات برنامه اعمال می کند مانند رفع یک مشکل، ولی در فرایند upgrade تغییرات در ساختار اصلی برنامه انجام می گیرد مانند تغییر نسخه یک سیستم عامل.

برای بروزرسانی تمامی پکیج های سرور می توان از دستور زیر استفاده کرد.

yum update

 

* تنزل نسخه پکیج :

با استفاده از دستور زیر می توان ورژن پکیج را کاهش داد.

yum downgrade [package_name]

نکته : برای update , upgrade , downgrade کردن پکیج ها دسترسی به پکیج مقصد ضروریست. مثلاً در downgrade از نسخه 7.5 به 6.8 باید وضعیت نسخه 6.8 ، available باشد.

 

* پاک کردن Cache :

در حالت پیش‌فرض مسیر  var/cache/yum/ محل قرار گرفتن Cache مربوط به ابزار yum  می باشد. اطلاعاتی در خصوص مخازن سیستم ، پکیج های دانلود شده و … در این مکان قرار می گیرد.

با دستور زیر همه ی قسمت‌های Cache مربوط به yum حذف می شود.

yum clean all

پارامتر clean گزینه هایی برای حذف جداگانه ی هر قسمت نیز دارد. این گزینه ها عبارتند از :

dbcache  ,  headers  ,  packages  ,  cache  ,  expire-cache  ,  metadata

با دستور زیر می‌توان پکیج های دانلود شده بر روی سیستم را حذف نمود.

yum clean packages


( این متن در حال تکمیل شدن می باشد. )

۹۸/۰۲/۰۸
عیسی اسداله پور

نظرات  (۱)

عالی بود

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی