  RPMɂpbP[WǗ
  Masaki Kawamura
  2000N1008

  1.  pbP[WǗ


  1.1.  pbP[WǗc[

  Vine Linuxł RPM(RedHat Package Manager)`̃pbP[WǗVXe
  ̗pĂ܂DɂCX̃pbP[W̃CXg[폜Ȃ
  eՂɍsƂł܂D{߂ł́CrpmpbP[W̊Ǘ@ȒP
  ܂D


  rpmpbP[W̑@͑傫킯āC

  1. rpmR}hCUI

  2. X WindowGUI (gnorpmȂ)p

     Ƃ2̕@܂D


  {߂ł1ԖڂrpmR}hgnorpmR}hprpmpbP[W̑
  @܂Dman rpmC܂rpm --helpłCrpmR}ĥ낢
  ȃIvVm邱Ƃł܂D


  1.2.  ӎ

  pbP[Wɂ͂ɃCXg[łoCipbP[WƁCvO
  ̃\[XR[hŒ񋟂Ă\[XpbP[W܂D\[XpbP
  [W肵ꍇ́Cq@ŃoCipbP[WɕϊKv
  ܂D


  rpmR}hgnorpmR}hŃpbP[WCXg[CAbvf[gC
  ACXg[Ƃ́C[g(root)[Uōs܂DC\[
  XpbP[WoCipbP[Wɕϊꍇɂ́Cʃ[Uōs
  ܂D̓oCipbP[W\zۂɃt@CKvƂ邽
  ߁C둀ȂǂɂāC̃VXe󂳂Ȃ悤ɂ邽߂łD


  VXeǗrooťKvȑ̓vvg #ŕ\Ă܂D
  Cʃ[Uōs鑀̓vvg $ŕ\Ă܂Dvvg
  $ɂȂĂ邱Ƃ root[UŎs邱Ƃ͂߂ł܂D


  1.3.  rpmpbP[W

  Vine LinuxWWWy[WAbvf[gꂽ\tgEFA VinePlus_
  E[h邱Ƃł܂D̃\tgEFArpmpbP[W
  ȂĂ܂Drpm pbP[W̖Ot̋ḰC


       (pbP[W)-(o[W)-([Xԍ).(A[LeN`).rpm



  ƂȂĂ܂D(o[W)̓\tgEFÃo[W\C([
  Xԍ)̓pbP[W쐬ɊւǗԍłDVine LinuxŗL̃pb`
  Ăꍇ́C2vl3̂悤 vl(Vine Linux[Xԍ)̌`ɂȂ
  Ă܂D(A[LeN`)ɂ src, noarch, i386, ppc, alpha, sparc
  ǂ܂D\[XR[h̃pbP[Wɂ srct܂D܂@
  (CPU)ɈˑȂpbP[Wɂ noarcht܂DCi386Ȃ
  ͋@ɈˑpbP[WłDʏCCenPCŃRpCꂽ
  oCĩpbP[Wɂ i386ƕtĂ܂Ci586ȂǂƂȂĂ
  ܂D܂APower PC (Power Macintosh)ŃRpCꂽoC
  iɂ ppcC alpha`bv𓋍ڂRs[^ŃRpCꂽ
  oCiɂ alphaCSUNSPARCŃRpCꂽoCiɂ
  sparct܂D


  2.  RPMR}h


  2.1.  rpmpbP[W̃CXg[ (rpm -i)

  RPMpbP[Wpackage-1-2vl3.i386.rpmCXg[ɂ́CIvV
  -i(Install;CXg[)g܂D


       # rpm -ivh package-1-2vl3.i386.rpm



  IvV-v (verbose)-h (hash)pƃCXg[ɃnbV}
  [Ni#joāCCXg[̐iޗlq킩܂D


       ˑ֌W(dependency)̉

  RPMpbP[WCXg[悤ƂƂɁC


       libdepend.so.1 is needed by package-1-2vl3
       sometool is needed by package-1-2vl3



  ́C


       libdepend.so.1  package-1-2vl3 ɕKvł
       sometool  package-1-2vl3 ɕKvł



  ȂǂƂG[o邱Ƃ܂D ́uRPMpbP[W
  package-1-2vl3̒ɁClibdepend.so.1sometoolƂRPMpbP[WK
  vƂt@Cɂ炸Clibdepend.so.1sometoolVXe
  ɃCXg[ĂȂvƂɂG[łD̂Ƃɂ́Cpb
  P[W libdepend.so.1sometool܂ރpbP[WTĂăCXg[
  ĂDĈ悤Ȉˑ𖳎ăCXg[Ƃ
  ɂ́CIvV--nodepspăCXg[܂D



       # rpm -i --nodeps package-1-2vl3.i386.rpm



  Ƃ܂DC̏ꍇɂ̓CXg[pbP[Wɓ삵
  Ȃ\܂D


       (conflict)̉

  package-1-2vl3.i386.rpm̃CXg[ɁC


       /usr/bin/cmd conflicts with file from another-3-4vl5



  ́C


       /usr/bin/cmd  another-3-4vl5 ̃t@CƋ܂



  ƂG[oꍇɂ́Cpackage-1-2vl3̃t@C/usr/bin/cmd, 
  łɃCXg[ς݂̃pbP[W another-3-4vl5̃t@C
  /usr/bin/cmdƋ邽߂ɁCCXg[łȂƂ܂D
  CCXg[Ƃɂ́CIvV--forcep܂D


       # rpm -ivh --force package-1-2vl3.i386.rpm



  C̏ꍇɂ́C炠another-3-4vl5̃t@C
  /usr/bin/cmd́C package-1-2vl3ɂď㏑Ă܂̂ŁC戵
  ɂ͗vӂłD



  2.2.  rpmpbP[W̃AbvO[h (rpm -U)

  łɁCpackage-1-1vl1.i386.rpmCXg[ĂāCV
  package-1-2vl3.i386.rpmɃo[WAbvƂɂ́CIvV -U
  (Update;XV)p܂D


       # rpm -Uvh package-1-2vl3.i386.rpm



  ŁCIvV-vh̖̓CXg[̎ƓłD܂CÂo
  [Wpackage-1-1vl1.i386.rpmɖ߂Ƃɂ́CIvV
  --oldpackagep܂D


       # rpm -Uvh --oldpackage package-1-1vl1.i386.rpm



  2.3.  rpmpbP[W̍폜 (rpm -e)

  CXg[package폜(ACXg[)ȂCIv
  V-e(erase;폜)p܂D



  # rpm -e package



  ŁCo[Wԍ⃊[Xԍ͗v܂񂪁C


       # rpm -e package-1-2vl3



  Ƃ邱Ƃł܂D, pbP[WpackageɊ܂܂t@C
  somefilẽpbP[WŗpĂꍇɂ,


       removing these packages would break dependencies:
       somefile is needed by another_pkg



  ́C


       ̃pbP[WKvƂĂpbP[W܂:
       somefile  another_pkg ɕKvł



  ȂǂƂG[bZ[Woč폜ł܂Dč폜Ƃ
  ɂ, IvV--nodepp܂D


       # rpm -e --nodeps package



  C̏ꍇ pbP[Wanother_pkgȂȂ\܂
  ̂ŒӂKvłD



  2.4.  rpmpbP[WɊւ𓾂 (rpm -q)


       CXg[ĂrpmpbP[W̏𓾂

  pbP[WCXg[łCo[WYĂ܂̂Œm
  肽ƌƂɂ́CIvV-q (query)p܂DႦ΁CpbP[
  W ktermɂĒm肽ꍇ܂D


       $ rpm -q kterm         (kterm̃o[Wm肽Ƃ)
       kterm-6.2.0-14vl4



  ܂CIvV -i (information;)𕹗pāC



  $ rpm -qi kterm
  Name        : kterm                        Relocations: (not relocateable)
  Version     : 6.2.0                             Vendor: Project Vine
  Release     : 14vl4                         Build Date: 2000N 721() ߑO012158b JST
  Install date: 2000N10 8() ߑO023509b JST      Build Host: venus.athome
  Group       : User Interface/Desktops       Source RPM: kterm-6.2.0-14vl4.src.rpm
  Size        : 386868                           License: X, distributable
  Packager    : Jun Nishii <jun@vinelinux.org>
  Summary     : {̕\\ X ̃^[~i\tgł.
  Description :
  {̕\\ X ̃^[~i\tgł. X ̕W^[~i\
  tg xterm ɓ{舵@\tĂ܂. xterm ̏ʌ݊
  ƂȂĂ, IvV̐ݒ⑀@ xterm ƂقƂǓł.

  ̃pbP[Wɂ xterm ZLeB[pb`16 Fpb`Ă
  ܂.

  hLg man kterm  man xterm QlɂĂ.



  ̂悤ɁCpbP[WɊւ邢낢ȏ𓾂邱Ƃł܂D
  ɃIvV-l (list;ꗗ)pƁCpbP[WɊ܂܂t@Cꗗ
  \܂D


       $ rpm -ql kterm
       /etc/X11/wmconfig/kterm
       /usr/X11R6/bin/kterm
       /usr/X11R6/lib/X11/app-defaults/KTerm
       /usr/X11R6/lib/X11/ja/app-defaults/KTerm
       /usr/X11R6/man/ja/man1/kterm.1x.gz
       /usr/X11R6/man/man1/kterm.1x.gz
       /usr/doc/kterm-6.2.0
       /usr/doc/kterm-6.2.0/DEMO.kt.uu
       /usr/doc/kterm-6.2.0/DEMO.xbm
       /usr/doc/kterm-6.2.0/README.kt
       /usr/doc/kterm-6.2.0/kterm.termcap
       /usr/doc/kterm-6.2.0/kterm.terminfo



  ̃IvVSĕt邱Ƃł܂D\ꍇ̓y[W
  lesspƕ֗łD


       # rpm -qil package | less



  ܂CgrepR}hp΁CTp^[pattern邱Ƃ
  ł܂D


       $ rpm -qil package | grep pattern



       ĂrpmpbP[WɊւ𓾂

  CXg[ĂpbP[WłȂCĂpbP[W
  package-1-2vl3.i386.rpm̏t@Cꗗm肽Ƃɂ́CIv
  V -p (package)𕹗p܂D̏ꍇ́`i386.rpm܂ł܂ރt@C
  Ŝw肵܂D


       $ rpm -qilp package-1-2vl3.i386.rpm



  ɃIvV-v(verbose)g


       $ rpm -qilvp package-1-2vl3.i386.rpm



  ƂƁCet@C̑Ȃǂ\܂D


       CXg[Ăt@C̑pbP[Wm

  CXg[Ăt@C/usr/X11R6/bin/ktermCǂRPMpbP[W
  Ɋ܂܂Ă̂Ȃ̂m肽Ƃɂ́CIvV-f (file;t@C
  )pƃpbP[W\܂D


       $ rpm -qf /usr/X11R6/bin/kterm
       kterm-6.2.0-14vl4



  2.5.  \[XpbP[WoCirpm쐬 (rpm --rebuild)

  rpmpbP[W -i-Uł܂CXg[łȂꍇ́C\[
  X(src.rpm)pbP[WoCipbP[W쐬Kv܂D
  ܂CVine Linux 2.1pɗpӂꂽpbP[WȊO(Red HatVine Linux
  1.x̃pbP[WȂ)CXg[ꍇ͕K\[XpbP[W
  \zĉD


  \[XpbP[WpbP[Wč\zƂ́Crootł͂Ȃʃ[
  Uōs܂D̓pbP[W\zۂɁCt@C̑KvƂ
  邽߁C둀ȂǂŊ̃VXe󂳂Ȃ悤ɂ邽߂łDV
  oCĩpbP[WłrootɂȂăCXg[Abvf[g
  ĉD



       
        ʂ̃[U src.rpm  rebuild 邽߂ɁCpbP[WW
        JC\z邽߂̏ꏊpӂĂ܂D̃fBNg
        ~/rpmƂȂĂ܂DCz[fBNgɂ̃fBNg
        ȂΈȉ̂悤ɂč쐬ĉD



          $ mkdir -p ~/rpm/{BUILD,SOURCES,SPECS,SRPMS,RPMS/{i386,i586,i686,noarch}}

     ܂C~/.rpmmacrosɐݒLqĂKv܂Dȉ̂悤
     ĉD


          $ echo "%_topdir $HOME/rpm" > ~/.rpmmacros



      č\z
        ł\[XpbP[Wč\z܂D\[XpbP[W
         package-1-2vl3.src.rpmƂOɂȂĂ܂Dʃ[U
        ȉ̂悤ɂ΃oCipbP[W쐬ł܂D


          $ rpm --rebuild package-1-2vl3.src.rpm



     sƍč\z(rebuild)sCȉ̂悤ȃbZ[WoďI
     ΐłD


                       ...
          񋟃t@C(provides)̒...
          K{t@C(requires)̒...
          ݒ: /home/user/rpm/RPMS/i386/package-1-2vl3.i386.rpm
          s: %clean
                       ...
          + exit 0



     Vł ~/rpm/i386/package-1-2vl3.i386.rpmroot[UɂȂ
     CXg[΂܂łDCč\zɎsꍇ́CX
     ybNt@CɏCKvłD̏ꍇ́Cʃ[UŎ̂
     ɂă\[XR[hCXg[CXybNt@CmFĉ
     D



          $ rpm -Uvh package-1-2vl3.src.rpm



     ƁC~/rpm/SRPMS/Ƀ\[XR[hpb`t@CWJ
     C~/rpm/SPECS/ɃXybNt@C package.specł܂D

     rpm pbP[W̍쐬@̏ڍׂɂĂ
     /usr/doc/HTML/MakingRPM/index.html QƂĂD



  3.  GNORPM

  gnorpm GNOMEŊJꂽRPMpbP[WǗAvP[VłDGUI
  ȒPɃpbP[WCXg[AbvO[hł
  DGNOME̓plN邱Ƃł܂D܂CGNOMEȊÕEB
  hE}l[WKDE̓R}hCN邱Ƃł܂D



  $ gnorpm



  (} <images/gnorpm.png>)


  NꂽEBhÉuwvv{^ƁC{̃wvǂނ
  Ƃł܂D


  3.1.  ݒ

  RPMpbP[WuĂfBNgw肵܂D

  1. uv{^CuݒvIŉD

  2. V\ꂽEBhÉuCXg[EEBhEvIŉ
     D

  3. uftHg̃t@CIpXvɂ /mnt/cdrom/Vine/RPMSݒ肳
     Ă܂DVine Linux 2.1 CR CD-ROMCXg[ꍇ́C
     ̂܂܂ō\܂DCD-ROM̏ꍇn[hfBXNɃRs[
     Ăꍇ́CԉɂuRPMfBNgvRPMpbP[W
     uĂpX͂܂DႦ΁CpbP[W
     /usr/local/src/Vine/RPMSɒuĂꍇ́C̃pX̂܂܋L
     q܂D

  4. ݒ肪IuOKvĉD


  3.2.  VKpbP[WCXg[


  1. EBhÉuCXg[vACRƁCCXg[p̃EC
     hE\܂D

  o  uSẴpbP[Wv c CXg[Ă̂܂߂SĂ
     pbP[W\܂D

  o  uCXg[Ă̈ȊOSāv c CXg[pbP[
     W̌Âo[WVo[W\܂DxCXg[
     ȂVK̃pbP[W͕\܂D

  o  uCXg[ĂȂpbP[Ŵ݁v c xCXg[
     ȂpbP[W\܂D

  o  uVpbP[Ŵ݁v c CXg[pbP[WV
     pbP[Ŵ݂\܂D

  o  uCXg[ĂȂC͐VpbP[Wv c L2
     킹ĕ\܂D


  2. c[̒Ƀ`FbN{^ꂽCCXg[pbP[W
     `FbN܂(NbNƃ}[Nt܂)DSđIuC
     Xg[vƃCXg[n܂܂D܂CuAbvO[
     hvƃAbvO[h܂D̂ƂCspbP[W
     肷ƌxł܂̂Ōxɏ]ĉD


  3.3.  svȃpbP[WACXg[



  1. EBhE̍ɂc[ړĨJeS܂őI܂Dpb
     P[WJeS܂łƁCEɃCXg[ĂpbP
     [Ẅꗗ܂D

  2. ACXg[pbP[WNbNđI܂D

  3. ́u폜vACRƁCũpbP[W폜܂?vƕ
     ̂ŁCu͂ṽ{^ƍ폜܂D


  3.4.  pbP[W̏\


  1. EBhE̍ɂc[ړĨJeS܂őI܂Dpb
     P[WJeS܂łƁCEɃCXg[ĂpbP
     [Ẅꗗ܂D

  2. e𒲂ׂpbP[WNbNđI܂D

  3. ́uvACRƁCupbP[W̏vEBh
     E\܂D

  4. u؁v{^ƁCCXg[t@C̑傫C
     ̌؂s܂Du폜v{^ƁC̃pbP[W폜
     邱Ƃł܂D


  3.5.  CXg[pbP[W猟

  pbP[W̏m肽CACXg[肷ꍇȂ
  ŁC̃pbP[WJeSʂ̃c[{ôɎԂĂ
  ܂Ƃ܂D̂悤ȂƂɂ́uvACRNbN
  D


   pbP[Wm肽Ƃ

  1. upbP[W̌vŁCupbP[WƈvvI܂D

  2. ̉̃tB[hɁCTpbP[W͂C{^
     ܂DႦ΁CuktermvƓ͂C kterm-6.2.0-14vl4ƕ\
     ܂DIĆuv{^Γe\
     ܂D܂Cu폜v{^΍폜܂D


   pbP[WKvƂĂpbP[Wm肽Ƃ

  1. upbP[W̌vŁCuKvȃpbP[WvI܂D

  2. ̉̃tB[hɁCpbP[W͂C{^܂D
     Ⴆ΁Cugtk+vƓ͂Cgtk+KvƂĂpbP[W
     \܂D


  3.6.  WEBpbP[W (rpmfind)

  C^[lbgɂrpm`ŃpbP[WOꂽAvP[V
  AȒPɌE肷邽߂̃f[^x[XT[o܂B𗘗p
  ƁAȉ̂悤ɍŐVpbP[W肷邱Ƃł܂DA
  ɂăCXg[ rpm pbP[W Vine Linux Őɓ
  邩ǂ͕ۏ؂ł܂̂ŁAӂĂgB܂Adb
  ŃC^[lbgɐڑĂꍇɂ́Af[^x[X̎擾 rpm
  pbP[W̓ɔɎԂ܂B



   ^f[^T[o̐ݒ

  1. j[o[́uvuݒvI܂D

  2. ݒʂ́uRpmfindv܂D

  3. u^f[^T[ov̂ƂɁCT[ow肵܂DÉ{^
     ƃT[oꗗ\܂̂ŁC1IŉD

  4. u_E[hfBNgv𐳂ݒ肵܂Dw肳ꂽfBN
     g쐬ĂȂ mkdirR}hō쐬ĉD

  5. uKpvƁCu`RDF^f[^T[o_E[h
     ?vƕ̂ŁCɕKvȏꍇ́u͂vI܂D

  6. ݒ肪uOKv{^܂D


   WEB猟

  1. uWeb猟vACRNbN܂D

  2. ͂߁C̈ꗗɂ͒񋟂ĂSẴpbP[W\Ă
     ܂DɃCXg[ĂpbP[Wɂ̓o[W\
     Ă܂D

  3. ԏ̃tB[hɃpbP[W͂CuvƊY
     pbP[W\܂D͂ɁCƑSẴpbP[
     W\܂D

  4. ԏ̃tB[hɃpbP[W͂CuV̌v
     ƁCɃCXg[pbP[WVpbP[WȂ
     ܂DT[o񂹂邽ߎԂ܂DCX
     g[ĂȂpbP[W͕\܂D

  5. pbP[WNbNƁC̃pbP[W̏𓾂邱Ƃł
     D


   WEBCXg[

  1. uWeb猟vACRNbN܂D

  2. ̈ꗗCXg[ĂȂpbP[WIƁCuC
     Xg[v{^Ɓu_E[hv{^LɂȂ܂D

  3. uCXg[vIƁCu_E[h܂?vƕ
     ŁCu͂vƃCXg[s܂D

  4. u_E[hvIƁCu_E[h܂?vƕ
     ŁCu͂vƃ_E[hs܂D



