  Building and Installing Software Packages for Linux
  Mendel Cooper <mailto:thegrendel@theriver.com> ---
  http://personal.riverusers.com/~thegrendel/
  <http://personal.riverusers.com/~thegrendel/>
  v1.91, 27 July 1999
  c i  <mailto:tsukasa_i@bigfoot.com>  JF Project
  <JF@linux.or.jp>
  v1.91j, 18 January 2000

  ̕ Linux ŁuʓIv UNIX ̃\tgEFA\zECX
  g[邽߂̕IȃKChłBɁA "rpm"  "deb" ƂR
  pCς݃oCipbP[WɂĂ炩Ă܂B
  ______________________________________________________________________

  ڎ

  1. ͂߂
  2. t@C̓WJ
  3. Make ̎gp
  4. RpCσoCipbP[W
     4.1 RPM ̈Ƃ
     4.2 RPM ŋN̗

  5. Termcap  Terminfo ̖
  6. a.out `̃oCǐ݊
     6.1 

  7. guV[eBO
     7.1 NG[
     7.2 ̖̑
     7.3 PƍœK
     7.4 Ȃ̓

  8. Ō̎dグ
  9. ŏ̗: Xscrabble
  10. 2 Ԗڂ̗: Xloadimage
  11. 3 Ԗڂ̗: Fortune
  12. 4 Ԗڂ̗: Hearts
  13. 5 Ԗڂ̗: XmDipmon
  14. \[XA[JCu̓
  15. Ō
  16. Ql
  17. NWbg
  18. {ɂ

  ______________________________________________________________________

  1.  ͂߂

  e UNIX n OS  Linux p̃\tgEFApbP[W̑̓\[Xt@
  CkA[JCuƂĔzzĂ܂B\tgEFÃpb
  P[Wꂼ̃}VɁu\zvĎs邱Ƃł̂ŁA\t
  gEFA̍҂͂̃o[WԂȂƂł܂B
  Ƃ̃\tgEFA̔zzpbP[WFXȌ`ō\zAŏIIɂ
  Intel ̃}V DEC Alpha, RISC [NXe[VA邢̓Ct
  [@ł삷悤ɂȂ܂BcOȂ炱̂Ƃ́AۂɃ\t
  gEFAu\zvăCXg[邱ƂGh[U̎dɂȂ
  ƂłBGh[UƂ͎́uVXeǗҁvA܂L[
  {[hɌčĂ\\Ȃ̂ƂłBACoĂ
  B菇͌߂قǂ킯̂킩Ȃ̂ł_IȂ̂ł
  B̃KChł͂̂Ƃ킩Ă炢܂B

  2.  t@C̓WJ

  Kvȃ\tgEFÃpbP[ẂA_E[hȂǂĊɓ肵
  ̂Ƃ܂BƂoĂ̂́Atar ŃA[JCu gzip
  ňkĂ .tar.gz ܂ .tgz ̌`ł(悭 "tarball" ƌ
  ܂)B܂́ÃA[JCut@CƃfBNgɃRs[
  BɁAtar ̓WJ gunzip s܂Bs߂̃R}h
  tar xzvf [t@C]łB܂łȂA[t@C] Ƃ̓A[JCu
  t@ĈƂłBʂ́AWJsƐVɃfBNgāA
  ̃fBNg̒ɓKȃt@CWJ܂B: pbP[
  W̃t@C .Z ƂgqĂAL̕@łS
  x܂񂪁Auncompress [t@C] ƂŁA tar xvf [t@C
  ] ƂĂWJł܂BWJɂĂǂȃt@C邩
  ́Atar tzvf [t@C] őOĒׂ܂B̃R}h͎ۂ
  A[JCuWJ邱ƂȂɓĂt@C̃Xg\s
  ܂B

  "tarball" WJL̕@́Aȉ̗Ɠł:

  o  gzip -cd filename | tar xvf -

  o  gunzip -c filename | tar xvf -

     ('-' tƁAtar R}h͕W͂͂s܂B)

  bzip2(.bz2)ƂVk`ňkꂽ\[Xt@C bzip2 -cd
  [t@C] | tar xvf - ƂΓWJł܂B邢́Atarp  bzip2
  ̂߂̃pb`ĂȂAP tar xyvf [t@C] Ƃ
  WJł܂ (ڂ Bzip2 HOWTO ({ŁF
  <http://www.linux.or.jp/JF/JFdocs/Bzip2/Bzip2.html/>, pŁF
  <ftp://metalab.unc.edu/pub/Linux/docs/HOWTO/mini/Bzip>) QƂĂ
  )BDebian GNU/Linux ł Hiroshi Takekawa ʂ̃pb` tar
  ɓĂĂÃo[W tar ł -I, --bzip2, --bunzip2 Iv
  Vg܂B

  [L̏̒ƍXVɂ R. Brock Lynn  Fabrizio Stefani ɐ[
  ӂ܂B]

  ꍇɂẮAA[JCut@C̓[Ũz[fBNgA
  ͕ʂ̓̃fBNg(/, /usr/src, /opt )ɓWJȂ΂Ȃ
  B̓\tgEFApbP[W̐ݒŎw肳Ăł傤B
  A[JCut@CWJĂƂɃG[oȂÂƂ
  ܂BpbP[Wt̃hLgt@C ( README 
  Install t@C)΁ÃhLgǂ݁AKvɉĐݒ
  t@C Makefile ҏWĂB: vȂʂɂȂ
  Ƃ̂ŁAʂ Imakefile t@C͕ҏWȂł
  BقƂǂ̃\tgEFApbP[Wł́A̎菇͎ĂA
  make install Ǝs΃oCit@C̃VXëɎI
  ɒu܂B

  o  C^[lbg̃j[XO[v肾 shar t@CA܂
     VFA[JCu(SHell ARchive) `̃t@CɏoH킷
     Bshar `ɎgĂ̂́Ǎ`͐lԂǂ߂
     ŁAj[XO[ṽf[^ shar `œeꂽL𐮗
     AsK؂Ȃ̂rł邩łB̌` unshar [t@C
     ].shar R}hœWJł܂B̑̓_ł "tarball" Ɠ
     Ɉ܂B

  o  ꕔ̃\[XA[JCúADOS  Mac, ƂɂĂ Amiga ̕W
     Ȃk[eBeBŏĂ邱Ƃ܂Bɂ zip,
     arc, lha, arj, zoo, rar, and shk ܂BKA Sunsite
     <http://metalab.unc.edu> ̃TCgɂ Linux p̈k[eB
     eBuĂÂقƂǑSĂ܂B

  ƂāÃ\[Xt@C̕ύX_LĂ pb`t@C
  diff t@CgāAWJ\[Xt@CXVAoOC
  荞񂾂肷邱ƂKvȏꍇ܂Bꍇɂׂ
  ́AhLgt@C README t@Cɂ̂Ă܂BLarry Wall
  J͂ patch [eBeB̕ʂ̎g patch < [pb`
  t@C]łB

  āAł́A\z̒iKւƐi݂܂傤B

  3.  Make ̎gp

  Makefile ͍\z̒iKŌƂȂt@CłBMakefile ̍łPȎg
  ́AuoCiv܂pbP[W̎s̃RpC\zsX
  NvgƂĂ̂̂łB Makefile g΁A\tgEFApbP[W
  XVۂɑS̃t@CăRpCȂōς܂邱
  ł̂łA̎g͂ł͊֌WȂ̂ł܂ʂ̘bɂȂ
  B

  ̃^C~O Makefile  cc  gcc s܂Bmɂ́A
  vvZbTAC ( C++) ̃RpCAJɎs܂B

  ʁAmake sɂ make ƃ^Cv邾łB make s
  ƁAʂ̓pbP[WɕKvȑSĂ̎s\t@C\z܂B
  Amake ɂł邱Ƃ͂ꂾł͂܂BႦ΁At@CK
  ȃfBNgɃCXg[(make install)AÂIuWFNgt@
  Cł܂(make clean)Bmake -n sƁAmake Ăяo
  SĂ̖߂ۂ̏s킸ɕ\邱ƂɂA\z̃vZ
  X炩ߊmFł܂B

  ʓI Makefile ĝ͔ɒPȃ\tgłBƕGȃC
  Xg[Ƃł́AȂ̃}ṼCuCN[ht@CA
  \[Xɍ킹 Makefile ̐ݒKv܂B̂Ƃ̓CX
  g[ X11 ̃CuKvȂƂɂ悭N܂B X11 ł Imake
   xmkmf ̍ƂĂ܂B

  man y[ẄpɂƁAImakefile  Makefile ́uev[gv
  łB imake [eBeB Imakefile ɂăVXeɍ
  Makefile ܂BAقƂǂ̏ꍇ́Aimake 𒼐ڎĝł
  Ȃ xmkmf s邱ƂɂȂł傤B xmkmf  imake s邽
  ߂̃VFXNvgłAtgGhłBʂ̃CXg[̍
  ̋̓IȍƂɂẮA\tgEFAA[JCuɓĂ README 
  INSTALL ƂÕt@C`FbNĂB(\[Xt@C
  WJɁAC̃fBNg Imakefile łĂ΁Axmkmf
  g͂Ƃʏ؋ɂȂ܂B) imake  xmkmf ׂ̍
  ɂĂ man y[WǂłB

  xmkmf  make  root Ŏs邱ƂKvȏꍇ邱ƂɒӂĂ
  BɁAmake install s /usr/bin  /usr/local/bin fB
  NgɃoCit@Cړꍇ͂łBroot 
  Ȃʂ̃[Uɂ̓VXefBNgւ̏݌Ȃ
  ŁAmake gpƂ炭݋ۂ̃G[(write access denied)
  oł傤B܂AoCit@C̎sK؂ȃ[Uɗ^
  Ă邩ǂmFĂB

  xmkmf  Imakefile gāAVXeɍ Makefile V
  Bʏ -a IvVt xmkmf sA make Makefiles, make
  includes, make depend Iɍs킹܂Bɂϐ̐ݒAR
  pC⃊Jɗ^郉Cüʒu̒`s܂Bꍇɂ
  ẮAImakefile ȂȂɓl̐ݒs߂ INSTALL X
  Nvg configure XNvgtĂ邱Ƃ܂B̍ۂ̒
  ӂłAconfigure sꍇɂ́AmɃJgfBNg
  configure XNvgs邽߂ ./configure ƂĎsׂ
  B̏ꍇACXg[̎菇 READMEt@CpbP[
  WɓĂ܂B

  xmkmf ≽炩̃CXg[XNvg쐬 Makefile ۂɌ
  ڂ_Ƃ悢ł傤B Makefile ͒ʏAȂ̃VXeɍ
  Đݒ肳Ă͂łAƂĎƂ Makefile u
  vAԈႢ𒼂Kvɔ邱Ƃ܂B

  łẴoCiK؂ȃVXefBNgɃCXg[ɂ́A
  ʂ root ɂȂ make install ܂Bŋ߂̃fBXgr[V
  ł́AVXeŜŎgoCiu߂̈ʓIȃfBNg
  /usr/bin, /usr/X11R6/bin, /usr/local/bin łBVpbP[W
  ̂ɓK؂ȃfBNg /usr/local/bin ŁAĂΐV
  ƌX Linux ɃCXg[Ă𕪂Ă܂B

  ƂƏp UNIX pΏۂɂĂpbP[ẂA/opt ̌Ȃ
  fBNgɃCXg[悤Ƃ邩܂BACX
  g[̃fBNg݂ĂȂ΁AG[ɂȂ܂B
  łȒPȕ@́Aroot ɂȂ /opt fBNgāA
  ɃpbP[WCXg[APATH ϐɂ̃fBNgǉ
  邱ƂłBʂ̂ƂẮA /usr/local/bin ɃV{bNN
  Ă܂܂B

  āAʓIȃCXg[̎菇͈ȉ̂悤ɂȂ܂:

  o  README t@C⑼̓KȃhLgǂ݂܂B

  o  xmkmf -a ܂ INSTALL  configure ƂXNvgs
     B

  o  Makefile `FbN܂B

  o  KvɉāAmake clean, make Makefiles, make includes, make
     depend s܂B

  o  make s܂B

  o  t@C̃p[~bVmF܂B

  o  KvȂ make install s܂B

  :

  o  ʂ́ApbP[W root [UŃRpCĂ͂܂B su
      root Kv̂́ARpCIoCiVXe
     fBNgɃCXg[ƂłB

  o  makeƂ̎gɊꂽACXg[悤ƂĂpbP[W
     Ɋ܂܂ĂA邢̓pbP[WIɐW Makefile
     ɎāAgcc ɓnœKIvVǉƂł傤B
     IvVł悭ĝ́A -O2, -fomit-frame-pointer,
     -funroll-loops, -mpentium(Pentium gĂꍇ)łBMakefile
     鎞́ApSƏ펯YȂ悤!

  o  make ŃoCíAoCiɑ΂ strip sƂ
     ł傤Bstrip R}h̓oCifobOp̃V{
     菜ăTCY܂BIɏȂ邱Ƃ悭
     BsƁARȂfobOɂ͎gȂȂ܂B

  o  Pack Distribution Project <http://sunsite.auc.dk/pack/> ́A
     ł̐Ƃ͕ʂ̃Av[`Ń\tgEFApbP[W̃A[JCu
     悤ɂ悤ƂĂ܂B̃Av[`́A΂΂̃RN
     VfBNgɃCXg[ꂽt@Cւ̃V{bN
     N Python XNvgQgĊǗƂ̂łB̃Av
     [`łA[JCu tarball łA /coll fBNg
      /pack fBNgɃCXg[܂B̃fBXg
     r[V̂ǂꂩƎĂ݂ɂApbNRNV
     (Pack-Collection)L̃TCg肷Kvł傤B

  4.  RpCσoCipbP[W

  4.1.  RPM ̈Ƃ

  ̎ŃpbP[W\[Xt@CăCXg[̂͂
  ȍƂƂāAlĈ rpm ` deb `̃pbP[W
  AV Stampede slp `̃pbP[W𗘗p Linux[U
  Bʏ rpm gƗ̈Iy[eBOVXeƓ
  ȒPpbP[WCXg[ł̂͊mł傤A
  CXg[RpCς݂̃oCipbP[Wɂ͊ԈႢȂ_
  ܂B

  ܂A\tgEFÃpbP[W͕ʁA"tarball" ̃\[Xt@Cŏ
  Ƀ[XARpCς݂̃oCipbP[W͂萔AT
  ԁAꍇɂĂ͐xă[X_ɒӂĂBŐV
   rpm pbP[WłAŐV "tarball" }Ci[o[W 1 
   2 xĂ̂ʂłBłAɁuŐ[ṽ\tgEFA
  ǂ̂ł΁A rpm  deb ô҂͓̂ł͂
  ł傤B܂lĈȂpbP[WɂẮArpm ȂƂ
  邩܂B

  2 ԖڂɁA"tarball" pbP[W̕芮SłAIvVA
  JX^}CY肢肷]n܂BoCi rpm ł
  ́AS[Xł̈ꕔ̋@\Ă邱Ƃ܂B\[X rpm
  ɂ͊Sȃ\[XR[hĂ̂ŁAΉ "tarball" Ɠ
  BāArpm --recompile packagename.rpm  rpm --rebuild
  packagename.rpm ̂ǂ炩̃IvVgč\zƃCXg[s
  Kvł傤B

  2 ԖڂɁARpCς݂̃pbP[Ẅꕔɂ͐CXg[ł
  ̂܂B邢̓CXg[ƂĂANbVăRA
  f܂B̓VXeɓĂ郉Cũo[W
  ̈ႢɈˑ邩ȂArpm pbP[W̗pӂ܂łĂ
  ̂܂񂵁APɃpbP[WĂ̂܂B
  ̏ꍇɂArpm  deb CXg[鎞ɂ́ApbP[W
  l̋ZpM邵܂B

  ŌɁA\[XR[hĂ΂A׋鎞̖ɗ
  B\[XR[h̓oCi쐬X̃A[JCuŎA
  ͕ʂ̃\[X rpm ̌`ŎĂƕ₷ł傤B

  rpm pbP[W̃CXg[́AKoJȂ킯ł͂܂B
  Aˑ֌Wŋ΁Arpm ̃CXg[͎sł傤Bl
  ɁÃ݂VXeœ삵Ă郉Cuƃo[WႤCu
   rpm vĂȂ΁AƂȂCu̖OŊ
  CuɃV{bNN𒣂ĂCXg[͎s܂B
  ֗łɂ炸A rpm ł̃CXg[ "tarball" ̃CX
  g[ƓRŎsĂ܂܂B

  ݂ɕKvȃp[~bV𓾂邽߂ɂ́Arpm  deb pbP[W
  root ɂȂăCXg[Kv܂A͏dȃZL
  eBz[̉\炵܂BƂ̂AƃVXẽoC
  i⃉Cu󂵂Ă܂ȂAVXeɑ呹Q
  gC̖ؔnCXg[Ă܂Ƃ邩܂B
  āAuMł鏊v rpm  deb ̃pbP[W肷Ƃ
  ͏dvȂƂłBɂACXg[̑Oɂ rpm --checksig [
  pbP[W].rpm sAu(MD5 `FbNTɑ΂)̊mFv
  pbP[Wɑ΂čsׂłBlɋ߂̂́A rpm -K
  --nopgp [pbP[W].rpm ̎słB deb pbP[WłɑΉ
  R}h dpkg -I | --info [pbP[W].deb  dpkg -e | --control
  [pbP[W].deb łB

  o  rpm --checksig gnucash-1.1.23-4.i386.rpm

  gnucash-1.1.23-4.i386.rpm: size md5 OK

  o  rpm -K --nopgp gnucash-1.1.23-4.i386.rpm

  gnucash-1.1.23-4.i386.rpm: size md5 OK

  {ɍׂƂCɂȂl̂߂(āAꍇ͂悭Ύ
  aƌ܂)ApbP[W̌X̗vfWJă`FbN邽߂
  unrpm  rpmunpack Ƃ[eBeB܂B Sunsite 
  [eBeB/pbP[WpfBNg ɂ܂B

  Klee Diene <mailto:klee@debian.org> ́ACXg[ꂽ .deb t@C
  ςĂȂƂ MD5 `FbNTŒׂ邽߂̎I
  dpkgcert pbP[W܂B̃pbP[W Debian  ftp A[J
  Cu <ftp://ftp.debian.org/pub/debian/project/experimental>
  ܂B݂̃pbP[Wƃo[W dpkgcert_0.2-4.1_all.deb 
  B Jim Pick Software <http://dpkgcert.jimpick.com> ̃TCg
  ́ADebian ̒ʏ̃CXg[ΏۂƂȂĂpbP[Wɑ΂
  dpkgcert ؖ񋟂邽߂̎IȃT[of[^x[X
  ܂B

  łPȌ`ł́Arpm -i [t@C]  dpkg --install [t@C]
  R}hŃ\tgEFA̓WJƃCXg[Iɍs܂B
  ӂĂB̃R}hނ݂ɎgƁAVXes
  Ȃ鋰ꂪ܂!

  ŒӂłAĽx (Q͈̔͂Ȃ̂) Slackware
  ̃CXg[[eBeBł pkgtool ɂĂ͂܂܂B\tg
  EFÁuIȁvCXg[͂ǂȂ̂łĂӂKvłB

  martian
  <http://www.people.cornell.edu/pages/rc42/program/martian.html> vO
   alien <http://kitenet.net/programs/alien/> vOg
  ƁArpm, deb, Stampede  slp, tar.gz `̊et@C݂ɕϊł
  ܂BɂÃpbP[Wǂ Linux fBXgr[V
  łg悤ɂȂ܂B

  rpm R}h dpkg R}h man y[W͂ǂłB
  AڂɂĂ RPM HOWTO  TFUG  Quick Guide to Red Hat's
  Package Manager <http://www.tfug.org/helpdesk/linux/rpm.html>A The
  Debian Package Management Tools <http://www.debian.org/doc/FAQ/debian-
  faq-7.html> ĂB

  4.2.  RPM ŋN̗

  Jan Hubicka <mailto:hubicka@paru.cas.cz> ́A xaos ƂƂĂǂ
  ̃tN^\pbP[WĂ܂Bނ̃z[y[W
  <http://www.paru.cas.cz/~hubicka/XaoS> ɂ́A.tar.gz ` rpm `
  pbP[W܂B͕֗ƂāA"tarball" ł͂Ȃ rpm
  ł܂傤B

  cOȂƂɁAxaos  rpm pbP[W̓CXg[ł܂B
  o[W 2 ܂B

  rpm -i --test XaoS-3.0-1.i386.rpm

       error: failed dependencies:
               libslang.so.0 is needed by XaoS-3.0-1
               libpng.so.0 is needed by XaoS-3.0-1
               libaa.so.1 is needed by XaoS-3.0-1

  rpm -i --test xaos-3.0-8.i386.rpm

       error: failed dependencies:
               libaa.so.1 is needed by xaos-3.0-8

  ł̂́Alibslang.so.0, libpng.so.0, libaa.so.1 ͑SAe
  Xgs}V /usr/lib ɂ邱ƂłBCũ[Xԍ
  ͓łĂA xaos ͂ƃo[WႤCugĂ
  ɈႢ܂B

  eXgƂāA--nodeps IvVg xaos-3.0-8.i386.rpm I
  ɃCXg[Ă݂܂傤BƂ낪A xaos sĂNb
  VĂ܂܂B

       xaos: error in loading shared libraries: xaos: undefined symbol: __fabsl

  łȂŐ^ǋĂ݂܂傤Bxaos ̃oCiɑ΂
  ldd săCüˑ֌W𒲂ׂƁAKvȑSĂ̋LCu
  \܂B/usr/lib/libaa.so.1 Cuɑ΂ nm s
  V{QƂ\ƁA{ __fabsl ȂƂ܂B
  AȂQƂ̃Cûǂꂩ甲Ă\͂
  ܂cB̖A܂胉Cu̓ꊷɂ葫Ȃ̂oĂ
  邱ƂɂẮAΏ̕@͂܂B

  łv! "tarball"  XaoS-3.0.tar.gz  FTP TCg
  <ftp://ftp.ta.jcu.cz/pub/linux/hubicka/XaoS/3.0> 肵܂傤B
  z[y[Wł܂B\zĂ݂܂傤B./configure,
  make sAŌ(root ɂȂ) make install sΖȂ
  CXg[ł܂B

  ̓pbP[Wς݂̃oCiŋNA֗Ƃ肪ɗ
  悤Ȃ̗̂̂ЂƂłB

  5.  Termcap  Terminfo ̖

  man y[Wɂ́uterminfo ͉ʎw̃vOgA[Lq
  f[^x[XŁcv Ƃ܂Bterminfo ͒[ɃeLXg\邽
  ɎgV[PX(GXP[vR[h)̈ʓIȏW`Aȃh
  CogKvȂɂ܂܂Ȓ[n[hEFAɑΉł悤ɂ
  Bŋ߂̂قƂǂ Linux fBXgr[Vł́A terminfo C
  u /usr/share/terminfo ɂ܂B

  terminfo ͔rIÂ߂ termcap ɂقƂǂƂđAtermlib S
  ɉߋ̂̂ɂ܂B termcap KvƂpbP[W
  āAʂ̓vÕCXg[ۂɒ[CuɋCgK
  v͂܂B

  قƂǂ Linux ̃fBXgr[V͌ terminfo gpĂ
  ܂BÂȂ̃AvP[VƂ̌݊̂߂ɂ܂ɌÂ
  termcap cĂ܂(/etc/termcap Q)BꍇɂẮAtermcap
  NoCiyɎg߂ɃCXg[Kv݊
  ̂߂̓ʂȃpbP[W܂B悭P[XƂāA\[Xt@
  C #define termcap ƂsRgAEgKvꍇ
  ܂B̊mȏɂẮAg̃fBXgr[
  V̊֘AhLg𒲂ׂĂB

  6.  a.out `̃oCǐ݊

  ܂ɂȂƂȂ̂łA\[XR[hłȂA܂
  ܂ȗvŃ\[XR[h ELF oCiȂƂR a.out
  oCigKvɔ邱Ƃ܂B

  ƂN̂ŁAELF őgłVXeł a.out 
  CuSpӂĂ܂B /usr/i486-linuxaout/lib fB
  Ngɒu܂B a.out Cu̔ԍt̋K ELF ̏ꍇ̋K
  ƈႤ̂ŁAN˂Ȃ悤ȏՓ˂͂܂܂B
  āAa.out oCi͎sɐCu̂ł
  Aꂪɐ킯ł܂B

  J[lɂ a.out ̃T|[ggݍޕKv̂ŒӂĂ
  B͒ڑgݍł܂܂񂵁A[_uW[ɂĂ
  ܂܂BLɂɂ̓J[lč\zKv邩
  ܂BɁALinux fBXgr[VɂĂ͌݊ێ̂
  ߂̓ȃCuCXg[Kv܂BႦ΁ADebian
  ɂ a.out  X AvP[Vs邽߂ xcompat  ܂B

  6.1.  

  NO Jerry Smith ƂĂ֗ rolodex ƂvO
  B̃vO Motif Cu(: t[ŎɓȂ)
  gĂ܂AD^ȂƂ a.out ̃CuÓINĂo
  Cił܂BcOȂƂɁAlesstif Cugă\[X
  č\zɂ͑啝ɎKv܂BɎcOȂƂɁAELF
  VXeł a.out ̃oCî͎悤ȃG[bZ[Wo͂
  ӂł܂܂B

       xrolodex: can't load library '//lib/libX11.so.3'
       No such library

  ̂悤ȂƂ邽߂ɁA̎̃Cu
  /usr/i486-linuxaout/lib ɒuĂ̂łAxrolodex ͎sɃ
  Cüʒu邱Ƃł܂BPȉ@̓V{bN
  N /lib fBNgɍ邱ƂłB

  ln -s /usr/i486-linuxaout/lib/X11.so.3.1.0 libX11.so.3

  l̃N libXt.so.3  libc.so.4 CuɂčKv
  邱Ƃ킩܂B̍Ƃ͂ root ōsKv܂B
  ŒӂłAɓĂ郉Cu㏑Ao[Wԍ
  Փ˂΂ɋNȂ悤Ɋm߂ĂBKA肪N
  Ȃ悤ɂ邽߁AV ELF Cũo[Wԍ͌Â
  a.out Cu傫Ă܂B

  L 3 ̃N𒣂΁Axrolodex ͂܂܂B

  xrolodex pbP[W͌X Spectro <http://www.spectro.com/> ɓe
  Ă܂A͂Ă܂悤łB݂ Sunsite
  <http://metalab.unc.edu/pub/Linux/apps/reminder/xrolodex.tar.z> 
  tar.Z `œł܂(TCY 512K oCgł)B

  7.  guV[eBO

  xmkmf  make G[oɐIA ``̐''ɐił
  Buہvɂ͈ꔭł܂sƂ͂قƂǂ܂B
  ŁAȂ̒mb̂łB

  7.1.  NG[

  o  xmkmf sĂ̂ Link error: -lX11: No such file or
     directory ƂG[ make sꍇB Imakefile K
     ؂ɐݒ肳ĂȂƂƂ܂B Makefile ̍ŏ
     ňȉ̂悤ȍsmFĂ:

       LIB=            -L/usr/X11/lib
       INCLUDE=        -I/usr/X11/include/X11
       LIBS=           -lX11 -lc -lm

  -L IvV̓CuTꏊJɑ΂Ďw肵A-I IvV
  ̓CN[ht@CTꏊRpCɑ΂Ďw肵܂B
  ̏ꍇA X11̃Cu /usr/X11/lib fBNgɂA X11 
  CN[ht@C /usr/X11/include/X11 fBNgłȂ΂Ȃ
  ܂BAꂪȂ̃}ṼfBNg\ƈĂA
  Makefile ɓKȕύXĂAx make sĂB

  o  ̂悤ɌvZ̃CuŊ֐̎QƐ悪`ĂȂƂG
     [oꍇ:

                /tmp/cca011551.o(.text+0x11): undefined reference to `cos'

  ̖ɂ́AMakefile  LIB  LIBS  -lm āA
  IɌvZCuɃNĂ(O̗QƂĂ)B

  o  xmkmf sƂɂ́AL̃XNvgsĂ݂̂
     傤B

                make -DUseInstalled -I/usr/X386/lib/X11/config

  ́A@\ƂčƔ炾ɂ xmkmf Ɠ܂B

  o  HɂłAroot ɂȂ ldconfig sƖ肪邱
     Ƃ܂:

  # ldconfig sƁALCuւ̃V{bNN蒼
  ܂B͕KvłȂ܂B

  o  Makefiles ɂẮAȂ̃VXeɂ郉CuAʂł
     ȂGCAXŎgĂ邱Ƃ܂BႦ΁A\z
     libX11.so.6 KvȂ̂ɁA/usr/X11R6/lib ɂ͂̂悤ȃt@C⃊
     N݂ȂꍇłB libX11.so.6.1 ͂Ƃ܂B
     ꍇ̉@́A ln -s /usr/X11R6/lib/libX11.so.6.1
     /usr/X11R6/lib/libX11.so.6  root ɂȂĎs邱ƂłBN
     𒣂ɂ ldconfig Kv܂B

  o  ܂ɁA\[XR[h\ẑɌÂ X11R5 ̃CuKvȂ
     Ƃ܂BA/usr/X11R6/lib ̒ R5 ̃Cu (
      Linux CXg[ƂɃIvVƂăCXg[
     ǂ܂)ꍇɂ́A\tgEFA̍\zɕKvȃCu
     N𒣂邾ővłBR5 ̃Cu̖ÓA
     libX11.so.3.1.0, libXaw.so.3.1.0, libXt.so.3.1.0 łBʏ
     ́AlibX11.so.3 -> libX11.so.3.1.0 ƂNKvłB̃\
     tgEFAɂ͂ libX11.so -> libX11.so.3.1.0 ̂悤ȃN
     Kvł傤BAuȂvNɂ́Aroot ɂȂ
     R}h ln -s libX11.so.3.1.0 libX11.so g܂B

  o  pbP[WɂĂ͈܂͕̃CuXVKv
     ł傤BႦ΁AStarDivision Ђ StarOffice ƂItBXXC[
     g̃o[W 4.x ́Ao[W 5.4.4 ȏ libc KvȂƂ
     ]łBƐV StarOffice 5.0 łAV
     glibc 2.1 CũVXeɃCXg[Ɠ삵܂BK
     ȂƂɁAɐV StarOffice 5.1 ł́A͉
     Ă܂BÂo[W StarOffice gĂȂAroot 
     ȂāA̃CuK؂ȃfBNgɃRs[AÂ
     Cu폜AꂩV{bNNĐݒ肷Kv
     ł傤(̍ƂɊւڂɂẮAStarOffice miniHOWTO
     ̍ŐVłĂ)B

     : AsƃVXe삵ȂȂĂ܂̂ŁA̍
     Ƃ͏\ӂčsĂB

     ʏAŐṼCu Sunsite
     <ftp://metalab.unc.edu/pub/Linux/libs/> œł܂B

  7.2.  ̖̑

  o  Perl VFXNvgCXg[Ă̂ No such file or
     directory ƂG[bZ[WoꍇB̏ꍇ́Ãt@
     Cs\ǂp[~bVmFĂB܂AXN
     vg̍ŏ̍smFāAXNvgĂяoVFvO
     w肳Ă邩ǂm߂ĂBႦ΁AXNv
     ĝ͎悤Ɏn܂Ǝv܂:

       #!/usr/local/bin/perl

   Perl  /usr/local/bin ł͂Ȃ /usr/bin ɃCXg[Ă
  XNvg͓삵Ȃł傤B𓮍삳ɂ 2 ̕@
  ܂BXNvgt@C̍ŏ̍s #!/usr/bin/perl Ə
  A ln -s /usr/bin/perl /usr/local/bin/perl sāAK؂ȃfB
  NgփV{bNN𒣂ĂB

  o  X11 ̃\tgEFA̒ɂ́A\ẑ Motif ̃CuKv
     ̂܂Bʂ Linux fBXgr[Vɂ Motif ̃
     Cu͓Ă炸A݂ Motif gɂ͕ʓr $100`$200 ̂
     oȂ΂Ȃ܂(At[EFA Lesstif
     <http://www.lesstif.org/> ł̏ꍇ͓삵܂)BpbP[
     W\ẑ Motif KvȂ̂ Motif CuȂꍇ
     AÓIɃNꂽoCit@Cł邩܂B
     ÓIȃNƂ̓Cu[`oCig̒ɑgݍ񂾂
     ̂łB̌ʁAoCit@C͋ɂȂ܂ACu
     ĂȂVXełoCi𓮂Ƃł܂B

  pbP[W̍\zs߂ɃVXeɓĂȂCuKv
  ȏꍇɂ̓NG[N܂(undefined reference G[)BCu
  ͍ȏɒg閧ɂȂĂ邩܂񂵁Aʂ̗R
  ̂ȂƂ܂Bꍇɂ́AÓIɃN
  oCipbP[W̍҂肷邩A Linux ̃[UO[v
  肷̂ƂȒPȑΏłB

  o  configure sƂ MakefileA܂\z悤ƂĂ
     pbP[WɊ֌WȂ悤Ɍ Makefile ł邱Ƃ
     B͊Ԉ configureA܂pX̂ǂʂ̃fBNg
     ɂ configure sꂽƂƂłBȂƂɂȂȂ
     ɁAconfigure sƂ͕K ./configure ƂwŌĂяo
     ĂB

  o  قƂǂ Linux fBXgr[V́AÂ libc 5 Cu
      libc 6 / glibc 2 CuɈڍs܂BÂCuœ
     ĂRpCς݃oCíACuAbvO[hƓ
     ȂȂ邩܂B̖ɑΏɂ́AAvP[V
     \[XRpCȂAVCuɑΉRp
     Cς݃oCi肵ĂBVXe libc 6 ɃAbvO
     [h悤ƂĂĖɑȂ Eric Green  Glibc 2 HOWTO
     Ƃ悢ł傤B

  glibc ɂ̓o[WԂ̌݊̂Ȃ̂ŁA glibc 2.1 
  oCi glibc 2.0 ł͓Ȃ܂񂵁A̋tN
  邩܂B

  o  Makefile ̃RpCIvV -ansi IvVOȂ
     ȂȂƂX܂BsƁAgcc ̔ ANSI g@\
     g悤ɂȂÅg@\KvƂpbP[W\zł
     ɂȂ܂B(̓_ɂĎwEĂꂽ Sebastien Blondeel Ɋ
     ӂ܂B)

  o  vOɂĂ root œ삳邽߂ setuid root K
     v܂B̐ݒsɂ root ɂȂĂ chmod u+s [t@
     C] s܂B(vȌL҂͂炩 root ɂĂ
     Ȃ΂ȂȂ̂ŒӂĂB)邱ƂŁAt@C
     p[~bV setuid rbg܂Bsetuid root Ȃ΂
     ȂƂ́AvOf CD-ROM hCû悤ȃV
     Xẽn[hEFAɃANZXƂAƂLG~[^
     悤 SVGAlib(SVGA색Cu)R\[[hĂяo
     ɋN܂B root ȂvO삷邯ǈʃ[U
     access denied G[Nꍇɂ́A̖^܂傤B

     x: root  setuid vO̓VXẽZLeB̊댯
     𔺂܂Broot  setuid vO root œ삷
     ŁAvIȔQ^\܂Bsetuid rbg𗧂ĂO
     ́A\ł΃\[XR[hǂłāAvÔ
     m߂ĂB

  7.3.  PƍœK

  Makefile 𒲂ׂāAȂ̃VXeɍœKȃIvVݒ肳Ă
  ǂm߂Ƃł傤BႦ΁A-O2 IvV͍ōx
  œKsA-fomit-frame-pointer IvV͏oCi쐬
  ܂(AfobO͂łȂȂ܂)BĂ邩
  ȂꍇAǂȏꍇłꂤ܂\zł邱Ƃm߂Oɂ͂
  ̃IvVȂ悤ɂĂB

  7.4.  Ȃ̓

  ̌oɂƁAAvP[V 25% 炢́uȂĂv
  ܂\zł܂B50% ́AƂƂςȋJ܂ł
  Ⴂ͂܂uƂv\zł܂BƂƂ́A撣ĂCX
  g[łȂ悤ȃpbP[WȂ肠ƂƂłBł
   Sunsite  TSX-11 A[JCu ELF  a.out ̃oCi
  邩܂B Red Hat <http://redhat.com>  Debian
  <http://www.debian.org> ɂ́ALinux ł悭g\tgEFÃpb
  P[Wς݂̃oCiʂɃA[JCuĂ܂BƁA\t
  gEFA̍҂傤ǂȂ̃}VŎg悤ȃRpCς݂̃o
  CipӂĂ邩܂B

  RpCς݂̃oCi肵Ag̃VXeƂ̌݊mF
  Kv_ɒӂĂ:

  o  oCiȂ̃n[hEFA(Ⴆ Intel x86 n}V)œ삷
     B

  o  oCi͂g̃J[lƂ̌݊邩(܂ a.out `Ȃ
      ELF `Ȃ̂)B

  o  ŐṼCuKvƂ邩ǂB

  o  (rpm  deb)̂悤ȓK؂ȃ[eBeBKvǂB

  ȊǑł߂A comp.os.linux.x 
  comp.os.linux.development Ƃj[XO[vŏĂ炦邩
  ܂B

  [: {̃j[XO[vȂ fj.os.linuxAjlug.ml.users 
  ܂BÃj[XO[vœĂl͊F̋󂢂
  Ԃgă{eBAœĂĂ܂Bă[J[̃T|[g
  ł͂Ȃ̂ŁAȑԓxȂ悤ɂĂB܂A₷
  ɂ́A킩₷A̓IɎ₵܂傤B܂A肪
  AƂ̕񍐁A̗vYꂸɕ񍐂܂傤B]

  ł_ƂĂAȂƂőPsÂƂw
  ̂A͂ł̂ł͂Ȃł傤B

  8.  Ō̎dグ

  pbP[W̃hLgǂŁA(.bashrc  .cshrc )ϐ̐ݒ
  KvǂA邢 .Xdefaults  .Xresources ̃JX^}CYK
  vǂmFĂB

  AvP[ṼpbP[Wɂ̓ftHg̐ݒt@CĂ邱
  Ƃ܂BʁApbP[W̖O Xfoo ȂA Xfoo.ad ƂO
  ɂȂĂ܂Bݒt@C΁A Xfoo.ad }Vɍ킹
  JX^}CYĂA(mv g)O Xfoo ɕ
  A/usr/lib/X11/app-defaults fBNgɃCXg[ĂB
  CXg[ root ɂȂĂĂB̍ƂɎsƁA\t
  gEFA̋ȂAňA삳ȂȂ邱Ƃ
  B

  قƂǂ̃\tgEFAɂ́A`ς݂ man y[WtĂ܂B
  root ɂȂ Xfoo.man Ƃt@C /usr/man  /usr/local/man 
  /usr/X11R6/man ̓K؂ȃfBNg (man1 - man9)ɃRs[āAK؂
  OɕςĂBႦ Xfoo.man  /usr/man/man4 ɒuꍇA(mv
  Xfoo.man Xfoo.4 s) Xfoo.4 ƂOɕςĂBl[
  ĂBł́A[UR}h man1 ɁAQ[ man6 ɁA
  VXeǗ̃R}h man8 ɓ邱ƂɂȂĂ܂(ڂ man
  docs R}hsĂ)BA΁ÅK
  ȂĂ܂܂B

  pbP[WɂẮAK؂ȃVXefBNgɃoCit@CC
  Xg[ĂȂ̂܂B܂AMakefile  install Iv
  V̐ݒ肪Ȃ̂łB̂悤ȏꍇ́AoCi蓮œK؂ȃVX
  efBNg(/usr/bin, /usr/local/bin, /usr/X11R6/bin)ɃRs[
  CXg[ĂBƂroot ɂȂčs܂B Linux
  fBXgr[V̊{R}hłȂ悤ȃoCíA
  /usr/local/bin fBNgɓ̂D܂ƂoĂĂ
  B

  ̏ꍇAL̈ꕔ邢͑SĂ̎菇 make install  make
  install.man, make install_man ŎIɏ܂BȂĂ
  ̂ł΁AREADME  INSTALL ƂhLgt@CɖL
  ͂łB

  9.  ŏ̗: Xscrabble

   ScrabbleTM Ƀn}Ă̂ŁAMatt Chapman  Xscrabble ƂĂ
  ʔȃvOɎv܂B́A_E[hāAWJ
  AREADME t@CɏĂ菇ɉč\z܂B

            xmkmf
            make Makefiles
            make includes
            make

  񓮍삵܂łcB

       gcc -o xscrab -O2 -O -L/usr/X11R6/lib
       init.o xinit.o misc.o moves.o cmove.o main.o xutils.o mess.o popup.o
       widgets.o display.o user.o CircPerc.o
       -lXaw -lXmu -lXExExt -lXext -lX11 -lXt -lSM -lICE -lXExExt -lXext -lX11
       -lXpm -L../Xc -lXc

       BarGraf.o(.text+0xe7): undefined reference to `XtAddConverter'
       BarGraf.o(.text+0x29a): undefined reference to `XSetClipMask'
       BarGraf.o(.text+0x2ff): undefined reference to `XSetClipRectangles'
       BarGraf.o(.text+0x375): undefined reference to `XDrawString'
       BarGraf.o(.text+0x3e7): undefined reference to `XDrawLine'
       etc.
       etc.
       etc...

  ́A̖ɂăj[XO[v comp.os.linux.x Őq˂Ă݂
  BƁAǂN̒iK Xt, Xaw, Xmu, X11 ̃Cu
  ĂȂ悤Ɛe؂ȕwEĂ܂B[ށcB

  Makefile  2 ܂A src fBNgɂ Makefile
  ɒڂ܂BMakefile ̒ŁuLOCAL_LIBS = $(XAWLIB) $(XMULIB)
  $(XTOOLLIB) $(XLIB)v̂悤 LOCAL_LIBS `Ă镔܂
  B́A̓Jꑹ˂Ă郉CuQƂĂ
  B

   LOCAL_LIBS QƂĂ镔TƁA Makefile  495 sڂ
  ̂悤ɂȂĂ܂:

             $(CCLINK) -o $@ $(LDOPTIONS) $(OBJS) $(LOCAL_LIBS) $(LDLIBS) $(EXTRA_LOAD_FLAGS)

   LDLIBS Ƃ͉Ȃ̂ł傤?

             LDLIBS = $(LDPOSTLIB) $(THREADS_LIBS) $(SYS_LIBRARIES)
       $(EXTRA_LIBRARIES)

  SYS_LIBRARIES ͈ȉ̒ʂł:

        SYS_LIBRARIES = -lXpm -L../Xc -lXc

  ꂾ! ȂCu܂B

  ƁAJ LOCAL_LIBS O LDLIBS ɍsKv
  ̂܂cBŁAŏɎ̂ Makefile  495sڂ
  $(LOCAL_LIBS)  $(LDLIBS) ꊷ邱ƂłB΃Cu
  ǂ݂ɍsĂł傤:

               $(CCLINK) -o $@ $(LDOPTIONS) $(OBJS) $(LDLIBS) $(LOCAL_LIBS)
       $(EXTRA_LOAD_FLAGS)                          ^^^^^^^^^^^^^^^^^^^^^^^

  L̕ύXĂĂ make sƁ\\܂Ă\\
  ͂܂܂BA Xscrabble ɂ͂܂
  肷KvAfBNg̖OςA\[Xt@C
  Ő錾Ă镶RgAEgƂȂ΂Ȃ
  łBłȍ~̍Ƃ́AɐԂ̊yԂ^Ă
  B

  [݁AVo[W Xscrabble  rpm `œł܂B܂A
  Vo[W͖ȂCXg[ł܂B]

  ҂̃[ł̘A Matt Chapman
  <mailto:matt@belgarath.demon.co.uk> łAXscrabble ͔ނ̃z[y[
  W <http://www.belgarath.demon.co.uk/programs/index.html> _E
  [hł܂B

                Scrabble  the Milton Bradley Co., Inc ̓o^WłB

  10.  2 Ԗڂ̗: Xloadimage

  ̗̖͊ƊȒPłBxloadimage ͎̃OtBbNc[Wɉ
  ƕ֗ȃvÔ悤łB Mui  Quercia f炵
  {ł ``X User Tools'' ̕t CD-ROM ̃\[XfBNg
  xloadi41.gz  Rs[܂B tar xzvf Ńt@CWJ
  BAmake ƃ^`̈ȃG[oďIĂ܂
  B

       gcc -c -O -fstrength-reduce -finline-functions -fforce-mem
       -fforce-addr -DSYSV  -I/usr/X11R6/include
       -DSYSPATHFILE=\"/usr/lib/X11/Xloadimage\" mcidas.c

       In file included from /usr/include/stdlib.h:32,
                        from image.h:23,
                        from xloadimage.h:15,
                        from mcidas.c:7:
       /usr/lib/gcc-lib/i486-linux/2.6.3/include/stddef.h:215:
       conflicting types for `wchar_t'
       /usr/X11R6/include/X11/Xlib.h:74: previous declaration of
       `wchar_t'
       make[1]: *** [mcidas.o] Error 1
       make[1]: Leaving directory
       `/home/thegrendel/tst/xloadimage.4.1'
       make: *** [default] Error 2

  ̃G[bZ[Wɂ͏dvȎ肪肪܂܂Ă܂B

  image.h  23 sڂƁcB

              #include <stdlib.h>

  ȂقǁAxloadimage ̃\[Xt@ĈǂŁA wchar_t W̃C
  N[ht@Cł stdlib.h ̒`Ē`Ă܂B܂
  image.h  23 sڂRgAEgĂ݂܂傤BlɁAԂ
  stdlib.h CN[hKv͂Ȃ낤ƌAۂ̂Ƃ
  łB

  ̎_ŁAvIȃG[N炸ɍ\zł܂BčłA
  xloadimage vO͂ƓĂ܂B

  11.  3 Ԗڂ̗: Fortune

  ̗ C ̃vO~O̒mxKvƂ܂BUNIX 
  Linux ̃\tgEFÂقƂǂ C ŏĂ̂ŁA\tgEF
  ÃCXg[܂߂ɂ낤ƂȂ瑽ł C oĂ
  ΂Ɩɗł傤B

  L fortune vO̓[Â邱Ƃ킴A "fortune
  cookie"  Linux u[g邽тɕ\܂Bs^ȂƂ(
  unfortune ɂV̂)AJ[l̃o[W 2.0.30 
  RedHat fBXgr[Vł͒vIȃG[܂B

  ~/fortune# make all

  gcc -O2 -Wall -fomit-frame-pointer -pipe   -c fortune.c -o
  fortune.o
  fortune.c: In function `add_dir':
  fortune.c:551: structure has no member named `d_namlen'
  fortune.c:553: structure has no member named `d_namlen'
  make[1]: *** [fortune.o] Error 1
  make[1]: Leaving directory `/home/thegrendel/for/fortune/fortune'
  make: *** [fortune-bin] Error 2

  fortune.c Ă݂ƁAG[̋NĂ镔͈ȉ̏ꏊłB

          if (dirent->d_namlen == 0)
                   continue;
               name = copy(dirent->d_name, dirent->d_namlen);

  dirent \̂tKv܂Afortune.c ł͒`Ă
  񂵁Agrep dirent ŒTĂ݂Ẵ\[Xt@CŐ錾Ă
  ł܂B fortune.c ̍ŏɎ̂悤ȍs܂B

       #include <dirent.h>

  ̓VXeCũCN[ht@Ĉ悤łBāA
  KRI dirent.h Tɍsꏊ /usr/include ƂȂ܂B
  ƁA/usr/include  dirent.h ͂̂łAdirent.h ɂ dirent \
  ̂̐錾͂܂BA dirent.h t@CQƂ悤
  ȂĂ܂B

       #include <linux/dirent.h>

   /usr/include/linux/dirent.h ܂ł΁ATĂ\̂̐錾
  ܂B

       struct dirent {
               long            d_ino;
               __kernel_off_t  d_off;
               unsigned short  d_reclen;
               char            d_name[256]; /* We must not include
       limits.h! */
       };

  ςA\̂̐錾 d_namelen Ă܂łBA
  ɑȁuv 2 ܂B̂Ƃ炵
   d_reclen łBƂ̂A̍\̃o͉̒\Ă
  悤łAshort ^̐łB̕ d_ino łA
  ͖Oƌ^l inode ԍ̂悤łBƁAł
  ufBNgGgv\̂ĂāAevf̓t@C̑A
  t@CAinode ԍA(ubNPʂł)\Ă܂B̎
  Ɠ˂킹ƐmɂȂł傤B

  fortune.c ҏWāA551 sڂ 553 sڂɂ d_namelen ւ̎QƂ
  d_reclen ɏĂ݂܂傤Bꂩ make all x
  傤B܂BG[Ȃɍ\zł܂B fortune 
  gāuƂǂǂvł܂ˁB

  12.  4 Ԗڂ̗: Hearts

  ƂĂÂ Hearts ƂQ[܂B 1980 N̂ǂ
  Bob Ankeney  UNIX pɍ쐬A1992 N Mike Yang A݂
  Jonathan Badger <mailto:badger@phylo.life.uiuc.edu> eiX
  ܂B̑OǵAOregon Software  Don Backus ƌÂ
  Pascal ̃vOłA Jeff Hemmerling XVĂ܂B
  Ƃ͕̐lԂŗVԂƂz肵Q[łARs[^𑊎
  ĈlŗVԂƂł܂BOtBbNX͂łÃQ[
  ɂ͋Â@\͂܂񂵁ARs[^Ƒΐ킵Ă܂苭
  ܂Bɂ炸A݂ɂĂ UNIX }V Linux }V
  ŐcĂQ[͂ Hearts ̂悤łB

  Â߁A܂jIȌo܂̂߁ÃpbP[W Linux VXe
  \ẑ͓ɍłB̍Ƃł͒ĕGȃpYKv
  ܂BEςƌf͂̌PɂȂł傤B

  Ƃn߂Oɂ́AK motif ܂ lesstif CuCXg[
  ĂĂB

  o

  xmkmf

  make

       client.c: In function `read_card':
       client.c:430: `_tty' undeclared (first use in this function)
       client.c:430: (Each undeclared identifier is reported only once
       client.c:430: for each function it appears in.)
       client.c: In function `scan':
       client.c:685: `_tty' undeclared (first use in this function)
       make: *** [client.o] Error 1

  client.c t@C̖NȉɎ܂:

  #ifndef SYSV
          (buf[2] != _tty.sg_erase) && (buf[2] != _tty.sg_kill)) {
   #else
          (buf[2] != CERASE) && (buf[2] != CKILL)) {
  #endif

  o

  client.c  30 sڂ

       #define SYSV

  ǉĂBɂ _tty ւ̎QƂ܂B

  make

       client.c:41: sys/termio.h: No such file or directory
       make: *** [client.o] Error 1

  o

  CN[ht@C termio.h  Linux VXeł /usr/include fB
  Ngɂ܂BrIÂ UNIX }V̏ꍇ̂悤
  /usr/include/sys ł͂܂BāA client.c  41sڂ

       #include <sys/termio.h>

  

       #include <termio.h>

  ɕύXĂB

  make

  gcc -o hearts -g      -L/usr/X11R6/lib client.o hearts.o select.o connect.o
  sockio.o start_dist.o  -lcurses -ltermlib
  /usr/bin/ld: cannot open -ltermlib: No such file or directory
  collect2: ld returned 1 exit status
  make: *** [hearts] Error 1

  o

  ŋ߂ Linux fBXgr[V́Ax termlib f[^x[X
  ł͂Ȃ terminfof[^x[X  termcap f[^x[XgĂ܂B

   Makefile ҏW܂B

  655 sڂ

       CURSES_LIBRARIES = -lcurses -ltermlib

  

       CURSES_LIBRARIES = -lcurses -ltermcap

  ɕύX܂B

  make

       gcc -o xmhearts -g      -L/usr/X11R6/lib xmclient.o hearts.o select.o
       connect.o sockio.o start_dist.o gfx.o  -lXm_s -lXt -lSM -lICE -lXext -lX11
       -lPW
       /usr/bin/ld: cannot open -lXm_s: No such file or directory
       collect2: ld returned 1 exit status

  o

  C lesstif Cu libXm_s ł͂Ȃ libXm łB
  āAMakefile ҏWāA

  653 sڂ

       XMLIB = -lXm_s $(XTOOLLIB) $(XLIB) -lPW

  

       XMLIB = -lXm $(XTOOLLIB) $(XLIB) -lPW

  ɂ܂B

  make

       gcc -o xmhearts -g      -L/usr/X11R6/lib xmclient.o hearts.o select.o
       connect.o sockio.o start_dist.o gfx.o  -lXm -lXt -lSM -lICE -lXext -lX11 -lPW
       /usr/bin/ld: cannot open -lPW: No such file or directory
       collect2: ld returned 1 exit status
       make: *** [xmhearts] Error 1

  o

  ł͂̗e^҂ߕ߂܂傤B

  PW ƂCu͂܂BMakefile ҏWāA

  653 sڂ

       XMLIB = -lXm $(XTOOLLIB) $(XLIB) -lPW

  

       XMLIB = -lXm $(XTOOLLIB) $(XLIB) -lPEX5

  make

       rm -f xmhearts
       gcc -o xmhearts -g      -L/usr/X11R6/lib xmclient.o hearts.o select.o
       connect.o sockio.o start_dist.o gfx.o  -lXm -lXt -lSM -lICE -lXext -lX11 -lPEX5

  make Ƃ܂܂(΂񂴁[!)B

  o

  CXg[:

  root ɂȂĈȉs܂B

       [root@localhost hearts]# make install
       install -c -s  hearts /usr/X11R6/bin/hearts
       install -c -s  xmhearts /usr/X11R6/bin/xmhearts
       install -c -s  xawhearts /usr/X11R6/bin/xawhearts
       install in . done

  o

  seXg:

  rehash

  (tcsh gĂ̂Ƃ܂B)

  xmhearts

       localhost:~/% xmhearts
       Can't invoke distributor!

  o

  hearts t README ƈȉ̂悤ɏĂ܂:

            heartsd, hearts_dist, hearts.instr t@C local.h Œ`
            Ă HEARTSLIB fBNgɒuANłANZXł悤ɂ
            ĂB

  local.h ɂ͈ȉ̂悤ɏĂ܂:

       /* where the distributor, dealer and instructions live */

       #define HEARTSLIB "/usr/local/lib/hearts"

  ́u}jAƓǂ!v̓T^łˁB

  root ɂȂĈȉ̍Ƃs܂B

  cd /usr/local/lib

  mkdir hearts

  cd !$

  ꂩAdistributor t@C̃fBNgɃRs[܂B

  cp /home/username/hearts/heartsd .

  cp /home/username/hearts/hearts_dist .

  cp /home/username/hearts/hearts.instr .

  o

  xseXgĂ݂܂傤B

  xmhearts

  ͓ƂX܂Ȁꍇ dealer died! Ƃb
  Z[WoĎ~܂Ă܂ł傤B

  o

  "distributor"  "dealer" ̓n[hEFÃ|[g@܂B
  āÃvO root KvƂĂ邱Ƃ^ׂłB

  root ɂȂĈȉ̍ƂĂ݂܂傤B

  chmod u+s /usr/local/lib/heartsd

  chmod u+s /usr/local/lib/hearts_dist

  (Oɂqׂ܂Asuid oCi̓ZLeBz[ɂȂ邩
  Ȃ̂ŒӂĂB)

  xmhearts

  łƓ悤ɂȂ܂!

  Hearts  Sunsite ł܂B

  13.  5 Ԗڂ̗: XmDipmon

  uEBN: ₠AbL[BXqETMo猩ĂĂB
  bL[:       łA܂ƂȂ񂩂ȂB
  uEBN: x܂B
                  !
                  [AƂƂˁB
  bL[:       ƂƂ͂낻ʂ̓@\pӂȂˁB
              --- ubL[Ƃ̒Ԃv

  XmDipmon ̓C^[lbgڑ̏Ԃ\{^ʂɏoC̗
  ȃvOłB̃vO͐ڑ؂ƌăr[v
  o܂BԂ͓cɂ̓dbVXeł͂ƂĂ悭N
  BcOȂAXmDipmon  dip Ƒgݍ킹ĂgȂ̂ŁAڑ
  chat gĂlB(炪hȂ̂ł)̖ɂ͗܂B

  XmDipmon ̍\z͓܂BXmDipmon  Motif Cu
  N܂ALesstif NĂ܂\zł܂B̂ chat
  gĂ鎞ɂ̃pbP[W삷悤ɕς邱ƂłB
  ۂ̃\[XR[h̉܂ނ̂ŁAvO~O̒mxKv
  łB

               uxmdipmon ͋N /etc/dip.pid Ƃt@C`FbN
                 ܂(R}hCIvV -pidfile gƁAʂ̃t@C
                 QƂ邱Ƃł܂)B̃t@Cɂ dip f[
                 ̃vZX ID Ă܂(dip ͂ڑmƁA
                 gf[[hɐ؂ւ܂)v
                              --- XmDipmon  README t@C

  -pidfile IvVgƁANɕʂ̃t@C`FbN悤
  vOɎwł܂B̃t@ĆAchat OCɂł
  Ԃ݂̂łȂ΂Ȃ܂BvtƂĂ̓
  f̃bNt@C܂BāA xmdipmon -pidfile
  /var/lock/LCK..ttyS3 ƂăvON΂悢܂(
  ̗ł̓f COM |[g 4 ԁAttyS3 ɂ̂ƂĂ܂)B
  A̕@ŉ͖̂̈ꕔłBvO dip f[
  AIɊĎ̂ŁÃvZXł͂Ȃ chat  ppp ɑΉ
  vZX|[O悤ɓςĂKv܂B

  \[Xt@C 1 łAKȂƂɏڂRgt
  Ă܂Bxmdipmon.c 𒭂߂Ă݂ getProcFile Ƃ֐܂
  A̐擪ɂ͈ȉ̂悤ɏĂ܂B

       /*****
       * Name:                 getProcFile
       * Return Type:  Boolean
       * Description:  dip  pid t@Cǂݏo /proc Gg̃I[v݂
       <snip>
       *****/

  ͊撣ĒׂƂłB֐̒gǂł݂܂傤cB

                          /* we watch the status of the real dip daemon */
                          sprintf(buf, "/proc/%i/status", pid);
                          procfile = (String)XtMalloc(strlen(buf)*sizeof(char)+1);
                          strcpy(procfile, buf);
                          procfile[strlen(buf)] = '\0';

  ɂȂ̂ 2383 sڂł:

                               sprintf(buf, "/proc/%i/status", pid);
                                             ^^^^^^^^^^^^^^^^^^^^^

  ̃R[h dip f[̃vZX쒆ǂ𒲂ׂĂ܂B
  ŁAǂ dip łȂ pppd f[Ď悤ɕύXł
  傤?

  pppd  man y[Wǂł݂܂傤:

       FILES
              /var/run/pppn.pid (BSD ܂ Linux), /etc/ppp/pppn.pid (others)
                            ppp C^tF[Xjbg n  pppd vZX̃vZX ID

  ŁAxmdipmon.c  2383 sڂȉ̂悤ɕύX܂:

                               sprintf(buf, "/var/run/ppp0.pid" );

  CpbP[Wč\z܂B\z͖Ȃ͂łBɁAV
  R}hCeXg܂B͌ɓ삵܂BISP ւ ppp
  ڑmƏȐ{^Aڑ؂ƃ{^
  Ar[v܂B chat ɊĎłc[ł܂
  B

  XmDipmon  Ripley Linux Tools ł܂B

  14.  \[XA[JCu̓

  ̕ŐVomgāA[eBeBf炵\tg
  VXeɒǉƎvAlbg[Nł Linux Applications
  and Utilities Page <http://www.redhat.com/linux-info/linux-app-
  list/linapps.html> Ōł傤A Red Hat
  <http://www.redhat.com/>, InfoMagic <http://www.infomagic.com>, Linux
  Systems Labs <http://www.lsl.com>, Cheap Bytes
  <http://www.cheapbytes.com> ͂ƂĂ CD-ROM A[JCu
  Ă܂B

  \[XR[huĂꏊƂẮA comp sources UNIX
  archive ܂B

   UNIX ̃\[XR[hj[XO[v alt.sources Ƀ|X
  gĂ܂BÃ\[XR[h̃pbP[WTĂ̂
  A alt.sources.wanted ȉ̊֘Aj[XO[vɓeĕĂ݂
  Ƃ悢ł傤B`FbNƂ悢ʂ̏ꏊƂẮA
  comp.os.linux.announce j[XO[v܂B Unix sources [
  OXgɓɂ́A{ subscribe Ə[̃[
  OXgɑĂB

  alt.sources j[XO[ṽA[JCu͈ȉ FTP TCgɂ
  B

  o  ftp.sterling.com/usenet/alt.sources/

  o  wuarchive.wustl.edu/usenet/alt.sources/articles

  o  src.doc.ic.ac.uk/usenet/alt.sources/articles

  15.  Ō

  ܂Ƃ߂ƁAƂɂS苭ɂȂ܂(܂AtXg[V
  ւ̑ϐƖɗł傤)Bw͂邱ƂƓAԈႢw
  ԂƂɑ؂łBꂼ̌⎸sɂmLxɂȂA\
  tgEFA̍\z̋Zp߂邱Ƃłł傤B

  16.  Ql

  BORLAND C++ TOOLS AND UTILITIES GUIDE, Borland International, 1992,
  pp. 9-42.
  [Borland C++ o[W 3.1 ɕt̃}jÂЂƂBBorland
   DOS p̃_ȎgāA\TO邽߂̂Ȃ悢发
  ł]

  DuBois, Paul: SOFTWARE PORTABILITY WITH IMAKE, O'Reilly and Associates,
  1996, ISBN 1-56592-226-3.
  [ imake ̃t@X̌łƌĂ܂A̕
  ̎M̎_ł͓ł܂ł]

  Frisch, Aeleen: ESSENTIAL SYSTEM ADMINISTRATION (2nd ed.), O'Reilly and
  Associates, 1995, ISBN 1-56592-127-5.
  [f炵VXeǗnhubNłA\tgEFA
  \zɂĂ͊TvĂ܂]

  Hekman, Jessica: LINUX IN A NUTSHELL, O'Reilly and Associates, 1997, ISBN
  1-56592-167-4.
  [Linux ̃R}hɊւ閜\̃t@Xł]

  Lehey, Greg: PORTING UNIX SOFTWARE, O'Reilly and Associates, 1995, ISBN
  1-56592-126-7.

  Mayer, Herbert G.: ADVANCED C PROGRAMMING ON THE IBM PC, Windcrest Books,
  1989, ISBN 0-8306-9363-7.
  [㋉ C vO}̂߂̃ACfBAl܂{łB
  f炵L̃ASYAvŐZ@A
  A~[YgɂĂĂ܂BcOȂƂɐłł]

  Mui, Linda and Valerie Quercia: X USER TOOLS, O'Reilly and Associates,
  1994, ISBN 1-56592-019-8, pp. 734-760.

  Oram, Andrew and Steve Talbott: MANAGING PROJECTS WITH MAKE, O'Reilly
  and Associates, 1991, ISBN 0-937175-90-0.

  Peek, Jerry and Tim O'Reilly and Mike Loukides: UNIX POWER TOOLS,
  O'Reilly and Associates / Random House, 1997, ISBN 1-56592-260-3.
  [ACfBȂf炵łAŏIIɂ͖{Ő@
  gč\z邱ƂɂȂ悤ȃ[eBeBRقǓĂ܂]

  Stallman, Richard M. and Roland McGrath: GNU MAKE, Free Software
  Foundation, 1995, ISBN 1-882114-78-7.
  [Гǂł]

  Waite, Mitchell, Stephen Prata, and Donald Martin: C PRIMER PLUS, Waite Group
  Press, ISBN 0-672-22090-3,.
  [Ԃ C ̈ԗDꂽ发łBSҌ̘bL
  Ă܂BVło܂]

  Welsh, Matt and Lar Kaufman: RUNNING LINUX, O'Reilly and Associates,
  1996, ISBN 1-56592-151-8.
  [ Linux Ŝ̃t@XƂĂ͈ԗDĂ܂Aꕔ
  ̕ɂĂ͏ڂ܂]

  dpkg, gcc, gzip, imake, ldconfig, ldd, make, nm, patch,
  rpm, shar, strip, tar, termcap, terminfo, xmkmf  man y[WB

  The BZIP2 HOWTO(: David Fetter)

  The Glibc2 HOWTO(: Eric Green)

  The LINUX ELF HOWTO(: Daniel Barlow)

  The RPM HOWTO(: Donnie Barnes)

  The StarOffice miniHOWTO(: Matthew Borowski)

  [ HOWTO ́Ag̃VXe /usr/doc/HOWTO fBNg
  /usr/doc/HOWTO/mini fBNgɂ͂łBŐVł LDP ̃TCg
  <http://metalab.unc.edu/LDP/HOWTO> eLXgAHTMO, SGML `œ
  ł܂B܂Aʂ͂ꂼ̒҂̃z[y[Wł܂]

  17.  NWbg

  { HOWTO ̒҂́ALvȒāAAĂȉ̕X
  ӂ܂B

  o  R. Brock Lynn

  o  Michael Jenner

  o  Fabrizio Stefani

   HOWTO C^AE{ɖ|󂵂ĂꂽlXɂ̎^
  B

  āA Linux Documentation Project
  <http://metalab.unc.edu/LDP/>  Greg Hankins  Tim Bynum ɂƏ
  ^AӁAM^𑗂܂B LDP ̂őSĂł̂łB

  18.  {ɂ

  { Linux Japanese FAQ Project s܂B|Ɋւ邲ӌ
   JF vWFNg <JF@linux.or.jp> ɘAĂB

  ȉɎ܂B

     v1.10, 8 September 1998
        |: c i <tsukasa_i@bigfoot.com>

     v1.91j, 18 January 2000
        XV:  P <fujiwara@linux.or.jp>

        Z:

        o   Y <nakano@apm.seikei.ac.jp>

        o   L <takei@cc.kochi-u.ac.jp>

