Információ lekérése
Ebben a fejezetben az informácó lekérésének
a módját tárgyaljuk. 
Információt kérhetünk le egy fileról, feltelepített
csomagról (hála a jól szervezett rpm adatbázisnak),
és azok minden nemű információiról, tartalmáról
kezdve a leírástól a fileokon át a scriptekig.
Az információt általános esetben az rpm -q
<file neve> paranccsal kérhetünk le.
Akkor most lássuk az opcióit:
  - rpm -q -a:
  Kilistázza az összes feltelepített csomagot.
  Ez igen terebélyes lista is lehet, így
  érdemes
  ezt a listát átirányítani egy fileba. Például
  a /tmp/lista fileba menti el a listát a
  következő
  parancs:
  rpm -q -a >/tmp/lista
   - rpm -q -f <file neve>:
  E opció segítségével megtudhatod, hogy
  a
  gépeden lévő file melyik csomaghoz tartozik.
  Például -rpm -qf /bin/ls parancs hatására
  a következőt kapod:
  fileutils-3.12-3
  Tehát a /bin/ls file a 3.12-3-as verziójú
  fileutils csomaghoz tartozik. De az is
  megeshet,
  hogy egy filera azt az üzenetet kapod,
  hogy
  az nem tartozik egyetlen feltelepített
  csomaghoz
  sem. Itt két eset lehetséges. Vagy egyáltalán
  nincs egy csomagba a file, vagy van. Ez
  utóbbi
  esetben a következő képpen kell eljárni,
  hogy megtudjuk, kihez is tartozik a file:
  rpm -qf /usr/X11/bin/xterm
  file /usr/X11/bin/xterm is not owned by
  any
  package
  Most nézzük meg mondjuk a /usr könyvtár
  tartalmát:
  ls -lF /usr
  ...
  X11 -> X11R6
  X11R6
  ...
  Tehát a /usr/X11 könyvtár egy szimbolikus
  link a /usr/X11R6 könyvtárra. Most futtassuk
  e könytárral az rpm-et:
  rpm -q -f /usr/X11R6/bin/xterm
  Xfree86-3.1.2-5
  Mit tehetünk e nehézségek kiküszöbölésére?
  A megoldás egyszerű. Lépjünk be abba a
  könyvtárba,
  ahol a file van. Majd egyszerűen csak a
  file
  nevével futtassuk az rpm -q -f parancsot,
  és hagyjuk el a könyvtárakat!
   - rpm -q -p <file neve>:
  A lemezen lévő rpm fileról kérdezhetünk le
  információkat akár fel van telepítve, akár
  nem.
   - rpm -q -g <csoport azonosító>:
  A csomagoknak van egy csoport azonosítójuk
  (mint a dokumentum elején láttuk), amik
  alapján
  könnyen csoportosíthatók a csomagok. Ha
  beírunk
  egy csoportot, akkor kilistázza az öszzes,
  a megadott csoportba tartozó csomagot.
   - rpm -q --whatprovides <file neve>:
  Az általános gyakorlat az az, hogy egy csomag
  vagy valamit igényel a működéséhez, vagy
  valamit szolgáltat más csomagok számára.
  Ezzel az opcióval azt kérhetjük le, hogy
  a megadott lemezen lévő filet melyik feltelepített
  csomag szolgáltatja. Gyakorlatilag ugyanaz
  mint a -f opció (rpm -q -f <file neve>)
   - rpm -q --whatrequires <csomag neve>:
  Itt azt kérdezhetjük le, hogy mely feltelepített
  csomagok működéséhez szükséges a megadott
  csomag.
   - rpm -q -i <csomag neve>:
  E opcióval a dokumentum elején lévő általános
  információt kaphatunk a csomagról. Értelem
  szerűen ha egy rpm fileról szeretnénk ugyanezt
  megtudni, azt az 'rpm -q -p -i <file neve>
  paranccsal tehetjük meg.
   - rpm -q -l <csomag neve>:
  a csomaghoz tartozó összes filet kilistázza.
   - rpm -q -l -v <csomag neve>:
  Plusz információt szolgáltat a csomagban
  lévő fileokról (pl tulajdonosa, attribútuma..).
   - rpm -q -c <csomag neve>:
  kilistázza, hogy a csomaghoz mely konfigurációs
  fileok tartoznak.
   - rpm -q -d <csomag neve>:
  kilistázza a csomaghoz tartozó összes dokumentumfilet.
   - rpm -q -s <csomag neve>:
  A csomaghoz tartozó fileok állapotát kérdezhetjük
  le. És mik ezek az állapotok?
  
    - normal: a file nem lett módosítva más csomagok
    feltelepítése által.
    
 - replaced: a file ki lett cserélve, mikor
    más csomagot feltelepítettünk.
    
 - not installed: a file nem lett feltelepítve,
    mert mondjuk olyan opcióval telepítettük,
    ami azt nem teszi fel
    
 - net shared: a file egy megosztott meghajtón
    van.
  
 
   - rpm -q --provides <csomag neve>:
  Azokat a fileokat, libraryket listázza
  ki,
  amit más csomagok/programok igényelhetnek.
   - rpm -q --requires <csomag neve>:
  Az előző ellentettje, azaz azokat a fileokat
  listázza ki, amit igényel a működéséhez.
   - rpm -q --dump <csomag neve>:
  Az összes lehetséges információt kilistázza
  a csomaghoz tartozó fileokról.
   - rpm -q --scripts <csomag neve>:
  Azokat a scripteket listázza ki, amit a
  csomag
  feltelepítése/letörlése után/előtt hajtana
  végre.
   - rpm -q --queryformat '<formátum>' <csomag
  neve>:
  Nos ez egy igen összetett parancs. A lényege
  röviden annyi, hogy egy csomagból azt kézdezünk
  le amit akarunk, és úgy iratjuk ki ahogy
  akarjuk, vagyis ahogy a <formátum>-ban
  meghatároztuk. A különböző külcsszavakat
  %{kulcsszó} módon kell jelölni, és ha szavakt
  írunk akkor azt is kiírja. Ennek működését
  talán egy példán keresztül a legkönnyebb
  megérteni:
  rpm -q --queryformat '%{NAME}: %{FILENAMES}n'
  adduser
  adduser: /usr/bin/adduser 
  Látható, hogy a csomag nevét írja ki, utána
  egy kettőspontot, majd a csomag fileját.
  Itt a csomag csak egy filet tartalamzott,
  de ha több filet tartalmaz, akkor bizony
  hibás kimenetet kapunk ezt a következő
  képpen
  lehet kiküszöbölni:
  rpm -q --queryformat '%{NAME}: %{FILENAMES}]n'
  etcskel
  etcskel: /etc/skel
  /etc/skel/.xclients
  ...
  Nos itt már kiírja az összes filet. De
  most
  vegyük azt a kerziót, amikor ki szeretnénk
  írni az összes sor elejére a csomag nevét:
  rpm -q --queryformat '%{=NAME}: %{FILENAMES}]n'
  etcskel
  Ezzel az opcióval már megjelenik a sor
  elején
  a csomag neve is.
  A formátum végén szereplő n hatására minden
  kiírandó tétel után a következő tétel új
  sorban kezdődik. Ezek hiányában minden egy
  sorba akarna írni (persze amíg kifér), így
  eléggé áttekinthetetlen lenne az egész.
  Hogy mely információk kérhetől le a csomagból,
  mely kulcsszavak használhatók, azt az "rpm
  --querytags" paranccsal kérhetjük le.
 
A következő opciók működése megegyezik a
rpm -i opcióival, így csak fesorolom azokat:
  - rpm -q -vv
  
 - rpm -q --root <path>
  
 - rpm -q --dbpath <path>
  
 - rpm -q --rcfile <path>
 
Vissza