ot Diado Mets(4-07-2004)

reiting (31)   [ dobre ]  [ zle ]

Printer Friendly Variant za otpechatvane

KAKVO TRQBVA DA ZNAEM ZA RPM


Kakto povecheto ot vas znaiat - Red Hat, Fedora Core, Mandrake, SuSE i mnogo drugi distributsii izpolzvat RPM (RPM Package Manager) za upravlenie na paketi.

Razlichnite instrumenti za update na sistemata v tezi distributsii (yum, up2date, apt) sushto izpolzvat rpm bibliotekite (rpmlib) za dostup do rpm bazata danni na dadenata
distributsiia.

SHTo e to RPM paket?
RPM paketa e fail, koito sudurzha v kompresiran vid vsichki failove (izpulnimi, konfiguratsionni, dokumentatsiia), koito vklyuchva dadena programa. Osven tova sudurzha kratko opisanie na programata, i informatsiia za zavisimostite spriamo dugi programi ili biblioteki. RPM paketite ulesniavat instaliraneto, de-instaliraneto i proslediavaneto na programite, s koito rabotim na nashiia kompyutur.

Imenuvane na RPM paketite. Imeto na edin RPM paket se obrazuva ot imeto na programata, koiato sudurzha, versiiata na programata, poredno izdanie (kompilatsiia), hardueurna arhitektura za koiato e kompilirana programata i zavurshva s razshirenie .rpm
Po-golemiia nomer sled imeto na paketa oznachava po-nova versiia na programata.
Naprimer rpm-4.3.1-0.3.i386.rpm se razshifrova kato:
Ime: rpm
Versiia: 4.3.1
Izdanie: 0.3
PC Arhitektura: i386

Da vidim kak se raboti s RPM paketi. Sushtestvuvat mnogo grafichni instrumenti za rabota s RPM paketi (gnorpm, Kpackage, synaptic), no vsichki te sa frontend kum konzolnata programa za upravlenie na paketi (rpm), zatova shte se spra imenno na neia.

ZABELEZHKA: Za instalirane, de-instalirane, nadgrazhdane na RPM paketi triabva da imate administratorski prava (root).

1. Instalirane i nadgrazhdane (upgrade) na RPM paket.

Za da instalirate daden RPM paket napishete v konzolata slednata komanda:

# rpm -i /path/to/package_name.rpm

kato /path/to/ zamestete s putia do RPM paketa (naprimer /home/chochko/), a package_name.rpm sus deistvitelnoto ime na RPM paketa.

Parametura -i oznachava install (instalirai). Mozhem da dobavim i drugi parametri kum komandata rpm.

# rpm -ivh /path/to/package_name.rpm

