  RPM/APTɂpbP[WǗ
  Masaki Kawamura, Daisuke SUZUKI
  2002N0318

  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{߂ł́CAPTRPMprpmpbP[W
  Ǘ@ȒPɐ܂D


  rpmpbP[W̑@͑傫킯āC

  1. apt-getR}hCUI

  2. rpmR}hCUI

  3. X WindowGUI (gnorpmȂ)p

     Ƃ@܂D


  {߂ł͏L̂ꂼapt-getR}hrpmR}hCgnorpmR}h
  prpmpbP[W̑@܂Dman rpmC܂rpm --help
  C rpmR}ĥ낢ȃIvVm邱Ƃł܂D



  1.2.  ӎ

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


  pbP[WCXg[CAbvf[gCACXg[Ƃ́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邱Ƃł܂Dlbg[NɂȂĂŁC
  apt-getR}hpΎIɃ_E[hƃpbP[W̍XVs
  Ƃł܂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.  APT - Advanced Packaging Tool


  2.1.  APTg߂̏

  APT̓pbP[W̎񂹁ACXg[AAbvO[hAȂǂs
  ֗ȃAvP[VłDRPMɑ΂ăpbP[WԂ̈ˑ֌W⋣
  ֌WĂ邽OS̃o[WAbvsƂɂpł
  D


  APTVine Linux 2.1.5琳̗pɂȂĂ܂̂ŁCȑÕo[
  Ẃ̕CVine PlusrpmR}hpăCXg[
  Kv܂DrpmR}h̎g͎߂䗗D


  APTCXg[ĂƁCt@C /etc/apt/sources.list 
  łD̃t@Cɂ apt line ƌĂ΂pbP[W񂹂ꏊ
  LqĂ܂Du#vŎn܂Ăs̓RgɂȂĂ܂DW
  ł́CAbvf[gpbP[Ŵ݂vinelinux.org_E[h
  悤ɂȂĂ܂D


       lbg[N_E[hꍇ

  lbg[NɐڑĂꍇ́Albg[ÑT[o_E
  [hāCCXg[/AbvO[h邱Ƃł܂DA_C
  AAbvȂǂ̒ᑬȃlbg[NOS̃o[WAbvsƁC
  ɎԂ܂̂ŒӂĂD


  t@C /etc/apt/sources.list̕Wݒł́Cvinelinux.orgAbv
  f[gpbP[Ŵ݂_E[h悤ɂȂĂ܂DCʂ̃T
  Cg_E[hꍇ́C̃t@CCĂDzz
  Ă sources.list ł͗lX apt line ̗ႪĂ܂̂ŁAK
  vȌ̃RgOƂŁÃpbP[W apt ̑ΏۂɊ܂߂邱
  Ƃł܂B


  Ƃ Vine Linux 2.5  VinePlus 2.5  apt line Ɋ܂߂ɂ͈ȉ
  悤ɂ̃RgO܂(#Ă)B


  #rpm ftp://ftp.jaist.ac.jp/os/linux/Vine/apt 2.5/$(ARCH) main plus plus-noarch
  #rpm-src ftp://ftp.jaist.ac.jp/os/linux/Vine/apt 2.5/$(ARCH) main plus



       CD-ROM痘pꍇ


  Wł̓lbg[NɃANZX܂DCD-ROM肵Ăꍇ́C
  t@C/etc/apt/sources.listC܂DCD-ROM /mnt/cdromɃ}E
  gĂꍇ́C̃t@Cɂ


       #rpm file:/mnt/cdrom/ Vine main



  ̃RgO܂D܂Clbg[NɃANZXȂ悤ɁC


       rpm http://vinelinux.org/apt 2.5/$(ARCH) updates
       rpm-src http://vinelinux.org/apt 2.5/$(ARCH) updates



  ȂǂhttpftpANZX̍sRgɂ܂(擪#Ă
  )D



  2.2.  pbP[W̍XV

  ܂CCXg[ĂpbP[WƐVpbP[W̏̃f
  [^x[XXV܂Bapt-getR}hpāCapt line ̃pbP[
  W擾 APT p̃f[^x[X\z܂B̒iKł͂܂pb
  P[W̍XV͍s܂Dsources.list ̕ύXꍇAO
  apt-get 琔Ԉȏソꍇ̓pbP[W񂪍XVĂ܂
  ŁAȂ炸XV̑ĂB


  Abvf[gpbP[W vinelinux.org _E[hꍇCȉ
  ̂悤ɕ\܂D


       # apt-get update
       擾:1 http://vinelinux.org 2.5/i386/base/pkglist.updates [14B]
       擾:2 http://vinelinux.org 2.5/i386 release.updates
        http://vinelinux.org 2.5/$(ARCH)/base/mirrors
       擾: 14B  0s (80B/b)
       t@CˑĂ܂... 
       pbP[WXgǂ݂ł܂... 
       ˑc[쐬Ă܂... 
       W: http://vinelinux.org/apt/ ͔F؂ȗ܂B



  ܂CCD-ROM𗘗pꍇCȉ̂悤ɕ\܂D


       # apt-get update
        file: Vine/base/mirrors
       t@CˑĂ܂... 
       pbP[WXgǂ݂ł܂... 
       ˑc[쐬Ă܂... 
       W: file:/mnt/cdrom/ ͔F؂ȗ܂B



  2.3.  apt-getR}hɂpbP[W̃AbvO[h

  ɃCXg[ĂpbP[W̃Abvf[gsȂɂ apt-get
  upgradeōs܂D̏ꍇ́CpbP[Ŵ̂Ɠւꍇ
  Aƌꍇɂ͕ۗ܂̂ŁASȃAbvO[h
  Ƃ͂ł܂D


       # apt-get upgrade
       pbP[WXgǂ݂ł܂... 
       ˑc[쐬Ă܂... 
       ȉ̃pbP[WAbvO[h܂:
         emacs emacsen-common
       2 ̃AbvO[hpbP[W, 0 ̐VKpbP[W, 0 ̍폜/v[XpbP[W, 0 ۗ̕pbP[W܂B
       擾pbP[W: 20.4MB ̃A[JCu擾܂BCXg[ 564kB gp܂B
       s܂? [Y/n]



  IvV-s邢--no-actapt-geťɎw肷ƁCۂɂ̓Abv
  O[h͍sȂ܂Bʏ́A܂̃IvVw肵āCǂ
  pbP[WAbvO[h邩mFĂsƗǂł傤D


  pbP[WւꍇȂǂ̈ˑ֌W̉Kvȏꍇ́C
  dist-upgradep܂DOSŜ̃o[WAbvsꍇ͂g
  p܂D


       # apt-get dist-upgrade



  2.4.  apt-getR}hɂpbP[W̃CXg[

  ̃pbP[WCXg[AbvO[hꍇ́C apt-get
  installp܂D


       # apt-get install (pbP[W)



  pbP[Wɂ͕̃pbP[W󔒂ŋ؂Ďw肷邱Ƃł
  DpbP[WɈˑ֌Wꍇ́AIɉKvƂȂpbP
  [WCXg[AbvO[h܂BႦ΁CpbP[Wxemacs
  ꍇ́Cȉ̂悤ɂȂ܂D



  # apt-get install xemacs
  pbP[WXgǂ݂ł܂... 
  ˑc[쐬Ă܂... 
  ȉ̒ǉpbP[WCXg[܂:
    xemacs-sumo
  ȉ̃pbP[WVɃCXg[܂:
    xemacs xemacs-sumo
  0 ̃AbvO[hpbP[W, 2 ̐VKpbP[W, 0 ̍폜/v[XpbP[W, 32 ۗ̕pbP[W܂B
  擾pbP[W: 0B/21.0MB ̃A[JCu擾܂BCXg[ 61.0MB gp܂B
  s܂? [Y/n]y
  RPM R}hsĂ܂ (-U)...
  xemacs-sumo                 ##################################################
  xemacs                      ##################################################
  ..㗪..



  2.5.  apt-getR}hɂpbP[W̍폜

  ̃pbP[WCXg[ꍇ́Cremovep܂D


       # apt-get remove (pbP[W)



  pbP[Wɂ͕̃pbP[W󔒂ŋ؂Ďw肷邱Ƃł
  D


  2.6.  apt-cacheR}hɂpbP[W̕\

  pbP[W̏m肽ꍇ́Capt-cacheR}hp܂D
  CgencachesŏWĂ܂D


       # apt-cache gencaches



  ʂ̃pbP[Wm肽ꍇ́Capt-cache show (pbP[W) 
  p܂Dapt g̏ꍇCȉ̂悤ɕ\܂D



  $ apt-cache show apt
  pbP[W:   apt
  ZNV:     System Environment/Base
  CXg[TCY:     2228
  ei:       Daisuke SUZUKI <daisuke@linux.or.jp>
  o[W:     0.3.19.cnc.55-3vl7
  Depends:        rpm (>= 3.0.5), gnupg, ld-linux.so.2, libapt-pkg.so.3.1, libbz2.so.1, libc.so.6, libdb.so.2, libm.so.6, libpopt.so.0, librpm.so.0, libstdc++-libc6.2-2.so.3, libz.so.1, libc.so.6(GLIBC_2.0), libc.so.6(GLIBC_2.1)
  : libapt-pkg.so.3.1
  A[LeN`: i386
  t@CTCY: 135271872
  MD5sum: 9611abf4494fd0245d7dd2b73e4ea9b0
  t@C: apt-0.3.19.cnc.55-3vl7.i386.rpm
  : Debian's Advanced Packaging Tool with RPM support
   A port of Debian's apt tools for RPM based distributions,
   or at least for Conectiva. It provides the apt-get utility that
   enables a simpler, safer way to install and upgrade packages.
   APT features complete installation ordering, multiple source
   capability and several other unique features.



  ܂CshowpkgpƁCpbP[Ẅˑ֌WȂǂ\܂D


       $ apt-cache showpkg apt
       pbP[W: apt
       o[W: 0.3.19.cnc.55-3vl7(/var/state/apt/lists/_home_Vine_apt_VineSeed_i386_base_pkglist.main)(/var/lib/rpm/packages.rpm),
       tˑ:
         tiny-buildfarm,apt
         synaptic,apt
         apt-devel,apt
       ˑ:
       0.3.19.cnc.55-3vl7 - rpm (2 3.0.5) gnupg (0 (null)) /bin/sh (0 (null)) ld-linux.so.2 (0 (null)) libapt-pkg.so.3.1 (0 (null)) libbz2.so.1 (0 (null)) libc.so.6 (0 (null)) libdb.so.2 (0 (null)) libm.so.6 (0 (null)) libpopt.so.0 (0 (null)) librpm.so.0 (0 (null)) libstdc++-libc6.2-2.so.3 (0 (null)) libz.so.1 (0 (null)) /bin/sh (0 (null)) libc.so.6(GLIBC_2.0) (0 (null)) libc.so.6(GLIBC_2.1) (0 (null))
       :
       0.3.19.cnc.55-3vl7 - libapt-pkg.so.3.1
       t:



  2.7.  apt-cacheR}hɂpbP[W̌

  L[[hɃpbP[W邱Ƃł܂DႦ΁Cuofficev
  Ƃ܂ރpbP[WĂ݂܂D


       $ apt-cache search office
       koffice - A set of office applications for KDE.
       abiword - Multiplattform word processor
       koffice-devel - Development files for KOffice
       imap - Server daemons for IMAP and POP network mail protocols.



  ̂悤kofficeabiwordȂ4̃pbP[W֌WĂ邱Ƃ킩
  ܂Dɏڍׂm肽ꍇ́C--fullIvVtĎs
  BɂЂpbP[WꂼɂshowƓ悤ɏo͂
  ܂B



  3.  RPM


  3.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.1ƂCusometoolƂ
  RPMpbP[WKvƂt@Cɂ炸Clibdepend.so.1
  sometoolVXeɃCXg[ĂȂvƂɂG[łD
  ̂Ƃɂ́C Culibdepend.so.1܂ރpbP[WApbP[
  WsometoolTĂăCXg[ĂBĈ悤Ȉˑ
  𖳎ăCXg[Ƃɂ́CIvV --nodepspăC
  Xg[܂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



  3.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



  3.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



  3.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.0-2vl3.i386.rpm̏t@Cꗗm肽Ƃɂ́CIv
  V -p (package)𕹗p܂D̏ꍇ́`i386.rpm܂ł܂ރt@C
  Ŝw肵܂D


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



  ɃIvV-v(verbose)g


       $ rpm -qilvp package-1.0-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



  3.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



     $ cd
     $ mkrpmdir .



     mkrpmdirR}hsƁCKvȃfBNg /.rpmmacros
     Ă܂D


     蓮ō쐬ɂ́Cȉ̂悤ɂ܂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



