Сьогодн╕: 04-гру-2008 На сайт╕ працю╓ система Орфо. В╕дм╕тьте текст та натисн╕ть Ctrl-Enter Пошук на Google:
Linux.org.ua
укра╖н╕зац╕я в╕льного ПЗ
новини перекладачам правопис
словник розсилки форум
Домашня | Зм╕ни | ╤ндекс | Пошук | Перейти до 


Розд╕ли:

╤нш╕ матер╕али цього сайту:
*Служба новин @ linux.org.ua
*Укра╖н╕зац╕я програмного забезпечення
*Засоби для перекладач╕в
*Перев╕рка правопису
*Переклад з рос╕йсько╖ на укра╖нську
*Проект англо-укра╖нського словника техн╕чних терм╕н╕в
*Документац╕я
*Поштов╕ розсилки
*Форум
*Рекомендован╕ посилання
*Команда

linux.org.ua

 

Мо╖ п'ять коп╕йок щодо RPM

Я вир╕шив вставити сво╖ п'ять коп╕йок щодо RPM - Менеджера Пакет╕в в╕д Red Hat. Причина написання ц╕╓╖ статт╕ проста - мен╕ сподобалася програма deb-orphan для Деб╕ан ╕ я вир╕шив написати под╕бну програму для дистрибутив╕в побудованих на RPM. Ця стаття п╕дсумову╓ м╕й корисний досв╕д з цього питання.

Монетки

Коп╕йка

Назву пакету, якому належить файл на диску. можна взнати командою rpm -qf ФАЙЛ :


(lvm@lisa:lvm)$ rpm -qf /etc/passwd
setup-2.5.12-1

Друга коп╕йка

╤нформац╕ю про пакет можна отримати командою rpm -qi ПАКЕТ :


(lvm@lisa:lvm)$ rpm -qi setup         
Name        : setup                        Relocations: (not relocateable)
Version     : 2.5.12                            Vendor: Red Hat, Inc.
Release     : 1                             Build Date: ср, 03-кв╕-2002 20:15:15 +0300
Install date: ср, 02-жов-2002 15:33:05 +0300      Build Host: stripples.devel.redhat.com
Group       : System Environment/Base       Source RPM: setup-2.5.12-1.src.rpm
Size        : 34340                            License: public domain
Packager    : Red Hat, Inc. 
Summary     : A set of system configuration and setup files.
Description :
The setup package contains a set of important system configuration and
setup files, such as passwd, group, and profile.

Монета в дв╕ коп╕йки

╤нформац╕ю про пакет, в яки входить файл, можна взнати командою: rpm -qi `rpm -qf ФАЙЛ` :


(lvm@lisa:lvm)$ rpm -qi `rpm -qf /etc/passwd`
Name        : setup                        Relocations: (not relocateable)
Version     : 2.5.12                            Vendor: Red Hat, Inc.
Release     : 1                             Build Date: ср, 03-кв╕-2002 20:15:15 +0300
Install date: ср, 02-жов-2002 15:33:05 +0300      Build Host: stripples.devel.redhat.com
Group       : System Environment/Base       Source RPM: setup-2.5.12-1.src.rpm
Size        : 34340                            License: public domain
Packager    : Red Hat, Inc. 
Summary     : A set of system configuration and setup files.
Description :
The setup package contains a set of important system configuration and
setup files, such as passwd, group, and profile.

Цю команду можна записати у простенькому командному файл╕, щоб не набирати ╖╖ щоразу:

#!/bin/sh
rpm -qi `rpm -qf $@`

збереж╕ть цей текст у файл╕ з назвою rpm-qfi у каталоз╕ /usr/local/bin та надайте йому права на виконання. Тепер ц╕╓ю командою можна просто скористатися:


(lvm@lisa:lvm)$ rpm-qfi /etc/ntp.conf
Name        : ntp                          Relocations: (not relocateable)
Version     : 4.1.1                             Vendor: Red Hat, Inc.
Release     : 1                             Build Date: пн, 08-кв╕-2002 13:31:06
 +0300
Install date: пн, 18-лис-2002 18:48:17 +0200      Build Host: stripples.devel.re
dhat.com
Group       : System Environment/Daemons    Source RPM: ntp-4.1.1-1.src.rpm
Size        : 2077318                          License: distributable
Packager    : Red Hat, Inc. 
URL         : http://www.cis.udel.edu/~ntp
Summary     : Synchronizes system time using the Network Time Protocol (NTP).
Description :
The Network Time Protocol (NTP) is used to synchronize a computer's
time with another reference time source. The ntp package contains
utilities and daemons that will synchronize your computer's time to
Coordinated Universal Time (UTC) via the NTP protocol and NTP servers.
The ntp package includes ntpdate (a program for retrieving the date
and time from remote machines via a network) and ntpd (a daemon which
continuously adjusts system time).

Install the ntp package if you need tools for keeping your system's
time synchronized via the NTP protocol.

Третя коп╕йка

А що якщо нам потр╕бно взнати не всю ╕нформац╕ю, а лише якесь певне поле, таке як, наприклад, дата побудови чи ╕нсталяц╕╖ пакета? Нам на допомогу прийде ключик --query-format (або скорочено - --qf). В╕н дозволя╓ вказати, як╕ саме поля з ╕нформац╕╓ю нас ц╕кавлять ╕ як ╖х виводити, наприклад команда rpm -q --qf '%{name}: %{summary}\n' ПАКЕТ виведе назву пакета та його короткий опис.


(lvm@lisa:lvm)$ rpm -q --qf '%{name}: %{summary}\n' mm
mm: A shared memory library.

Напишемо невеликий скриптик, який виводитиме назви пакет╕в разом з ╖х короткими описами:

#!/bin/sh

if [ "foo$1" = "foo-h" ]
then
  echo "Usage:
  $0 -h
  $0 PACKAGE [PACKAGE...]
  echo PACKAGE [PACKAGE...] | $0

"
  exit 0
fi

if [ "foo$1" = "foo" ]
then
  xargs -l 200 rpm -q --qf '%{name}: %{summary}\n'
else
  rpm -q --qf '%{name}: %{summary}\n' $@
fi

╕ збережемо його п╕д назвою rpm-summary в каталоз╕ /usr/local/bin.

Четверта коп╕йка

Часто, коли не вистача╓ м╕сця на диску, хочеться взнати, як╕ саме пакети займають найб╕льше м╕сця, щоб ╖х видалити. тому ми напишемо невелику програмульку, яка сортуватиме пакети за ╖х розм╕ром (в порядку зростання розм╕ру):

#!/bin/sh

if [ "foo$1" = "foo-h" ]
then
  echo "Usage:
  $0 -h
  $0 PACKAGE [PACKAGE...]
  echo PACKAGE [PACKAGE...] | $0

"
  exit 0
fi

if [ "foo$1" = "foo" ]
then
  xargs -l200 rpm -q -qf '%{size}:%{name}\n'
else
  rpm -q -qf '%{size}:%{name}\n' $@
fi | sort -n | cut -d ':' -f 2

збережемо цю програму п╕д назвою rpm-sort-by-size в каталоз╕ /usr/local/bin/.

П'ята коп╕йка

Тепер напишемо програму, яка видаватиме вс╕ пакети, як╕ не вимагаються для роботи ╕ншими пакетами.

#!/bin/sh
rpm -qa|xargs -l200 rpm -q --whatrequires|fgrep 'no package requires'|cut -b 21-|xargs -l200 rpm -q --qf '%{name}\n'

╕ збережемо ╖╖ п╕д назвою rpm-orphan у каталоз╕ /usr/local/bin/.

Шкода, але параметр --whatrequires вида╓ неточний результат, так як в╕н перев╕ря╓ лише явн╕ залежност╕, як╕ були вказан╕ у spec-файлах rpm-ок. Автоматичн╕ залежност╕ в╕д б╕бл╕отек в╕н не в╕дсл╕дкову╓, на жаль.

П'ятак

Тепер ми ма╓мо дек╕лька утил╕т, якими можемо скористатися для:

  • виводу вс╕х крайн╕х (orphan) пакет╕в, як╕ не вимагаються для роботи ╕нших пакет╕в (пакети для розробник╕в, прикладн╕ програми, б╕бл╕отеки, як╕ не використовуються):

(lvm@lisa:bin)$ rpm-orphan
doxygen
slocate
gnome-media
hwinfo
...

  • з сортуванням ╖х за розм╕ром у порядку спадання:

(lvm@lisa:bin)$ rpm-orphan|rpm-sort-by-size|tac

WyabdcRealPeopleTTS
j2sdk
kernel-source
IBMJava2-SDK
kernel-smp
pinball
...

  • та з коротким описом навпроти кожного пакету:

(lvm@lisa:bin)$ rpm-orphan|rpm-sort-by-size|tac|rpm-summary
WyabdcRealPeopleTTS: Wyabdc RealPeople TTS
j2sdk: Java(TM) 2 Software Development Kit, Standard Edition
kernel-source: The source code for the Linux kernel.
IBMJava2-SDK: IBM╝ Developer Kit for Linux╝, Java[tm] 2 Technology Edition, Version 1.3
kernel-smp: The Linux kernel compiled for SMP machines.
pinball: Emilia Pinball is free OpenGL pinball game.

та повидаляти т╕, як╕ нам вже не потр╕бн╕, командою rpm -e ПАКЕТ :


(root@lisa:root)# rpm -e pinball


Ось ╕ усе, що я хот╕в написати.

Автор

-- Volodymyr Lisivka - 08-чер-2003

Коментар╕


Ваше пов╕домлення з'явиться п╕сля ц╕╓╖ форми у зворотньому порядку (нов╕ш╕ зверху)

Не зрозум╕в що таке "Х-ова RPM утил╕та" ╕ чому вона "жаж".

Я, як правило, користуюся лише консольними утил╕тами - менше шанс╕в що вони заглючать при оновлен╕ системи. Але якщо дуже хочеться, то можна скористатися synaptic - ц╕лком нормальний гуй.

-- Marian Rachynskyi - 30-лип-2004


Дуже юзфульно - круто. Особливо ц╕каво, оск╕льки Х-ова RPM утил╕та хоча б в РХ9 просто жаж!

-- Ihor Rudenko - 29-лип-2004


П╕д консоль робив. посм╕шка Я зб╕льшив шрифт, так що воно ма╓ бути читабельн╕ше.

-- Volodymyr Lisivka - 08-лип-2003


Ц╕каво, але на чорному фон╕ майже н╕чого не видко. Чи це так задумано?

-- Main.guest - 08-лип-2003

Файли

Долучення: Д╕я: Розм╕р: Дата: Ким: Коментар:
0 rpm-summary д╕я 266 08-чер-2003 16:31 Volodymyr Lisivka  
0 rpm-sort-by-size д╕я 286 08-чер-2003 16:32 Volodymyr Lisivka  
0 rpm-orphan д╕я 134 08-чер-2003 16:32 Volodymyr Lisivka  

 

 

| Редагувати | Долучити | Для друку | Зм╕ни | Б╕льше |

Тема Locale.FiveCentsForRPM; Верс╕я : r1.9 - 30-лип-2004 11:25 GMT - Marian Rachynskyi