-v (verbose) shte napravi programata po "mnogoslovna" kogato izvezhda obratna informatsiia za tova kakvo izpulniava v momenta, a -h dobavia izpisvaneto na hesh otmetki (#) pod formata na indikator za progresa. Vmesto -h mozhe da izpolzvate --percent taka indikatora za progresa shte bude pod formata na protsent izpulnena zadacha.

Nadgrazhdaneto (upgrade) na RPM paket se pravi s komandata:

# rpm -Uvh /path/to/package_name.rpm

kato parametura -U (upgrade) purvo shte de-instalira starata versiia na programata, sled koeto shte instalira novata. Noviia paket shte bude instaliran, dori da niama instalirana stara versiia. Zatova gornata komanda osven za nadgrazhdane, mozhe da se izpolzva i za instalirane na nov paket.

Da si predstavim, che sme nadgradili dadena programa do po-nova versiia, no sushtata ne e suvmestima s drugi instalirani programi. Kak da vurnem starata versiia na programata?

# rpm -Uvh --oldversion /path/to/package_name-old-version.rpm

Parametura --oldversion oznachava, che versiiata na programata, koiato instalirame e po-stara ot tekushto instaliranata. T.e. shte napravim downgrade. Novata versiia shte bude de-instalirana, sled koeto shte se instalira starata versiia na programata.

Parametura -F (freshen) e podoben na parametura -U, s tazi razlika, che komandata:

# rpm -Fvh /path/to/package_name.rpm

shte izvurshi nadgrazhdane do po-nova versiia, samo ako ima instalirana stara takava. Ako suotvetnata programa ne e instalirana, to niama da se instalira i novata versiia.

2. De-instalirane na RPM paket.

Za da de-instalirame daden paket ot nashata sistema triabva da izpulnim komandata:

# rpm -e package_name

Parametura -e (erase) ukazva na rpm da de-instalira (iztrie) daden rpm paket. Zabelezhete, che s parametura -e na rpm se podava samo imeto na dadeniia paket bez versiiata i arhitekturata mu. Ako podadete pulnoto ime na RPM paketa shte poluchite suobshtenie za greshka, che paketa ne e instaliran.

Neka da oburnem vnimanie na parametura --test. Izpulenieto na komandata:

# rpm -e --test package_name

shte napravi simulatsiia na de-instalirane na daden paket bez fakticheski da go de-instalira. Tova e polezno za otkrivane na zavisimosti mezhdu paketite i proverka na korektnoto izpulnenie na dadenata funktsiia.

Da rechem, che iskame da de-instalirame niakoi paket, no sushtevremenno da si napravim rezervno kopie na tozi paket (naprimer, zashtoto sme iztrili originalnoto).

# rpm -e --repackage package_name

Parametura --repackage shte suzdade rezervno kopie na de-instaliraniia paket, obiknoveno v direktoriia /var/spool/repackage

Da oburnem vnimanie na zavisimostite mezhdu paketite. Neka izpulnim:

# rpm -e --test make (Pravim simulatsiia na de-instaliraneto na make)

Poluchavame slednoto suobshtenie za greshka

# rpm -e --test make
error: Failed dependencies:
make is needed by (installed) stunnel-4.05-1
make is needed by (installed) mod_ssl-2.0.49-4
make is needed by (installed) kdevelop-3.0.3-1
make is needed by (installed) ypserv-2.12.1-2
make is needed by (installed) openldap-servers-2.1.29-1
make is needed by (installed) efax-0.9-21
make is needed by (installed) nss_db-2.2-25.1
make is needed by (installed) policy-sources-1.11.3-3
make is needed by (installed) policy-strict-sources-1.11.3-3
make >= 3.78 is needed by (installed) kernel-sourcecode-2.6.6-1.427
/usr/bin/make is needed by (installed) redhat-lsb-1.3-1

Vizhdame, che ima paketi, koito zavisiat ot make i rpm niama da ni pozvoli da go de-instalirame. Za da otkriem koi paketi zavisiat ot konkreten rpm paket izpulniavame

$ rpm -q --whatrequires package_name

Naprimer:
# rpm -q --whatrequires make
stunnel-4.05-1
mod_ssl-2.0.49-4
kdevelop-3.0.3-1
ypserv-2.12.1-2
openldap-servers-2.1.29-1
efax-0.9-21
nss_db-2.2-25.1
policy-sources-1.11.3-3
policy-strict-sources-1.11.3-3
kernel-sourcecode-2.6.6-1.427

V tozi sluchai, za da de-instalirame daden paket, triabva purvo da de-instalirame vsichki paketi koito zavisiat ot nego. Suotvetno, ako ot tezi paketi zavisiat drugi paketi, triabva da deinstalirame purvo tiah... i t.n. Poluchava se neshto kato omagüosan krug.

Za da si ulesnite zhivota izpolzvaite yum ili apt koito slediat za zavisimostite mezhdu paketite i shte vi predlozhat pulen spisuk na paketite koito shte budat de-instalirani, ako reshite da de-instalirate daden paket.

VNIMANIE: Parametrite --nodeps i --force shte vi pozvoliat da deinstalirate daden paket bez ogled na eventualnite zavisimosti i vuzmozhnite greshki. Tova e izklyuchitelno opasno za vashata sistema, zatova se vuzdurzhaite ot upotrebata im. POSLEDITSITE MOZHE DA SA NEPOPRAVIMI!

3. Izvezhdane na informatsiia za RPM paketi.

Da predpolozhim, che imame instaliran RPM paket, no ne znaem nishto za nego. Kak da otkriem kakvo predstavliava, za kakvo sluzhi, kakvo sudurzha? Tuka ni idva na pomosht parametura -q (query) zapitvane.

Informatsiia za versiiata, izdanieto na paketa:

$ rpm -q make
make-3.80-3

Pulna informatsiia za daden RPM paket:
$ rpm -qi make
Name : make Relocations: /usr
Version : 3.80 Vendor: Red Hat, Inc.
Release : 3 Build Date: Tue 17 Feb 2004 11:03:27 AM EET
Install Date: Wed 19 May 2004 06:30:25 PM EEST Build Host: tweety.devel.redhat.com
Group : Development/Tools Source RPM: make-3.80-3.src.rpm
Size : 754691 License: GPL
Signature : DSA/SHA1, Fri 07 May 2004 01:56:18 AM EEST, Key ID b44269d04f2a6fd2
Packager : Red Hat, Inc. " target="_blank">http://bugzilla.redhat.com/bugzilla>
Summary : A GNU tool which simplifies the build process for users.
Description :
A GNU tool for controlling the generation of executables and other
non-source files of a program from the program's source files. Make
allows users to build and install packages without any significant
knowledge about the details of the build process. The details about
how the program should be built are provided for make in the program's
makefile.

The GNU make tool should be installed on your system because it is
commonly used to simplify the process of installing programs.

Kakto vizhdate komandata rpm -qi package_name izvezhda pulna informatsiia za imeto, versiiata, datata na instalirane, razmera i t.n. na dadeniia paket plyus kratko opisanie. V sluchaia parametura i ne e sushtiia, koito se izpolzva za instalirane na paket, a oznachava (information) informatsiia.

Oburnete vnimanie na parametura -a (all) vsichki. Komandata

$ rpm -qa

shte izshishe na ekrana imenata na vsichki instalirani paketi vuv vashata sistema. Spisukut e dosta dulug. No kak da proverim dali imame instaliran da rechem mysql? Tuka ni idva na pomosht programata grep, koiato tursi tekstovi nizove po zadaden
shablon.

$ rpm -qa | grep -i mysql
mysql-jdbc-3.0.8-2
qt-MySQL-3.3.2-2
mysql-server-3.23.58-9
mysql-devel-3.23.58-9
freeradius-mysql-0.9.3-4
libdbi-dbd-mysql-0.6.5-8.1
mysql-3.23.58-9
perl-DBD-MySQL-2.9003-4
mysql-jdbc-tomcat-3.0.8-2
php-mysql-4.3.6-5
MySQL-python-0.9.2-3.1
mod_auth_mysql-20030510-4.1
mysql-bench-3.23.58-9

Iskame da vidim spisuk na vsichki failove, koito e instaliral daden rpm paket? Izpolzvame parametura -l (list) pokazhi spisuk

$ rpm -ql less
/etc/profile.d/less.csh
/etc/profile.d/less.sh
/usr/bin/less
/usr/bin/lessecho
/usr/bin/lesskey
/usr/bin/lesspipe.sh
/usr/share/man/man1/less.1.gz
/usr/share/man/man1/lesskey.1.gz

Dobre, a obratno - kak da razberem daden fail kum koi paket prinadlezhi? Parametura e -f (file) fail.

$ rpm -qf /usr/bin/ncftpput
ncftp-3.1.7-2

Dobre, no vsichko tova ni dava informatsiia za veche instalirani paketi. Mozhem li da izvedem sushtata informatsiia za neinstaliran paket? Razbira se, s pomoshtta na parametura -p (package) paket

rpm -qpi /usr/src/redhat/RPMS/i386/bcv-2.2-2.i386.rpm
Name : bcv Relocations: /usr
Version : 2.2 Vendor: (none)
Release : 2 Build Date: Sun 06 Jun 2004 12:05:09 PM EEST
Install Date: (not installed) Build Host: some.hostname.com
Group : Utilities Source RPM: bcv-2.2-2.src.rpm
Size : 7080 License: GPL
Signature : (none)
Packager : Gregoire Barbier barbier@sycomore.fr>
URL : http://www.gbarbier.org/
Summary : a command-line numeric bases converter
Description :
Converts number to/from decimal, hex, bin, octal and ascii on the
command line.
Useful for debuging and so on.

Oburnete vnimanie, che za neinstaliran paket, na rpm se podava pulniia put kum mestonahozhdenieto i pulnoto ime na paketa, za koito pravim zapitvane.

$ rpm -qpl /usr/src/redhat/RPMS/i386/bcv-2.2-2.i386.rpm
/usr/bin/bcv
/usr/man/man1/bcv.1.gz

4. Proslediavane na zavisimostite.

Mnogo chesto kogato iskame da instalirame daden RPM paket poluchavame suobshtenie za greshka, che ne sa izpulneni opredeleni zavisimosti za da se instalira paketa. T.e. nashiia paket zavisi ot drugi paketi za da raboti korektno. Kak da proverim tezi zavisimosti? Parameturut -R (requires - iziskva) na rpm ni idva na pomosht.

$ rpm -qpR /usr/src/redhat/RPMS/i386/centericq-4.10.0-1.i386.rpm
/bin/sh
/usr/bin/perl
libc.so.6
libc.so.6(GLIBC_2.0)
libc.so.6(GLIBC_2.1)
libc.so.6(GLIBC_2.1.3)
libc.so.6(GLIBC_2.3)
libc.so.6(GLIBC_2.3.4)
libcom_err.so.2
libcrypto.so.4
libcurl.so.2
libdl.so.2
libgcc_s.so.1
libgcc_s.so.1(GCC_3.0)
libgssapi_krb5.so.2
libjpeg.so.62
libk5crypto.so.3
libkrb5.so.3
libm.so.6
libm.so.6(GLIBC_2.0)
libncurses.so.5
libnsl.so.1
libresolv.so.2
libssl.so.4
libstdc++.so.5
libstdc++.so.5(CXXABI_1.2)
libstdc++.so.5(GLIBCPP_3.2)
libz.so.1
ncurses >= 4.2
openssl
perl(Time::Local)
rpmlib(CompressedFileNames) rpmlib(PayloadFilesHavePrefix)
Kakto vizhdate dulug spisuk ot zavisimosti! /bin/sh; perl; suma ti biblioteki...; ncurses; openssl; perl moduli... Za da funktsionira normalno centericq (konzolen ICQ klient) e neobhodimo da imame instalirani vsichki tezi programi i biblioteki. Za nachinaeshtiia potrebitel na Linux e meko kazano nevuzmozhno da se opravi sus vsichkite tezi zavisimosti. Tuk ni idvat na pomosht yum, up2date, apt - programi za upravlenie na paketite, koito izpolzvat RPM (pri RPM baziranite distributsii), no slediat i za zavisimostite mezhdu paketite, kato vi predlagat da instalirat neobhodimoto vmesto vas.

No tova e predmet na otdelna statiia... Za sega shte se pridurzhame kum vuzmozhnostite
na RPM.

Neka da proverim zavisimostite na veche instaliran paket:

$ rpm -qR kernel
rpmlib(VersionedDependencies) fileutils
module-init-tools
initscripts >= 5.83
mkinitrd >= 3.5.5
/bin/sh
rpmlib(PayloadFilesHavePrefix) rpmlib(CompressedFileNames)
Vizhdate ot kolko neshta zavisi iadroto na vashata Operatsionna Sistema.

5. Instalatsiia na paketi direktno ot Internet.

Za da instalirate RPM paket, ne e neobhodimo sushtiia da se namira na lokalnata vi failova sistema. Napulno e vuzmozhno instaliraneto prez internet. Da vidim kak stava tova:

# rpm -Uvh ftp://user:pass@ftpserver/directory/package.rpm

Gornata komanda shte iztegli i instalira RPM paket sus ime package.rpm ot FTP survur, narechen ftpserver, kato user i pass sa suotvetno vasheto potrebitelsko ime i parola za tozi survur.

Za dostup do FTP survuri, pozvoliavashti anonimen dostup e dostatuchno:

# rpm -Uvh ftp://ftpserver/directory/package.rpm

Estestveno, vsichki kombinatsii ot parametri, opisani po-gore sa vuzmozhni i chrez otdalechen dostup:

# rpm -qpl --ftpproxy proxyserver --ftpport port ftp://ftpserver/dir/remote-package.rpm

S tazi komanda pravim zapitvane za failovete, koito se susdurzhat v paketa remote-package.rpm na FTP survur ftpserver v direktoriia dir, sus aktiven port port (--ftpport port) i proksi survur na zaiavkata proxyserver...

Slozhno li vi se vizhda... Da slozhno e, no za smetka na tova - funktsionalno. Niakoi shte popita: A ne mozhe li da si izteglim RPM paketa i togava rabotim s nego?
Estestveno, che mozhe! Dazhe e po-lesno ;) No tova e sushtnostta na Linux - vsiako neshto mozhe da se napravi po mnogo razlichni nachini. Istinskiia haker obicha predizvikatelstvata :) I slozhnite komandi ot konzola.
Eto i variant na gornata komanda, no prez WEB survur:

# rpm -qpR --httpproxy proxyserver --httpport port http://webserver/dir/remote-package.rpm

Super, a? 'Aide nakaraite niakoi ot vashite oponenti da instalira WIN programa po tozi nachin ;)

6. NEkoi suobrazheniia.

Ne burzaite da instalirate s $ rpm -ivh Pripomnete si parametura --test i ne zabraviaite da go izpolzvate pri instalatsiia ili nadgrazhdane na kritichni paketi: naprimer kernel.

# rpm -ivh --test new-kernel.rpm

Mozhe da vi spesti mnogo nepriiatnosti: lipsa na diskovo prostranstvo, problemi sus zavisimosti i t.n. Ako niama suobshteniia za greshka - opitaite da nakarate rpm da se "razbubri", izpolzvaiki parametura -v (a zashto ne i -vv)

---

CHesto dopuskana greshka pri nadgrazhdane na sushtestvuvashta sistema:

# rpm -Uvh /path/to/*.rpm

Tazi komanda shte nadgradi vsichki paketi, koito se namirat v direktoriia /path/to/ CHesto obache mozhem da sreshtnem razlichni versii na edin i susht paket - naprimer

glibc-2.3.2-101.4.i386.rpm
glibc-2.3.2-101.4.i686.rpm

Na pruv pogled - edno i sushto, no na praktika... i386 shte proraboti na 686 arhitektura, no niama da e optimizirano za tova, no puk i686 - NQMA da se ponese s 386 arhitekturata

