You are on page 1of 7

Nguyn Thanh Hi-QL02A/3 (hai2502@yahoo.

com)

Cch s dng RPM


RPM l chng trnh ci t RPM Package Manager, dng ci t cc
chng trnh c bin dch t source sang file nh phn. Nhng u im
ca vic ci chng trnh dng RPM so vi vic ci chng trnh t source
code.
- D dng ci t v g ci t ra khi h thng.
- D dng kim tra li cc package ci vo h thng.
- D xy dng package.
- Chng trnh thc thi hon ton ging vi cch ci t source code.
- C th ci c trn nhiu h thng.
RPM c th d dng thc hin c cc cng vic sau: ci t, g ci t, nng
cp, lm ti, kim tra li.
1. Cc thng s v cu hnh v RPM ca h thng:
--version: hin th phin bn ca RPM hin ang s dng
VD: [root@KINGHAI root]# rpm --version
RPM version 4.3.1
--quiet: Khng hin th thng tin trong sut qu trnh ci t mt
package, ch hin th thng tin li.
-v: Hin th thng tin qu trnh ci t package.
--rcfile: thay i cc cha thng tin cu hnh cho RPM, cc file cch
nhau bng du :. Mc nh, cc file cu hnh s l
/usr/lib/rpm/rpmrc:/usr/lib/rpm/red hat/rpmrc:/etc/rpmrc:~/.rpmrc.
--dbpath: Thay i file d liu thng tin v cc package. Mc nh file
ny s l
/var/lib/rpm
2. Truy vn mt package (Query):
Tm kim thng tin v mt package trong c s d liu ca h thng.
Cu trc ca mt cu lnh query package:
rpm -q|--query [iu kin hin th] [iu kin truy vn] <package>
<package> c th l mt package ti my cc b, hoc l mt package
mt a ch ftp hoc http no . Nu package mt trang ftp hoc http
th tn package s l ng dn tuyt i n package .
VD: [root@KINGHAI root]#rpm -qpi x-unikey-0.9.2-1.i586.rpm
hay
[root@KINGHAI root]#rpm -pqi http://unikey.sourceforge.com/download/xunikey-0.9.2-1.i586.rpm
Ch : Khi truy vn mt package mt a ch http hoc ftp th header ca
package s c download v, ch khng download ton b package.
iu kin hin th:
-a, --all: hin th tt c cc package c ci t vo h thng.
VD: [root@KINGHAI root]#rpm -qa
-f, --file: hin th package no c cha cu lnh ang cn truy vn. Ch
: mun truy vn c package no c cha cu lnh ang cn truy

Nguyn Thanh Hi-QL02A/3 (hai2502@yahoo.com)

vn th phi g ng dn chnh xc ca cu lnh, c th tm ng


dn chnh xc ca cu lnh bng whereis <cu lnh>
VD:
[root@KINGHAI root]# whereis gcc
gcc: /usr/bin/gcc /usr/lib/gcc /usr/libexec/gcc usr/share/man/man1/gc
c.1.gz
[root@KINGHAI root]# rpm -qf /usr/bin/gcc
gcc-3.3.3-7
Khi mun tm km cc file ti liu c lin quan n cu lnh no,
dng
[root@KINGHAI root]#rpm -qdf /usr/bin/md5sum
-g, --group: hin th package no l thuc group no.
VD: [root@KINGHAI root]# rpm -qg System/Internationalization
x-unikey-0.9.2-1
Ch : bit tn group no s hu package no, nn xem thng tin
package bng rpm -qi
-p: Hin th tn ca package sau khi ci vo h thng.
VD: [root@KINGHAI root]# rpm -qp x-unikey-0.9.2-1.i586.rpm
x-unikey-0.9.2-1
Khi dng option ny vi cc option -i, -l c th xem thng tin, lit k
danh sch ca package m khng cn phi ci package vo h thng.
--pkgid: Hin th package c chui kim tra MD5 trng vi chui ny.
--whatprovides: Hin th tt c cc package c cha cu lnh/chc
nng ny.
VD: [root@KINGHAI root]# rpm -q --whatprovides gcc
gcc-3.3.3-7
--whatrequires: Hin th tt c cc package c lin quan n cu
lnh/chc nng ny.
VD: [root@KINGHAI root]# rpm -q --whatrequires gcc
gcc-c++-3.3.3-7
gcc-g77-3.3.3-7
gcc-gnat-3.3.3-7
gcc-objc-3.3.3-7
gcc-java-3.3.3-7
sm56-06.05.00-1
-v: S dng option ny cng vi cc option -c, -d, -l, -s hin th danh
sch ging nh danh sch ca cu lnh ls -l.

