Skapa en RedHat-CD - mini-HOWTO
Morten Kjeldgaard, mok@imsb.au.dk och Peter von der AhÚ,
pahe+rhcd@daimi.au.dk Svensk översättning: Bo Serrander
bserrander@atr.se
v.00, 9 september 1998, svensk översättning: april 1999
I det här dokumentet beskrivs hur du gör egna CD-skivor av Linux-ver
sionen av Red Hat. De är jämförbara med de CD-skivor som säljs av Red
hat. Du får en beskrivning av distributionsstrukturen och av hur du
infogar uppdaterad RPMS i distributionen. Du behöver en bra nätverk
sanslutning och en CD-brännare.
______________________________________________________________________
Innehållsförteckning
1. Inledning
2. Red Hats FTP-plats
2.1 Den översta katalogen
2.2 Katalogen "RedHat" -- kärnan i distributionen
3. RPM-paket
4. Hämta en lokal kopia av distributionen
5. Infoga uppdateringar
5.1 Korrigera alternativen för filskydd
5.2 Byta ut uppdaterade RPMS-filer
5.3 Generera en ny hdlist-fil
6. Till sist: bränn din CD-skiva
7. Installera från CD-skivan
8. FRISKRIVNING
______________________________________________________________________
1. Inledning
Det kan finnas många anledningar att bränna egna CD-skivor. Om du är
snål vill du förstås spara de futtiga ören det kostar att gå in påRed
Hat distribution . Eller också kanske du vill
ha en distributions-CD som har den senaste distributionen med alla
aktuella uppdateringar. Det är en högst befogad önskning, för efter
varje större utgåva av Red Hat-distributionen har det tillkommit
massor av uppdateringar, varav många är säkerhetsrelaterade. Du kan
exempelvis titta på filen updates/00README.errata
.
Det finns också ett särskilt ark med rättelser för varje plattform.
Exempel: the Intel errata sheet
2. Red Hats FTP-plats
Enligt Linux-andan erbjuder Red Hat Software sina Linux-distributioner
för många olika plattformar på sin FTP-plats. Allihop är tillgängliga
från den översta distributionskatalogen.
2.1. Den översta katalogen
Den översta katalogen för RedHat Linux version 5.1
(pub/redhat/redhat-5.1 )
innehåller distributioner för olika plattformar och en katalog med
uppdateringar och rättelser som har tillkommit efter det att
programpaketet släpptes.
SRPMS/ alpha/ i386/ sparc/ updates/
I det här dokumentet använder vi i386-distributionen som exempel. Det
tillvägagångssätt som anges i dokumentet bör fungera på alla
plattformar som kan användas med Red Hat (Alpha, SPARC, ppc o.s.v.),
men vi har bara testat det på i386-plattformen (vi tar gärna emot
ytterligare information). Roten för i386-katalogen ser ut på följande
sätt:
-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/
Katalogen doc innehåller en stor mängd information. Framför allt
innehåller den installationshandboken för RedHat i HTML-format.
doc/rhmanual/manual/
.
Det finns också ett antal vanliga frågor och dessutom en fullständig
samling av HOWTO och mini-HOWTO. Katalogen images innehåller
avbildningar av startdisketter som du måste kopiera till en diskett.
I den senaste distributionen (5.1) finns det två diskettavbilder
tillgängliga. Den startbara diskettavbildningen heter boot.img och
kan hämtas när installationen utförs direkt från en CD. Om du måste
installera från en lokal hårddisk, en NFS-ansluten disk eller en FTP
kanske du också behöver den kompletterande diskavbildningen.
supp.img. I avsnittet ``Installing from the CD'' finns det mer
information och ytterligare hänvisningar. Katalogen misc innehåller
källfiler och körbara filer för ett antal program som krävs för
installationen.
2.2. Katalogen "RedHat" -- kärnan i distributionen
Den viktigaste delen i katalogträdet utgör roten i katalogen RedHat:
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/
Katalogen RPMS innehåller huvuddelen av Red Hat-distributionen som
består av en uppsättning RPM-filer (Redhat Package Manager). Ett RPM-
paket innehåller vanligtvis binära körbara filer samt relevanta
konfigureringsfiler och dokumentation. Mer information finns i
avsnittet ``RPM packages'' . Katalogen base innehåller olika
administrationskataloger som behövs under installationen, t.ex. filen
comps, som definierar components, (grupper med RPM-paket) som används
under fasen "Choose packages to install". En annan viktig fil i
katalogen base är filen hdlist som innehåller de flesta rubrikfilerna
från alla RPM-filer i katalogen RPMS. Det innebär att du kan avgöra
vilka åtgärder som behövs i RPM-paketen genom att bara läsa hdlist. Du
behöver inte läsa alla RPM-filer, vilket är mycket praktiskt, särskilt
under FTP-installationer. Du kan också använda hdlist till att
avbilda paketnamn till filnamn, t.ex. perl till
perl-5.004-6.i386.rpm. Det innebär att om du vill lägga till
uppdateringar från RedHat (se avsnitt ``Incorporating the updates'')
eller lägga till ett eget paket i katalogen RPMS måste du uppdatera
hdlist. Proceduren beskrivs i avsnittet ``Generating a new hdlist
file''.
Katalogen instimage innehåller ett enkelt katalogträd med ett antal
program och delade bibliotek som behövs under installationen.
3. RPM-paket
Huvuddelen av RedHat-distributionen består av en uppsättning RedHat-
filer (Redhat Package Manager). Ett RPM-paket innehåller vanligtvis
binära körbara filer samt relevanta konfigureringsfiler och
dokumentation. Programmet rpm är en kraftfull
programhanterare som kan användas till att installera, anropa,
verifiera, uppdatera, radera och bygga programpaket i RPM-format. Med
Rpm underhåller du en databas med alla programvarupaket som har
installerats så att informationen i den installerade programvaran
alltid är tillgänglig. De binära RPM-filerna i distributionen har
skapats på ett system som själva distributionen körs på. Det är
viktigt, eftersom de flesta programmen i paketet är beroende av delade
bibliotek. Från och med RedHat version 5.0 används den nya version 2
av GNU Standard C-biblioteket (som är anpassad för 64-bitar). Den här
versionen av biblioteket kallas vanligen glibc eller, i Linux: libc 6.
Alla körbara filer i distributionen har länkats med det biblioteket.
Om du försöker installera binära filer från en annan distribution
finns det en risk att de inte fungerar om du inte installerar paketet
libc5 som är bakåtkompatibelt. Namnen i RPM-paketet innehåller
suffixet .arch.rpm, där arch anger arkitekturen och har värdet i386
för binärfiler på Intel-plattformen. Det paket du installerar måste
överensstämma med de versioner av de delade bibliotek som finns i
datorn. Programmet rpm brukar fungera bra när du
vill säkerställa överensstämmelsen, men det finns olika sätt att
utföra kontrollen, så det är viktigt att du vet vad du gör om du
installerar paket på det här sättet. Om du däremot använder
startdisken för RedHat-installation kan vi garantera att rätt
uppsättning av RPM-paketen installeras i datorn. Om du upptäcker ett
RPM-paket som inte har installerats i systemet under
installationsprocessen behöver du inte oroa dig. Du kan när du vill
installera RPM-paket (som root). Exempel:
rpm --install WindowMaker-0.18-1b.i386.rpm
Du kan till och med installera direkt från Internet om du känner till
URL-adressen till ett RPM-paket:
rpm --install ftp://rufus.w3.org/redhat-contrib/noarch/mirror-2.9-2.noarch.rpm
I en annan version av RPM-paketen finns de originalkällkoder som
används föratt bygga binärfilerna. Paketen har suffixet .src.rpm och
finns ikatalogen SRPMS. De här paketen behövs inte på installations-
CD:n, och för övrigt ryms de inte på en 74-minuters brännbar CD. Du
kan förstås göra en separat CD med SRPMS-filerna.
4. Hämta en lokal kopia av distributionen
Du behöver en kopia av distributionen på en skrivbar disk som du kan
öppna på den dator där CD-skrivaren är ansluten. Om du vill infoga de
senaste uppdateringarna, bör katalogen (också) kunna öppnas från en
Linux-dator, antingen från en lokal disk, en NFS-ansluten disk på en
annan dator eller från en JAZ-disk. Du kan kopiera distributionen
från en RedHat-CD eller hämta den från FTP. Om du väljer att använda
FTP är det bästa sättet att få en korrekt kopia av distributionen att
använda paketet mirror. Mirror är ett avancerat perl-skript där
innehållet i en katalog på en fjärransluten dator jämförs med en lokal
katalog. FTP används för att hämta filerna från den fjärranslutna
datorn men inte från den lokala katalogen. Filer i den lokala
katalogen som inte finns i den fjärranslutna datorn tas bort. Mirror-
programmet konfigureras med en konfigureringsfil. Mirror-paketet kan
hämtas som en RPM-fil på adressen rufus.w3.org
.
Skapa en lokal kopia mirror.redhat av konfigureringsfilen för Mirror
och redigera relevanta fält överst i filen. Efter
standardalternativen anger du följande paket:
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
Med följande kommando hämtar du en kopia av hela RedHat-trädet till
din lokala disk. *Tänk efter* innan du börjar, för du kommer att
överföra ca 350 MB.
mirror -pdist mirror.redhat
Nu avbildar du FTP-platsen för RedHat på din lokala disk. Innehållet i
en RedHat-distribution ändras inte mellan upplagorna så du behöver
bara hämta det här paketet. EN GÅNG. Alla ändringar i distributionen
finns i katalogen updates. Det innebär att du bara behöver hålla
katalogen updates aktuell för att alltid ha en uppdaterad avbildning
av RedHat-distributionen. Använd kommandot
mirror -pupdates mirror.redhat
Kör kommandot regelbundet, t.ex. en gång i veckan, med hjälp av ett
cron-skript. RedHat-distributionen finns på ett stort antal FTP-
servrar över hela världen. Servrarna uppdateras dagligen från
huvudwebbplatsen . Välj en FTP-plats i
närheten. Mer information: RedHat FAQ
5. Infoga uppdateringar
När du infogar uppdateringar måste du ha skrivbehörighet till
distributionskatalogen från en Linux-dator med en fungerande version
av rpm . Utför följande tre steg:
1. Korrigera alternativen för filskydd.
2. Byta ut uppdaterade RPM-filer.
3. Generera hdlist-filen.
Om du alltid har en aktuell avbild av katalogen updates kan du när som
helst skapa en CD med aktuella uppdateringar genom att utföra de tre
stegen.
5.1. Korrigera alternativen för filskydd
Under installationsprocessen körs vissa program direkt från CD-skivan.
Tyvärr bevaras inte alltid skyddet för de filer och kataloger som
kopieras. Därför måste du se till att programmen, shell-skripten och
de delade biblioteken har körningstillstånd innan du bränner in
katalogen på CD-skivan. Det kan du göra genom att köra skriptet
updatePerm på din lokala kopia av distributionen:
______________________________________________________________________
#!/bin/bash
LIST=/tmp/er3hd3w25
CDDIR=/jaz/redhat-${RHVERSION}
# Söka efter alla kataloger och kontrollera att de har tillståndet +x
find $CDDIR -type d -exec chmod -c 755 {} \;
# Söka efter alla filer som är körbara eller som är shell- eller perl-skript
find $CDDIR -type f | file -f - | grep -v RPM \
| egrep -i 'executable|perl|bourne|shell' | cut -f1 -d: > $LIST
# Söka efter delade bibliotek
find $CDDIR -name \*.so >> $LIST
# Göra dem körbara medan du läser filen
do
-x $file ] ; then
chmod -c 755 $file
fi
done < $LIST
/bin/rm $LIST
exit 0
______________________________________________________________________
5.2. Byta ut uppdaterade RPMS-filer
Med skriptet updateCD kopierar du alla filer från
uppdateringskatalogen till RPMS-katalogen. I skriptet ingår några
tjusiga rpm-trick som avgör vilka paket i uppdateringskatalogen som är
nyast. Äldre paket flyttas till katalogen ${OLD}.
______________________________________________________________________
#! /bin/bash
# Med det här skriptet uppdateras de rpm-filer i en RedHat-distribution som hittas i $RPMDIR.
# Gamla rpm-filer placeras i $OLDDIR.
# De nya rpm-filerna bör placeras i $UPDDIR.
# Arkitekturen är $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 är nytt
cp -pv $rpm $RPMDIR
else
if [ `basename $rpm` != `basename $OLDNAME` ]; then
mv $OLDNAME $OLDDIR
cp -pv $rpm $RPMDIR
fi
fi
done
# Kopiera nya startbildfiler till rätt plats...
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. Generera en ny hdlist-fil
När du installerar från CD-skivan kommer installationsprogrammet på
CD-skivan, misc/src/install/genhdlist att vara beroende av filen
RedHat/base/hdlist , som beskriver vilka RPM-paket som finns på CD-
skivan. Programmet måste köras med rotnamnet för distributionen som
enda argument. Så här ser updateHdlist-skriptet ut:
______________________________________________________________________
#!/bin/bash
echo skapar hdlist...
CDDIR=/jaz/redhat-${RHVERSION}
ARCH=i386
GENHDDIR=${CDDIR}/${ARCH}/misc/src/install
chmod u+x ${GENHDDIR}/genhdlist
chmod 644 ${CDDIR}/${ARCH}/RedHat/base/hdlist
${GENHDDIR}/genhdlist ${CDDIR}/${ARCH}
exit 0
______________________________________________________________________
Obs! När du har infogat uppdateringarna i huvudkatalogen RedHat/RPMS
är din kopia av distributionen inte längre en avbild av RedHats
distributionsplats. Den är i själva verket ännu mer aktuell! Om du
tänker avbilda distributionen kommer därför äldre versioner av
uppdaterade RPM-filer att hämtas en gång till och uppdateringarna tas
bort.
6. Till sist: bränn din CD-skiva
Eftersom vi förutsätter att du har en fungerande CD-brännare i
systemet och vet hur du ska använda den går vi inte närmare in på den
delen. Om du bränner CD-skivan på ett Linux-system kan du installera
det utmärkta programpaketet XCDroast . I XCDRoast aktiverar du Rock Ridge-
tilläggen och skapar en TRANS.TBL-fil.
Kontrollera att den översta katalogen på CD-skivan innehåller
åtminstone följande filer och kataloger:
COPYING RPM-PGP-KEY README RedHat/
Följande kataloger kan också vara bra att ha:
doc/ gnome/ misc/ dosutils/ images/
7. Installera från CD-skivan
När du installerar från den nya CD-skivan måste du först skapa en
startbar installationsdiskett. VIKTIGT: Använd en NY, MS-DOS-
formaterad diskett! Om du använder gamla utslitna disketter kan du få
många problem vid installationen. På ett Linux-system kan du skapa
disketten med hjälp av kommandot dd:
dd if=/mnt/cdrom/images/boot.img of=/dev/fd0 bs=1440k
På ett DOS- eller Windows-9x-system måste du använda programmet
RAWRITE.EXE, som finns i katalogen dosutils på CD-skivan. Stäng av
den dator som du ska installera (eller uppgradera systemet) på, sätt
in startdisketten och den nybrända CD-skivan och starta datorn från
disketten. Mer information om installationsprocessen finns i
dokumenten och i filerna Installations-HOWTO och Startdisk-HOWTO som
finn i katalogen doc/HOWTO på CD-skivan.
8. FRISKRIVNING
Informationen i det här dokumentet antas vara korrekt, men författarna
tar inte på sig något som helst ansvar för skador på maskinvara eller
programvara eller på förlust av data som har orsakats av de procedurer
som beskrivs i dokumentet.