Zatova, podrezhdaite si RPM paketite, svaliaite samo tezi, koito sa za vashata arhitektura, ne zadavaite wildcards kato parametur na komandata rpm...!
I ne zabraviaite parametura --test !!!

---

Ako iskate da nadgradite iadroto na vashata sistema - uverete se, che RPM paketa e za vashata distributsiia. Proverete arhitekturata na paketa...

# rpm -q --qf "Kernel arch type is: %{ARCH}\nKernel name is: %{VERSION}\n" kernel

Naprimer smp vuv imeto na paketa oznachava, che iadroto e za mnogoprotsesorni sistemi, i386, i586, i686, athlon, a64 sa oznacheniiata za suotvetnata arhitektura, bigmem shte reche, che iadroto e kompilirano s poddruzhka na poveche ot 4 GB RAM...

A nai-dobre si kompiliraite iadroto ot izhodniia kod.

---

Suzdavane na rezervno kopie pri nadgrazhdane na paket:
Dosetihte li se?

# rpm -Uvh --repackage new-package.rpm

7. SRPM - Source RPM ili paketi s izhoden kod.

Vsichki ste vizhdali paketi s ime package-X.X-X.src.rpm
kakvo predstvliava tozi paket? Tova e RPM paket, sudurzhasht izhodniia kod na dadena programa. E, kakvo da gi pravim tezi paketi? Ami prekompilirame gi s pomoshtta na rpm.