iu kin truy vn:


--changelog: Hin th nhng thay i, cp nht ca package qua cc
ln ng gi. Thng tin ny do ngi ng gi file cung cp trong
package.
VD: [root@KINGHAI root]#rpm -q changelog x-unikey-0.9.2-1
-c, --configfiles: Ch hin th nhng file cu hnh.
VD: [root@KINGHAI root]#rpm -q configfiles x-unikey-0.9.2-1

Nguyn Thanh Hi-QL02A/3 (hai2502@yahoo.com)

-d, --docfiles: Ch hin th nhng file ti liu ca chng trnh.


VD: [root@KINGHAI root]#rpm -q docfiles x-unikey-0.9.2-1
--filesbypkg: tng t -l.
-i, --info: Hin th thng tin v package, bao gm: tn package, miu t,
ngy pht hnh, dung lng. ngy xy dng package, ngy ci t vo
h thng v cc thng tin khc. Nu mun xem thng tin v mt option
cha c ci vo h thng, dng thm option -p.
VD: [root@KINGHAI root]#rpm -qi x-unikey
-l, --list: Xem cc file trong package. Nu mun xem danh sch file
trong mt package cha c ci vo h thng th thm option -p.
VD: [root@KINGHAI root]#rpm -ql x-unikey-0.9.2-1
hay [root@KINGHAI root]#rpm -qpl x-unikey-0.9.2-1-1.i586.rpm
--provides: Xem cc lnh m sau khi ci package s s dng c.
Nu c file binary th s xem c thm phin bn ca package.
VD: [root@KINGHAI root]#rpm -q --provides gcc
gcc = 3.3.3-7
-R, --requires: Xem tt c cc packages cn thit package c th
hot ng c.
VD: [root@KINGHAI root]# rpm -q --requires gcc
/bin/sh
/bin/sh
/bin/sh
/sbin/install-info
binutils >= 2.14.90.0.4-4
cpp = 3.3.3-7
glibc-devel >= 2.2.90-12
libc.so.6
libc.so.6(GLIBC_2.0)
libc.so.6(GLIBC_2.1)
libc.so.6(GLIBC_2.3)
libgcc >= 3.3.3-7
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PartialHardlinkSets) <= 4.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
Ch : --requires v whatrequires c chc nng khc nhau.
--scripts: Xem cc scripts c thc hin khi ci t v g ci t mt
package.
VD: [root@KINGHAI root]#rpm -qi x-unikey
--state: Xem tnh trng ca cc file trong package, file trng thi
normal (bnh thng), trng thi not installed (cha ci), hoc trng
thi replaced ( c thay th, ci chng).
VD: [root@KINGHAI root]#rpm -qs x-unikey
--triggers, --triggerscripts: Xem cc trigger scripts s c t ng thc
hin.
VD: [root@KINGHAI root]#rpm -q triggers x-unikey

Nguyn Thanh Hi-QL02A/3 (hai2502@yahoo.com)

