Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > d667a145d78a93cee78c5358ca99c039 > files > 120

howto-text-nl-2006-5mdv2010.0.noarch.rpm

  De Burning a Red Hat CD mini-HOWTO
  Morten Kjeldgaard, mok@imsb.au.dk and Peter von der Ahé,
  pahe+rhcd@daimi.au.dk
  Vertaald door Dag Wieërs, dag@wieers.com
  v1.18, 27 December 1998

  Dit dokument beschrijft hoe je je eigen Red Hat CD's kan schrijven,
  net zoals de commerciele CD's zoals Red Hat ze verkoopt. De struktuur
  van de distributie wordt beschreven, net zoals de procedure om nieuwe
  RPM's eraan toe te voegen.
  ______________________________________________________________________

  Inhoudsopgave


  1. Introduktie

  2. Anatomie van de Red Hat FTP site

     2.1 De top level directory
     2.2 De "RedHat" directory -- het hart van de distributie

  3. RPM packages

  4. Je eigen kopie van de distributie bekomen

  5. Toevoegen van updates

     5.1 Pas de file permissies aan
     5.2 Vervang de updated RPMS
     5.3 Genereer een nieuwe hdlist file
        5.3.1 Belangrijke opmerking voor Red Hat 5.2

  6. Uiteindelijk: de CD branden

     6.1 Het maken van een bootable CD
        6.1.1 Maak de disk image
        6.1.2 Test de image
        6.1.3 Brand de CD

  7. Dit dokument...

     7.1 Verwante dokumentatie
     7.2 Acknowledgements

  8. DISCLAIMER



  ______________________________________________________________________

  1.  Introduktie

  Er kunnen verschillende redenen zijn om je eigen CD te maken.
  Misschien betaal je liever geen $50 voor een echte Red Hat distributie
  <http://www.redhat.com/>.  Of misschien heb je liever een Red Hat
  distributie met je eigen programma's en eigen updates.

  2.  Anatomie van de Red Hat FTP site

  In dezelfde 'sfeer' van de Linux gemeenschap maakt Red Hat zijn
  distributie beschikbaar voor verschillende platformen op hun FTP site.




  2.1.  De top level directory

  De top level directory voor Red Hat Linux release 5.1
  (pub/redhat/redhat-5.1 <ftp://ftp.redhat.com/pub/redhat/redhat-5.1/>)
  bevat distributies voor de verschillende platformen en een directory
  die de updates van verschillende packages bevat die verspreid werden
  nadat de CD op de markt kwam.



  SRPMS/     alpha/     i386/      sparc/     updates/



  In dit dokument gebruiken we de i386 distributie als voorbeeld. De
  procedure die in dit dokument staan werkt ongeveer ook zo voor alle
  andere platformen die Red Hat support (Alpha, Sparc, ppc, etc.), maar
  is enkel getest voor het i386-platform (de auteurs zijn erg ge-
  interesseerd in bijkomende informatie voor andere platformen). De root
  van de i386 directory ziet er zo uit:



  -rw-r--r--   8 ftpuser  ftpusers     19686 May 27  1997 COPYING
  -rw-r--r--   1 ftpuser  ftpusers      3023 May  7 09:58 README
  -rw-r--r--  10 ftpuser  ftpusers      2751 Sep 18  1997 RPM-PGP-KEY
  drwxr-xr-x   5 ftpuser  ftpusers        96 Jul 15 08:34 RedHat/
  drwxr-xr-x   5 ftpuser  ftpusers      8192 Jul 15 08:35 doc/
  drwxr-xr-x   5 ftpuser  ftpusers      8192 Jul 15 08:35 dosutils/
  drwxr-xr-x   5 ftpuser  ftpusers      8192 Jul 15 08:33 gnome/
  drwxr-xr-x   2 ftpuser  ftpusers        96 Jun  7 02:47 images/
  drwxr-xr-x   4 ftpuser  ftpusers        96 Jun  5 12:24 misc/



  De doc directory bevat een groot deel van informatie. Heel belangrijk
  is de Red Hat installatie handleiding (in het Engels) in HTML-formaat
  in de directory doc/rhmanual/manual/
  <ftp://ftp.redhat.com/pub/redhat/redhat-5.1/i386/doc/rhmanual/manual/doc000.htm>.
  Vervolgens staan er een aantal FAQs en tenslotte de hele HOWTO en
  mini-HOWTO verzameling.

  De images directory bevat boot floppy images die gekopieerd worden
  naar diskette. In de recentste distributie (5.1), zijn er 2 disk
  images beschikbaar. De boot-image noemt boot.img, die is nodig als de
  installatie gebeurd rechtstreeks van CDROM. Als je installeert van
  local hard disk, NFS gemounted disks or FTP dan is de bijkomende disk
  image supp.img waarschijlijk nodig.

  De misc directory bevat broncode en programma's die nodig zijn voor de
  installatie.

  2.2.  De "RedHat" directory -- het hart van de distributie


  Het belangrijkste deel van de directory tree is de RedHat directory:



  drwxr-xr-x   2 ftpuser  ftpusers     24576 Jul 15 08:35 RPMS/
  drwxr-xr-x   2 ftpuser  ftpusers      8192 Jul 15 08:32 base/
  -rw-rw-rw-  59 ftpuser  ftpusers         0 Aug 15 14:21 i386
  drwxr-xr-x   4 ftpuser  ftpusers        96 Jun  5 12:24 instimage/



  De RPMS directory bevat the grote deel van de Red Hat distributie
  bestaande uit RPM (Red Hat Package Manager) files. Een RPM package
  bestaat uit binaries (gecompileerde programma's) samen met alle
  relevante configuratiefiles en documentatie. Zie de sektie ``RPM
  packages'' voor meer informatie.

  De base directory bevat verschillende registratie-files die nodig zijn
  tijdens het installatie-proces, bv. de comps file, die definieert de
  components (groep van packages) dat gebruikt wordt tijdens de fase
  "Choose packages to install".  Een andere belangrijk bestand in de
  base directory is het bestand hdlist die het meeste van de header-
  fields van de RPM's in de RPMS directory bevat.

  Dit betekent dat al de 'dependencies' tussen packages achterhaald
  kunnen worden door gewoon de hdlist te lezen zonder dat elk package
  afzonderlijk gelezen moet worden. Wat interessant is voor oa. FTP-
  installaties.

  hdlist wordt ook gebruikt voor de 'mapping' van packages tot file-
  names.  (bv perl naar perl-5.004-6.i386.rpm. Dit betekent dat als je
  updates wil toevoegen aan je eigen CD (zie sektie ``Updates
  toevoegen'') je de hdlist zal moeten wijzigen. Dit proces wordt
  beschreven in sektie ``Een nieuwe hdlist-file genereren''.

  De instimage directory bevat een 'life filesystem' met een reeks
  programma's en gesharede libraries die nodig zijn tijdens het
  installatie-proces.

  3.  RPM packages

  Het grootste deel van de Red Hat distributie bestaat uit een reeks RPM
  (Red Hat Package Manager) bestanden. Een RPM package bevat
  voornamelijk binaries (gecompileerd programma's) samen met relevante
  configuratie-bestanden en documentatie.  Het rpm <http://www.rpm.org>
  programma is een krachtige package manager, die kan gebruikt worden om
  packages te installeren, query'n, verifieren, updaten, verwijderen en
  zelf bouwen in het RPM-formaat. Rpm houdt een database bij van alle
  geinstalleerde software packages zodat informatie over deze
  geinstalleerde software ten alle tijde beschikbaar is.

  De binary RPM bestanden in de distributie zijn gebouwd op een systeem
  dat de distributie zelf gebruikte. Dit is belangrijk, want de meeste
  programma's in deze packages hangen af van gesharede libraries. Sinds
  Red Hat versie 5.0 werd de nieuwe versie 2 van de GNU standaard C
  library (die 64-bit clean is, dus werkt op 64bit systemen) gebruikt.
  Deze versie van de library wordt meestal glibc of libc6 genoemd. Alle
  executables in de distributie zijn gelinked aan deze library. Als je
  probeert binaries te installeren van andere distributies dan is de
  kans groot dat het niet zal werken, tenzij je het libc5-package
  installeert voor backward compatibility.

  De namen van de RPM packages bevatten de suffix .arch.  rpm, waarbij
  arch de architectuur (of het platform) is. Dit kan i386 zijn voor
  Intel systemen.  De packages die je wil installeren moeten
  overeenkomen met jouw systeem, en dus meer bepaald jouw versie van
  shared libraries die op je systeem geinstalleerd zijn.  Het rpm
  <http://www.rpm.org> programma  is meestal vrij goed om te voorkomen
  dat je fouten begaat, maar let op. Er zijn manier om toch dingen te
  doen die je beter niet doet en je moet zeker weten wat je doen als je
  bepaalde packages forceert bij installatie. Zolang je gebruik maakt
  van je eigen distributie (en files die op je CD staan) mag je er zeker
  van zijn dat je weinig fouten maakt.

  Als je RPM packages ontdekt die niet geinstalleerd werden tijdens het
  installatie-proces dan is dat geen enkel probleem. Je kan op elk
  moment (als root) RPM-packages installeren op volgende manier:
  rpm --install  WindowMaker-0.18-1b.i386.rpm



  Je kan zelfs rechtstreeks van Internet installeren, als jet het URL
  kent van het package tenminste:


  rpm --install ftp://rufus.w3.org/redhat-contrib/noarch/mirror-2.9-2.noarch.rpm



  Een andere versie van een RPM package bevat de originele source-code
  die nodig is om een package zelf te bouwen. Deze packages hebben de
  extentie .src.rpm en bevinden zich in de SRPMS directory. Deze
  packages zijn niet nodig op de installatie CD, en er is eigenlijk niet
  eens genoeg plaats op een 74 minuten CD ervoor. Natuurlijk kan je een
  eigen CD maken met enkel source-packages.

  4.  Je eigen kopie van de distributie bekomen

  Je hebt een kopie nodig van de distributie op een beschrijfbare schijf
  die toegankelijk is vanaf de komputer met de CD writer (duh!). Als je
  de laatste updates, dan zal die directory ook toegankelijk moeten zijn
  vanaf diezelfde machine, ofwel een lokale schijf, ofwel een NFS-
  gemounte partitie op een andere komputer of een JAZ-disk.

  Je kan de distributie kopieren van een Red Hat CD, of je kan hem
  afhalen via FTP.  Als je voor FTP kiest, dan is de beste manier om een
  korrekte kopie van de distributie te verkijgen, gebruik te maken van
  het mirror package.

  Mirror is een gesofistikeerde perl-script dat de inhoud van een
  directory vergelijkt met een server op afstand. Het gebruikt FTP om de
  files van de remote site af te halen die niet lokaal staan, en
  verwijdert files die lokaal wel staan maar niet remote. Het mirror-
  programma is geconfigureerd dmv. een configuratie-file. Het mirror
  package is verkrijgbaar als een RPM van rufus.w3.org
  <http://rufus.w3.org/linux/RPM/mirror.html>.

  Maak je lokale kopie mirror.redhat van de mirror configuratie file en
  verander de relevante informatie vanboven in de file. Na het default
  gedeelte, definieer deze packages:



  package=updates
         site=ftp.sunsite.auc.dk
         exclude_patt=(alpha/|sparc/)
         remote_dir=/disk1/ftp.redhat.com/pub/redhat/redhat-5.1/updates
         local_dir=/jaz/redhat-5.1/updates

  package=dist
         site=ftp.sunsite.auc.dk
         exclude_patt=(alpha/|sparc/)
         remote_dir=/disk1/ftp.redhat.com/pub/redhat/redhat-5.1/i386
         local_dir=/jaz/redhat-5.1/i386



  Het volgende commando zal een kopie van de gehele Red Hat tree afhalen
  en plaatsen op je lokale schijf. *Denk na* voordat je dit doet, je
  staat op het punt ongeveer 350Mb data af te halen.



  mirror -pdist mirror.redhat



  Dit zal de Red Hat FTP site mirroren naar je lokale schijf. De inhoud
  van een Red Hat distributie verandert niet tussen releases, so you
  only need to download this package ONCE. Al de wijzigingen aan de
  distributie vind je in de updates directory.  Dus, als je een up-to-
  date mirror van de Red Hat distributie wil hebben, moet je enkel de
  updates directory vernieuwen. Dat doe je met het volgende commando:



  mirror -pupdates mirror.redhat



  Je kan dit regelmatig starten, bijvoorbeeld eenmaal per week, via een
  cron scriptje.  De Red Hat distributie is beschikbaar op een groot
  aantal FTP-servers verspreid over de hele wereld, die dagelijks ge-
  update worden van de hoofdsite op <ftp://ftp.redhat.com/pub>. Je neemt
  best een FTP-site dicht bij jou, zie ook de Red Hat FAQ
  <http://www.redhat.com/support/docs/rhl/RedHat-FAQ/RedHat-
  FAQ-12.html#ss12.1>.

  5.  Toevoegen van updates

  Om updates toe te voegen, heb je write-access nodig op dedistributie-
  directory, met een werkende versie van rpm <http://www.rpm.org>. Er
  zijn 3 stappen die je moet volgen:


  1. Pas de file permissies aan.

  2. Vervang de updated RPMs.

  3. Genereer een nieuwe hdlist file.

  Als je een mirror onderhoudt van de updates directory, dan kan je op
  ieder moment een CD produceren met de nieuwe updates door deze drie
  stappen te herhalen.

  5.1.  Pas de file permissies aan

  Tijdens het installatie process worden sommige programma's
  rechtstreeks van CD gestart.  Spijtig genoeg behoudt een FTP programma
  niet altijd de file permissies van de files en directory's die hij
  afhaalt. Daarom is het belangrijk dat je ervoor zorgt dat de execute-
  permissie wordt gegeven aan programma's, shellscripts en shared
  libraries, voordat het geheel op CD wordt gezet. Dit wordt gedaan door
  het runnen van het updatePerm script op je lokale kopier van de
  distributie:














  ______________________________________________________________________
  #!/bin/bash

  RHVERSION=5.1

  LIST=/tmp/er3hd3w25
  CDDIR=/jaz/redhat-${RHVERSION}

  # Zoek naar alle directory's en zorg dat ze allen de +x permissie hebben
  find $CDDIR -type d -exec chmod -c 755 {} \;

  # Zoek naar alle bestanden die uitvoerbaar, shell- of perlscripts zijn
  find $CDDIR -type f | file -f - | grep -v RPM \
     | egrep -i 'executable|perl|bourne|shell' | cut -f1 -d: > $LIST

  # Zoek naar gedeelde library's
  find $CDDIR -name \*.so >> $LIST

  # Maak ze uitvoerbaar
  while read file
  do
     if [ ! -x $file ] ; then
        chmod -c 755 $file
     fi
  done < $LIST

  /bin/rm $LIST

  exit 0
  ______________________________________________________________________



  5.2.  Vervang de updated RPMS

  Het volgende scriptje met de naam updateDC kopieert alle files van de
  update directory naar de RPMS-directory. Het script gebruikt rpm om te
  achterhalen welk package nieuwer is in de update directory. Oudere
  packages worden verplaatst naar ${OLD} directory.



























  ______________________________________________________________________
  #! /bin/bash
  # This script updates rpms in a RedHat distribution found in $RPMDIR.
  # The old rpms will be placed in $OLDDIR.
  # The new rpms should be located in $UPDDIR.
  # The architechture is $ARCH.

  RHVERSION=5.1
  ARCH=i386

  CDDIR=/jaz/redhat-${RHVERSION}
  RPMDIR=${CDDIR}/${ARCH}/RedHat/RPMS
  UPDDIR=${CDDIR}/updates/${ARCH}
  OLDDIR=${CDDIR}/old

  if [ ! -d $OLDDIR ] ; then
     echo making directory $OLDDIR
     mkdir $OLDDIR
  fi

  allow_null_glob_expansion=1

  for rpm in ${UPDDIR}/*.rpm ; do
    NAME=`rpm --queryformat "%{NAME}" -qp $rpm`
    unset OLDNAME
    for oldrpm in ${RPMDIR}/${NAME}*.rpm ; do
      if [ `rpm --queryformat "%{NAME}" -qp $oldrpm` = "$NAME" ]; then
        OLDNAME=$oldrpm;
        break
      fi
    done
    if [ -z "$OLDNAME" ]; then
      echo $NAME is new
      cp -pv $rpm $RPMDIR
    else
      if [ `basename $rpm` != `basename $OLDNAME` ]; then
        mv $OLDNAME $OLDDIR
        cp -pv $rpm $RPMDIR
      fi
    fi
  done


  # Kopieer de nieuwe boot image bestanden naar de juiste plek...
  for newfile in ${UPDDIR}/images/* ; do
    file=${CDDIR}$/${ARCH}/images/$(basename ${newfile})
    if [ $newfile -nt $file ] ; then
       cp -pv $newfile $file
    fi
  done

  exit 0
  ______________________________________________________________________



  5.3.  Genereer een nieuwe hdlist file

  Als je installeert van CD dan heeft het installatie programma op CD de
  file RedHat/base/hdlist nodig. Deze file beschrijft welke RPM packages
  beschikbaar zijn op de CD. De hdlist file kan gegenereerd worden door
  het programma misc/src/install/genhdlist.  Het programma moet worden
  gestart met de 'root name' van de distributie als het enige argument.
  Hier is de updateHdlist script die dat programma aanroept:


  ______________________________________________________________________
  #!/bin/bash

  RHVERSION=5.1
  ARCH=i386

  echo generating hdlist...
  CDDIR=/jaz/redhat-${RHVERSION}
  GENHDDIR=${CDDIR}/${ARCH}/misc/src/install

  chmod u+x ${GENHDDIR}/genhdlist
  chmod 644 ${CDDIR}/${ARCH}/RedHat/base/hdlist
  ${GENHDDIR}/genhdlist ${CDDIR}/${ARCH} || echo "*** GENHDLIST FAILED ***"

  exit 0
  ______________________________________________________________________



  OPMERKING: Nadat je de updates hebt toegevoegd in de RedHat/RPMS
  directory, is je kopie van de distributie niet langer een mirror van
  de Red Hat distributie site. Eigenlijk is het meer up-to-date! Daarom
  zal je, als je opnieuw de distributie gaat mirroren, weer de oude
  versie van de updates afhalen, en zullen de updates verwijderd worden.

  5.3.1.  Belangrijke opmerking voor Red Hat 5.2

  Zoals bij Red Hat 5.2 en vroeger meegeleverd was, CRASHTE genhdlist
  als er files in de RedHat/RPMS directory stonden die niet RPM files
  waren!  Dit zorgt voor problemen, want in de 5.2 distributie zijn er
  een paar non-RPM files die ls-lR en ls-lR.gz heten. Daarom veeg je
  best all non-RPM files weg uit die directory.

  6.  Uiteindelijk: de CD branden

  Als we veronderstellen dat je een werken CD-write op je systeem hebt,
  en als je weet hoe die te gebruiken, slaan we meteen de details over
  mbt. het branden van CD's. Als je je CD's brandt op een Linux-systeem,
  kan je het excellente XCDroast <http://www.fh-muenchen.de/rz/xcdroast>
  package installeren.  In XCDRoast,  zet de Rock Ridge extentie aan, en
  de kreatie van TRANS.TBL files.

  Kijk even na of de top directory van de CD op zijn minst de volgende
  files en directory's bevat:



  COPYING      RPM-PGP-KEY README       RedHat/



  De volgende directory's zijn handig:;



  doc/         gnome/      misc/        dosutils/    images/



  6.1.  Het maken van een bootable CD

  (Dit gedeelte is dankzij Dawn Endico dawn@math.wayne.edu).  Aangezien
  XCDRoast geen ondersteuning heeft voor bootable disks, heb je een
  andere tool nodig, bv.  mkisofs
  <ftp://tsx-11.mit.edu/pub/linux/packages/mkisofs/> en cdrecord
  <http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/cdrecord.html>.
  Haal de laatste RPMs voor deze packages van
  <ftp://contrib.redhat.com>.

  Je zal een image file moeten maken die naar CD wordt geschreven. Deze
  file is ongeveer 500Mb groot, dus best zoek je een partitie met genoeg
  vrije plaats en verander het path voor redhat.img in het volgende
  commando indien nodig. Je zal root moeten zijn om mount en cdrecord te
  gebruiken.

  6.1.1.  Maak de disk image

  Verander de directory naar de plaats in je mirror dat de root zal zijn
  van je CD.  bijvoorbeeld redhat-5.2/i386.



  mkisofs -v -r -T -J -V "Red Hat 5.2" -b images/boot.img -c misc/boot/boot.cat -o /tmp/redhat.img .



  6.1.2.  Test de image

  Als je paranoide bent, test je best je nieuwe disk image door het te
  mounten. Als je vergat de file permissies te veranderen of vergat de
  Rock Ridge extentie aan te zetten dan zal de fout wel duidelijk
  worden, aangezien de filenames en directory structure fout zullen
  zijn.



  mount -t iso9660 -o ro,loop /tmp/redhat.img /mnt/cdrom



  Als je klaar bent, vergeet niet te unmounten.



  umount /mnt/cdrom



  6.1.3.  Brand de CD

  Kijk na of je wel de juiste snelheid van je CD-writer instelt. Dit
  commando is voor een 4x CDR. Jij hebt misschien een 1x, 2x of 6x.



  cdrecord -v speed=4 dev=0,0 /tmp/redhat.img



  7.  Dit dokument...

  De SGML code van de meest recente versie van dit dokument kan je
  vinden op <http://imsb.au.dk/~mok/linux/doc/RedHat-CD.sgml>.

  7.1.  Verwante dokumentatie

  Ed Schlunder <zilym@asu.edu> heeft een programma gschreven, genaamd
  fix-rhcd dat je toelaat je Red Hat Linux distributie mirror te
  vergelijken naar filesize, names, permissies en symlinks tov. een 'ls
  -lNr' listing van een officiele Red Hat ftp site. Iedere permissie die
  verkeerd is wordt veranderd in dat van de ls listing.  Zie ook de fix-
  rhcd homepage <http://www.ajusd.org/~edward/fix-rhcd/>.
  7.2.  Acknowledgements

  Dank aan de volgende personen voor hun waardevolle bijdrage:


  ·  Lars Christensen <larsch@cs.auc.dk>

  ·  Thomas Duffy <tbd@cs.brown.edu>

  ·  Dawn Endico <dawn@math.wayne.edu>

  ·  Seva <seva@null.cc.uic.edu>

  8.  DISCLAIMER

  While the given information in this document is believed to be
  correct, the authors assume no responsibility whatsoever for any
  damage to hardware and/or software, or any loss of data resulting from
  the procedures outlined in this document.