# rpmbuild --rebuld /path/to/package_name.src.rpm

pri uspeshna kompilatsiia gotoviia paket shte bude zapisan v direktoriia /usr/src/redhat/arch (ili /usr/src/mandrake/arch) kudeto arch e vashata arhitektura (i386, i586, i686) sled koeto mozhe da go instalirate po opisanite veche nachini.

A mozhem li da instalirame takuv paket? Estestveno! Pri instalatsiia na SRPM sushtiia shte se instalira kakto sledva (putishtata sa dadeni za Red Hat suvmestima sitema):

/usr/src/redhat/SOURCES -- izhodniia kod na paketa
/usr/src/redhat/SPECS -- spetsialniia package.scpec fail, koito sudurzha instruktsii za kompilirane
i paketirane na gotoviia paket.

Kak da kompilirame veche instaliran SRPM?
Izpolzvame parametura -b (build) na rpm. (V po-novite versii na programata komandata e rpmbuild)

# rpmbuild -ba /usr/src/redhat/SPECS/package.spec

Ot build all. SHTe kompilira izhodniia kod i shte zapishe gotoviia paket v
/usr/src/redhat/RPMS/arch/package-X.X-X.arch.rpm
kakto i SRPM v
/usr/src/redhat/SRPMS/package-X.X-X.src.rpm