3. Ci t (Install):
Ci t mt package vo h thng.
Cu trc mt cu lnh ci t:
rpm -i [iu kin ci t]
-i|--install: Ci t package.
VD: [root@KINGHAI root]#rpm -ivh x-unikey-0.9.2-1.i586.rpm
hay [root@KINGHAI root]#rpm --install -vh x-unikey-0.9.2-1.i586.rpm
iu kin ci t:
--test: Dng option ny kim tra sau khi ci t package th s xy ra
ng cc package no hoc file no khng, hoc cn thm cc
package no package cn ci c th hot ng c. Option ny s
khng ci t package.
VD: root@KINGHAI root]# rpm -ivh --test xmms-mp3.rpm
Nu xy ra li th h thng s thng bo li tng t nh khi ci t
hoc nng cp.
--replacepkgs: Trong trng hp khi ci mt package m nhn c
thng bo package c ci t (package already installed) v
khng cho ci tip, th khi s dng option ny s ci chng package .
VD: [root@KINGHAI root]#rpm -ivh replacepkgs x-unikey-0.9.21.i586.rpm
--replacefiles: Trong trng hp khi ci mt package m mt file no
trong package c ci bi mt package khc, v h thng s thng
bo file tn ti (VD: foo /usr/bin/foo conflicts with file from bar1.0-1) v s khng cho ci t, khi s dng option ny th s cho php
ci chng file trong h thng.
Ch : Khi s dng option ny, nn ch file b conflict. Trong tng lai,
nu user khng mun s dng package c file b conflict ny na, user
g package ra khi h thng, do file b conflict cng b xa, v
chng trnh trc s khng thc thi c v thiu file cn thit.
VD: [root@KINGHAI root]#rpm -ivh replacefiles x-unikey-0.9.21.i586.rpm
--nodeps: Khi ci t mt package, m package cn cc package
khc c th hot ng c, m cc package cha c ci t
th h thng s thng bo li.
VD: [root@KINGHAI root]# rpm -ivh xmms-mp3.rpm
warning: xmms-mp3.rpm: V3 DSA signature: NOKEY, key ID e42d547b
error: Failed dependencies:
xmms = 1:1.2.10 is needed by xmms-mp3-1.2.10-2.2.p.1.fc2.fr
libxmms.so.1 is needed by xmms-mp3-1.2.10-2.2.p.1.fc2.fr
Khi gp thng bo ny th user phi ci cc package cn thit
package xmms c th ci c. Nu s dng option nodeps th h
thng s ci t package m khng quan tm n s cn thit phi c
cc package no th package ang ci mi hot ng c, tuy nhin
c th xy ra tnh trng package sau khi ci xong s khng thc thi
c.
VD: root@KINGHAI root]# rpm -ivh --nodeps xmms-mp3.rpm

Nguyn Thanh Hi-QL02A/3 (hai2502@yahoo.com)

--force: Bt buc h thng ci package ny. --force ng ngha vi vic


s dng replacepkgs v replacefiles.

4. G ci t (Erase):
Cu trc mt cu lnh g ci t
rpm -e [iu kin g ci t] <package>
<package> c th ch l tn ca package khng cn version. Nhng nn
s dng tn package y vi version v phn m rng rpm.
VD: [root@KINGHAI root]#rpm -e x-unikey
hay [root@KINGHAI root]#rpm -e x-unikey-0.9.2-1.i586.rpm
iu kin g ci t:
--allmatches: G ci t tt c cc version ca package, nu trong h
thng c ci nhiu package vi cc version khc nhau.
--nodeps: tng t nh option ca phn ci t.
--test: tng t nh option ca phn ci t.
5. Nng cp v lm ti package:
5.1 Nng cp (Upgrade):
Cp nht package. Nu package cha tn ti th dng option ny s ci
package. Khi thc hin option ny, h thng s xa ton b package
c, v thay bng package mi.
Cu trc cu lnh nng cp:
rpm -U|--upgrade [iu kin nng cp] <package>
VD: #rpm -Uvh x-unikey-0.9.2-1.i586.rpm
iu kin nng cp:

--oldpackage: Khi nng cp mt package m phin bn ca package


