On Tuesday 17 May 2005 16:50, Connie Sieh wrote:
> Dashamir,
>
> How did you make your nfs/http area?
>
> -Connie Sieh
Connie,
I did it like this (extract from the documentation):
_________________________________________________________
Scientific Linux Repository
Scientific Linux is mirrored in /mnt/hda12/SL/. I will
describe how the mirror is done for SL40 and it is very
similar for other releases.
Mirrorring SL and making an APT repository for it is done like
this:
1. Download the CD ISO images.
2. Extract the content of the ISO images in harddisk.
3. Update the latest changes from a SL mirror server.
4. Index the RPM packages.
5. Export the repository by HTTP.
_________________________________________________________
Download ISO Images
Download the CD ISO images of SL304:
bash# cd /mnt/hda12/SL/40/
bash# mkdir -p iso/i386/
bash# ./get_SL.sh &
See the Section called get_SL.sh and the Section called
get_SL.ftp .
Check that the files are downloaded correctly:
bash# cd iso/i386/
bash# ls
SL.40.042005.i386.disc1.iso SL.40.042005.i386.disc4.iso
SL.40.042005.i386.disc2.iso SL.40.042005.i386.md5sum
SL.40.042005.i386.disc3.iso
bash# md5sum -c SL.40.042005.i386.md5sum
_________________________________________________________
get_SL.sh
#!/bin/bash
### go to this directory
cd $(dirname $0)
### download SL iso-s
lftp -f get_SL.ftp
_________________________________________________________
get_SL.ftp
open mirror.switch.ch
cd mirror/scientificlinux/40/iso/i386/
lcd /mnt/hda12/SL/40/iso/i386/
mget -c *.md5sum
mget -c *.iso
quit
_________________________________________________________
Extract the Content of the ISO Images
1. Mount ISO images:
bash# mkdir cd1 cd2 cd3 cd4
bash# mount -o loop iso/i386/SL.....i386.disc1.iso cd1/
bash# mount -o loop iso/i386/SL.....i386.disc2.iso cd2/
bash# mount -o loop iso/i386/SL.....i386.disc3.iso cd3/
bash# mount -o loop iso/i386/SL.....i386.disc4.iso cd4/
2. Copy their content to hard disk:
bash# mkdir i386/
bash# cp -a cd1/* i386/
bash# cp -a cd2/* i386/
bash# cp -a cd3/* i386/
bash# cp -a cd4/* i386/
3. Unmount and clean:
bash# umount cd1
bash# umount cd2
bash# umount cd3
bash# umount cd4
bash# rmdir cd[1-4]
_________________________________________________________
Mirror SL
Update the latest changes from a SL mirror server:
bash# cd /mnt/hda12/SL/40/
bash# ./mirror_SL.sh &
It can also be called automatically every night by cron, but
right now it is called manually only when there are any
updates.
The contents of mirror_SL.sh :
#!/bin/bash
### go to this dir
cd $(dirname $0)
### mirror
lftp -f mirror_SL.ftp
### re-index the packages
./genbasedir.sh
The contents of mirror_SL.ftp :
open mirror.switch.ch
cd mirror/scientificlinux/40/i386/
lcd /mnt/hda12/SL/40/i386/
mirror --delete --continue -X 'obsolete/' -X 'debuginfo/'
quit
The directory errata/obsolete/ is excluded, because it is too
big and it may be irrelevant and/or useless.
_________________________________________________________
Index the RPM Packages
After making a mirror, we have also to re-index the RPM
packages using genbasedir , so that this mirror can serve as
an APT repository. To do this we call the script genbasedir.sh
each time that the mirror is updated:
#!/bin/bash
### re-index the packages
genbasedir --progress --flat --bz2only \
/mnt/hda12/SL/40/i386/apt/
_________________________________________________________
Export By HTTP
Create a symbolic link in /var/www/html :
bash# ln -s /mnt/hda12/SL /var/www/html/SL
After that, SL40 can be accessed at:
http://192.168.252.1/SL/40/i386/
In order to access SL by APT, in the client computer modify
the file /etc/apt/sources.list.d/sl.list like this:
rpm http://192.168.252.1/SL latest/i386/apt os contrib updates
rpm-src http://192.168.252.1/SL latest/i386/apt os contrib updates
Note: The same directory is exported by NFS.
_________________________________________________________
The network installation is done by PXE+DHCP+TFTP. Below is
described the TFTP configuration:
_________________________________________________________
TFTP Configuration
1. Create the directory /tftpboot/linux-install/ , and copy
there pxelinux.0 :
bash# mkdir -p /tftpboot/linux-install/
bash# cp /usr/lib/syslinux/pxelinux.0 /tftpboot/linux-install/
pxelinux.0 comes with the package syslinux , so if it is
not there, then try first to install this package:
bash# apt-get install syslinux
2. Create a default syslinux configuration file in the
directory named pxelinux.cfg/ :
bash# mkdir /tftpboot/linux-install/pxelinux.cfg
bash# vi /tftpboot/linux-install/pxelinux.cfg/default
3. Copy kernel and initrd images:
bash# cd /tftpboot/linux-install/
bash# mkdir SL
bash# mkdir SL/40
bash# ln -s SL/40 SL/latest
bash# cp /mnt/hda12/SL/40/i386/images/SL/pxeboot/vmlinuz SL/40/
bash# cp /mnt/hda12/SL/40/i386/images/SL/pxeboot/initrd.img SL/40/
/mnt/hda12/SL/ is the location of the SL mirrors (see the
Section called Scientific Linux Repository ).
4. Copy some boot messages:
bash# mkdir msgs
bash# cp /mnt/hda12/SL/40/i386/isolinux/*.msg msgs/
bash# cp msgs/boot.msg msgs/boot-inima.msg
These messages can also be modified or translated if
wanted. See for example the Section called
msgs/boot-inima.msg .
--------------
Sorry if it is too long, but maybe it is worth it.
Similar configurations work without problems with SL303 and SL304.
-Dashamir Hoxha
> On Tue, 17 May 2005, Dashamir
>
> Hoxha wrote:
> > Hi,
> >
> > I am trying to install SL40 from network. It fails with the error message
> > which is appended at the end. I tried both an NFS and an HTTP
> > installation, and there is the same error. By the way, the HTTP
> > installation of SL40 is graphical?
> >
> > Has anybody else tried it? If you have any idea what might be wrong,
> > please help me.
> >
> > Regards,
> > Dashamir Hoxha
> >
> > -------------------------------------------------------------------------
> >------------ Exception Occured
> > ==============
> > An unhandled exception has occurred. This is most likely a bug.
> > Please copy the full text of this exception or save the crash dump
> > to a floppy then file a detailed bug report agains anaconda at
> > http://bugzilla.redhat.com/bugzilla/
> > ----------------------------------
> > Traceback (most recent call last):
> > File "/var/tmp/anaconda-10.1.1.13.SL//usr/lib/anaconda/gui.py", line
> > 1074, in handleRenderCallback
> > self.currentWindow.renderCallback()
> > File
> > "/var/tmp/anaconda-10.1.1.13.SL//usr/lib/anaconda/iw/progress_gui.py",
> > line 242, in renderCallback
> > self.intf.icw.nextClicked()
> > File "/var/tmp/anaconda-10.1.1.13.SL//usr/lib/anaconda/gui.py", line
> > 789, in nextClicked
> > self.dispatch.gotoNext()
> > File "/var/tmp/anaconda-10.1.1.13.SL//usr/lib/anaconda/dispatch.py",
> > line 171, in gotoNext
> > self.moveStep()
> > File "/var/tmp/anaconda-10.1.1.13.SL//usr/lib/anaconda/dispatch.py",
> > line 239, in moveStep
> > rc = apply(func, self.bindArgs(args))
> > File "/tmp/updates/packages.py", line 706, in doPreInstall
> > method.mergeFullHeaders(id.grpset.hdrlist)
> > File "/var/tmp/anaconda-10.1.1.13.SL//usr/lib/anaconda/image.py", line
> > 131, in mergeFullHeaders
> > hdlist.mergeFullHeaders("%s/%s/base/hdlist2" % (self.tree,
> > productPath)) File "/usr/lib/anaconda/hdrlist.py", line 343, in
> > mergeFullHeaders rpm.mergeHeaderListFromFD(self.hdlist, fd, 1000004)
> > error: match tag mismatch
|