# rpmbuild -bb /usr/src/redhat/SPECS/package.spec

Ot build binary. Kompilira izpulnima versiia na programata (dvoichen kod) i zapisva gotoviia RPM paket v /usr/src/redhat/RPMS/arch/package-X.X-X.arch.rpm Kato arch e arhitekturata za koiato e kompiliran paketa (i386. i586, i686 i t.n.)

8. Proverka na checksum i podpis na RPM paket.

Vseki RPM paket mozhe da bude podpisan s GPG publichen klyuch, i ima MD5 hesh, koito sluzhi za udostoveriavane validnostta na paketa. GPG podpisa mozhe da bude proveren samo, ako razpolagame s publichniia GPG klyuch na avtora na paketa. Kak da dobavim GPG klyuch? Izpolzvame parametura --import.

# rpm --import /usr/share/rhn/GPG-KEY

Proverka na instaliranite GPG publichni klyuchove:

# rpm -qa gpg-pubkey*

Informatsiia za konkreten GPG publichen klyuch:

# rpm -qi gpg-pubkey-db42a60e

Kato db42a60e e indikativa na konkretniia klyuch.

Publichnite GPG klyuchove magat da se de-instalirat (iztrivat) ne po-razlichno ot RPM paketi:

# rpm -e gpg-pubkey-db42a60e

I nakraia za proverka na konsistentnostta na paketa izpolzvaite parametura -K