cn ci vo my c hn so vi package c trong my, h thng s
bo li v khng cho ci t.
VD: [root@KINGHAI root]#rpm -Uvh foo-1.0-1.i386.rpm
foo package foo-2.0-1 (which is newer) is already installed
error: foo-1.0-1.i386.rpm cannot be installed
Khi dng option ny th s bo cho h thng bit package ang c
trong h thng l c v s p h thng ci t package ny vo.
[root@KINGHAI root]#rpm -Uvh oldpackage foo-1.0-1.i386.rpm
5.2 Lm ti package (Freshen):
Cp nht package, tong t nh -U, tuy nhin option ny ch s dng
c khi package c tn ti trong h thng. H thng s so snh phin
bn ca 2 package c v mi, nu khc nhau th s cp nht, nu ging
nhau th s khng lm g c.
Cu trc ca cu lnh lm ti package
rpm -F <package>
VD: [root@KINGHAI root]#rpm -Fvh x-unikey-0.9.2-1.i586.rpm
Trong trng hp trong my hin ti ci mt s package, v
user download mt khi lng ln package v my, user khng mun

Nguyn Thanh Hi-QL02A/3 (hai2502@yahoo.com)

ci tt c cc package download v m ch mun ci li cc package


c trong my, th lm nh sau:
[root@KINGHAI root]#rpm -Fvh *.rpm
H thng s t ng d cc package c trong h thng v ci t li
vi cc package c version mi hn vo h thng. Thc hin cu lnh
ny phi thc hin trong th mc c cha cc rpm cn lm ti
6. Kim tra (Verify):
Kim tra package kim tra thng tin ca mt file c ci t t mt package
vi package gc.
Cu trc cu lnh kim tra
rpm -V [iu kin chn] [iu kin kim tra] <file/command>
<file/command> c th l bt c file no cn kim tra. Phi nhp ng
dn tuyt i ca file/command cn kim tra.
Nu mun kim tra mt file no
iu kin chn: Tng t nh iu kin chn ca Truy vn (query).
iu kin truy vn:
--nodeps: khng kim tra s ph thuc vo package khc.
--nofiles: Khng kim tra thuc tnh ca cc file.
--nomd5: Khng kim tra MD5 checksum.
--nosize: Khng kim tra kch thc file trong package v trong h
thng.
Nu kim tra khng c li s khng hin th kt qu ra mn hnh. Nu
vic kim tra c li, th kt qu s c hin th ra mn hnh. Trc mi
file kim tra s c mt k t cho bit file l file dng g:
c: file cu hnh (Configuration file).
d: file ti liu (Document file).
g: file o, xut hin sau khi ci package, khng nm trong
package nguyn thy.
l: file cha thng tin bn quyn (license file).
r: file Readme.
Kt qu tr v ca vic kim tra l mt chui 8 k t. Nu phn no
hin th du . th phn kim tra khng c li, nu c li th s hin th
k t i din cho li. Cc k t i din bao gm (theo th t hin th
li):
S: Kch thc ca file sau khi ci t v file trong package nguyn
thy khc nhau.
M: Permission v nh dng file khc vi file trong package nguyn
thy.
5: Kim tra MD5 sai.
D: Kim tra con s ch thit b no ang giao tip vi file hoc file
c lu tr trn loi thit b no. Khi thay i loi thit b lu tr th
cn s ny b thay i.
U: User s hu file thay i.
G: Group s hu file thay i.
T: Thi gian ln chnh sa cui cng b thay i.

Nguyn Thanh Hi-QL02A/3 (hai2502@yahoo.com)

Khi hin th du ? l h thng khng kim tra c phn .


VD: [root@KINGHAI root]#rpm -Va
S.?..... /usr/sbin/netconfig
S.5....T c /etc/sysconfig/pcmcia
S.5....T c /etc/samba/smb.conf
...
Theo v d trn
/usr/sbin/netconfig c li kch thc file, khng kim tra c
MD5.
/etc/sysconfig/pcmcia l file cu hnh, c li kch thc file, c li
MD5, v c li ln thi gian ln thay i cui.
/etc/samba/smb.conf l file cu hnh, c li kch thc file, c li
MD5, v c li ln thi gian ln thay i cui.

Ti liu tham kho:


Maximum RPM. (www.redhat.com)
Red Hat Linux 7.0: The Official Red Hat Linux Reference Guide-Chapter 5.
Package Management with RPM.
RPM-HOWTO, Donnies Barner, Red Hat ,Inc

RPM Manual Page.

You might also like