توانايی های rpm مختص root
ادمين ) root ( با فرمان rpm خيلي کارها ميتواند انجام دهد:
– مشاهده ليست محتويا بسته نرمافزاري
– مشاهده ليست همه محتويا بستههاي نرمافزاري
– مشاهده شرح بسته نرمافزاري
– بررسي و بازبيني بسته نرمافزاري )مثلاً کمبود
– بازبيني فايل در بسته نرمافزاري
RPM
– نام و نسخه محصول
– تاريخ توليد و نام کامپيوتر مولد
– شرح محصول
– اندازه و ) MD5 ) checksum محتويا هر فايل
– مشخصه شخص و يا سازمان توليد کننده و …
پس ما متوجه شديم که اگر يک فايل 1k داشته باشيم کلّي اطلاعا ابتدا و انتهاي آن ميآيد. حالا اين فرمان را با هم ميزنيم:
[N.pardis@Lpi1~]$ cd /var/lib/rpm
[N.pardis@Lpi1~]$ ls –l | less
تحت اين دايرکتوري بانک اطلاعاتي rpm قرار دارد .
هاست لینوکس
در زير اين دايرکتوري ما اطلاعا و مشخصا package ها و اينکه install شدهاند يا نه را داريم. و معمولاً Admin هيچ وقت
زير اين دايرکتوري را دستکاري نميکند. در زير اين دايرکتوري ما conflict ها را هم داريم که اينها مثلاً وقتي ما يک ن رم اف زار
داريم و ميخواهيم يک نرم افزار ديگر با همان نام هم بگذاريم conflict ميدهد و يکي از آنها را اينجا ميآورد چون برنامهنويس
را گيج ميکند. پس اين طور جمعبندي کنيم که rpm زير دايرکتوري var تعداد زيادي فايل راجع به فايلهايش دارد. و ميتوانيم
حجم،نام و تعداد فايلهايي که زير اين دايرکتوري داريم را ببينيم. پس يادتان باشد که اگر اين دايرکتوري را دستکاري کنيد و يک
فايل را مخدوش کنيد يک package جديد نميتوانيد نصب کنيد و ميگويد من نميدانم اگر اين package جديد را نصب کنم
تناق دارد يا نه؟
پس ما متوجه شديم که rpm از Database استفاده ميکند.پس زماني که مثلاً ميگويد sin already installed از کجا مي-
فهمد؟ چون در Database وجود دارد.
ما با فرمان خيلي ساده rpm ميتوانيم اين کارها را انجام دهيم:
نصب بستهها –
استعلام فايل متعلق به بسته –
حذف بستهها –
توليد بسته فايل از کد منبع – source
بروز درآوردن بستهها
پرس و جو با استفاده از بانک اطلاعاتي – rpm .
کنترل صحت فايل و فعاليتهاي ديگر … –
به عنوان مثال ناگهان يک فايل از بين مي رود با يک فرمان ساده ميپرسيم که اين فايل مثلاً game متعلق ب ه ک دام package
مي باشدفروش ssl
rpm در زمان نصب و ارتقاء و حذف بسته نرمافزاري فعاليت و کنترلهاي زيادي انجام ميدهد به طور مثال:
)1 آيا فضاي کافي بر روي ديسک سخت براي نصب وجود دارد؟
)0 آيا نرمافزارهاي موردنياز وجود دارند؟
)3 آيا نصب نرمافزار باعث بازنويسي فايلهاي موجود خواهد شد؟
فرماني که براي نصب بسته نرمافزاري به کار ميبريم به اين صور است:
[N.pardis@Lpi1~]$ rpm -i package-filename …
[N.pardis@Lpi1~]$ rpm -i zip-2.3-18.rpm
i: مخفّف install
اگر جزوه rpm را بخوانيم ميبينيد که چه آپشنهاييدارد.
[N.pardis@Lpi1~]$ man rpm
به عنوان مثال برخي از option هاي آن به شرح ذيل مي باشد:
force را زماني به کار ميبريم که نتوانيم يک – – package را نصب کنيم و بخواهيم حتماً نصب شود. ولي هميشه نبايد force
را به کار ببريم. – – force يعني مجبور هستي که بعضي از خطاها را ناديده بگيري. – –
h نمايش ميزان درصد تکميل نصب. –
[N.pardis@Lpi1~]$ rpm -ivh sam*
v : verbase
h : hash
حال ميخواهيم يکي از package ها را با هم ببينيم:
[N.pardis@Lpi1~]$ cd /all-rpms/
فرمان less تا امروز فايل را براي ما صفحه به صفحه ميخواند ولي less ميتواند package ها را هم بخواند و اطلاعاتش را ب را ي
ما نمايش دهد.
[N.pardis@Lpi1~]$less kernel-2.*
وقتيفرمان بالا را بزنيم اطلاعا کامل اين package را ميبينيم. و همچنين اسم فايلهايي که بعد از نص ب ا ي ن package روي
هر دايرکتوري ميسازد را نمايش ميدهد. با اين اطلاعا ميتوانيم بفهميم که بعد از نصب يک package کجا ميرود.
نصب نرمافزار از طريق شبکه هم امکانپذير است:
[N.pardis@Lpi1~]$ rpm -ivh ftp:// … *
از طريق Ftp و بدون قرار دادن بسته نرمافزاري در کامپيوتر خودمان ميتوان نصب کردمانند مثال بالا.
اگر بخواهيم يک package را از روي سيستم حذف کنيم هم ميتوانيم از فرمان rpm استفاده کنيم.
[N.pardis@Lpi1~]$rpm -e package –name
e: مخفّف Erase
[N.pardis@Lpi1~]$ rpm -e talk
با اين پاک کردن ميبينيم که پاک ميشود وليجزوه آنکه posix است پاک نشد حالا دوباره نصب ميکنيم:
[N.pardis@Lpi1~]$man talk
[N.pardis@Lpi1~]$ rpm-ivh talk*
[N.pardis@Lpi1~]$
آپشن ديگري که در حذف يک package داريم –nodeps است. هر package يک سري وابستگيهايي دارد که اگر آنها
install نباشند کار نميکند. و nodeps يعني مجبور هستي که وابستگيها را کنترل نکني. و از داخل Database ميفهمد چي
به چي وابسته است.زماني که به اين صور يک package را از سيستم حذف کنيد به طور کامل حذف ميشود.
به شرطييک package را install يا upgrade کنيد که دليل موجهي براي کارتان داشته باشيد.
upgrade شما به شرطي update کنيد که نياز داشته باشيد. دلايلي مثل:
– برطرف نمودن اشکالا
– اضافه نمودن امکانا بيشتر
– حذف نمودن بعضي از امکانا که در عمل لازم نبوده و يا مشکلزا ميباشد.
[N.pardis@Lpi1~]$ rpm -Uvh package-Name
U : Upgrade که اين option با U بزرگ نوشته ميشود
هم مثل install است. اگر در زمان upgrade آپشن –nodeps را بزنيد يعني اينکه هيچ وابستگياي را چک نکند.
به وسيله همين فرمان rpm ميتوان اطلاعا مختلفي راجع به بستههاي نرمافزاري نصب شده بدست آورد. که از جمله مي ت وان
به آپشن –q که مخفف Query به معناي پرس و جو ميباشد اشاره کرد.
[N.pardis@Lpi1~]$ rpm –qf package-Name
Option –f اختياري است در اين مثال.
اگر يک فايلي را اشتباهاً پاک کرديم به وسيله فرمان rpm با آپشن –q و f ميتوانيم بفهميم که متعلق به چه package اي
است چون در database اشاطلاعا را نگه ميدارد.
[N.pardis@Lpi1~]$ rpm -q talk
اگر فايل passwd را اشتباهاً پاک کرده باشيم با اين فرمان آن را پيدا کرده و package آن را دوباره نصب ميکنيم.
[N.pardis@Lpi1~]$ rpm –qf /etc/passwd
q : Query
f : file
[N.pardis@Lpi1~]$ rpm -qf /bin/cat
نکته جالب اينکه شما ميتوانيد اگر rpm يادتان رفته با دستور cpio نصب کنيد.
[N.pardis@Lpi1~]$ man rpm2cpio
[N.pardis@Lpi1~]$ rpm2cpio careutils-5+tab >file-name
[N.pardis@Lpi1~]$ cpio -itv<file-name
براي print گرفتن فرمان pr )مخفف printer ( است را به کار ميبريم:
[N.pardis@Lpi1~]$ man pr
[N.pardis@Lpi1~]$ pr file-Name : مشخصه و توضيحا مختصري از بسته نرمافزاري ک ه ب ا فرم ان rpm نص ب م يگردن د
نمايش داده ميشود.
[N.pardis@Lpi1~]$ rpm -qi talk اگر بخواهيم تعداد کل package هايي را که داريم بدست آوريم اين فرمان را ميزنيم:
[N.pardis@Lpi1~]$ rpm -qa |wc