# rpm -vvK /usr/src/redhat/RPMS/i386/checkinstall-1.5.3-3.dag.i386.rpm
D: Expected size: 50061 = lead(96)+sigs(180)+pad(4)+data(49781)
D: Actual size: 50061
/usr/src/redhat/RPMS/i386/checkinstall-1.5.3-3.dag.i386.rpm:
Header SHA1 digest: OK (78d4fc3d05c0091da70e379283f1d3c58e4e5f50)
MD5 digest: OK (8226145156b91dce683ac73429d56416)

9. Promenlivi na sredata na rpm.

Pri vsiaka distributsiia e razlichno. Vse pak rpm ni dava vuzmozhnost da razberem kakva negovata konfiguratsiia:

$ rpm --showrc

Spisuka e mnogo dulug. To ne sa promenlivi, makro definitsii, lokalizatsii... Ne se boite - niama da vi triabva! I vupreki vsichko e mnogo polezno dori i za nai-nachinaeshtiia potrebitel. Pomnite li parametura --repackage? Da? Obache ne mozhete da namerite kude rpm zapisva kopiiata na deinstaliranite paketi?

# rpm --showrc | grep repackage
-14: _repackage_all_erasures 0
-14: _repackage_dir /var/spool/repackage
-14: _repackage_name_fmt %%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm
-14: _repackage_root %{nil}

Vidiahte li? Cool, a?

10. RPM se skapa! Kakvo da pravim?!

Programata rpm si izgrazhda sobstvena baza danni za instaliranite paketi i pri izpulnenieto na dadena komanda se dopitva do neia, vmesto da chete tseliia tvurd disk i proveriava kakvo e instalirano i kude. E nikoi ne e bezgreshen - rpm sushto. Ot vreme na vreme se sluchva bazata danni da se povredi i togava rpm komandada "uvisva" ili "gurmi". Spokoino - nishto ne e zagubeno! Sega shte vuzstanovim bazata danni na rpm:

rm -f /var/lib/rpm/__* ; rpm -vv --rebuilddb

Vnimanie: Mozhe da otneme dosta vreme! Vsichko zavisi ot kolichestvoto instalirani RPM-i, kakto i ot burzodeistvieto na vashata mashina.

11. Drugi "gudeli".

Iskalo li vi se e da si napravite spisuk koga, kakvo ste instalirali? E, rpm otnovo idva na pomosht:

$ rpm -qa --last

shte vi dade spisuk na vsichki instalirani RPM paketi podredeni po data na instalirane, kato nai-presnite sa nai-otgore. Sortirane v obraten red? OK:

$ rpm -qa --last | tac

Sortirane na instaliranite paketi podredeni po razmer? Nali ne si mislite, che e nevuzmozhno?

rpm -qa --queryformat '%10{size} %{name}-%{version}\n' | sort -n

Ot nai-malkiia kum nai-golemiia?

rpm -qa --queryformat '%10{size} %{name}-%{version}\n' | sort -rn


*****

E stiga tolkova za rpm, che shte vi se vidi prekaleno slozhen ;) Nadiavam se tova chetivo da e bilo pone malko polezno za nachinaeshtite v Linux.

I dano pone edin ot vas da e otsenil po mnogoobrazieto na tazi operatsiona sistema. Neka vse pak ne zabraviame - rpm e samo ednata strana na neshtata. Ima i drugi menidzhuri na paketi: deb - v Debian; tgz - Slackware (hmmmm... mnogo hliab ima da iziade) i dr.

SPETSIALNI BLAGODARNOSTI:
Suzdatelite na RPM (Red Had Inc) i v chastnost:
Marc Ewing marc@redhat.com>
Jeff Johnson jbj@redhat.com>
Erik Troan ewt@redhat.com>
Avtora na "All You Have to Know about RPM" - Alexandre de Abreu,
Ramon Gutierrez i Sandy Pond za gotinite idei;
Linus Torvalds - da obiasniavam li zashto?
...i vsichki razrabotchitsi i potrebiteli na Linux.


<< KAKDA Kompilirame KDE & QT | VPN na bazata na OpenSwan, OpenSSL, L2TPD >>