Next Previous Contents

6. Les exemples de kickstart de Mark

Par Mark Nielsen mark@gtltd.com

Si ce document change, il sera disponible à l'adresse suivante The Computer Underground: http://www.tcu-inc.com/mark/articles/Kickstart.html

6.1 Ressources

Le Kickstart HOWTO est vraiment très bien fait.

  1. Sur le cdrom de la RedHat 6.0, jetez un coup d'oeil au fichier /doc/README.ks
  2. man mkkickstart
  3. http://www.redhat.com/corp/support/manuals/RHL-6.0-Manual/install-guide/manual/doc129.html
  4. http://www.redhat.com/mirrors/LDP/HOWTO/KickStart-HOWTO-6.html
  5. http://redhat.google.com/redhat?q=kickstart&search=redhat

6.2 Qu'est-ce que le Kickstart?

Une remarque pour commencer : je pense qu'il serait bon que quelqu'un écrive un article similaire pour les autres distributions Linux. Je serai plus que ravi de donner un coup de main.

KickStart pour RedHat vous permet d'effectuer une installation rapide de la RedHat 6.0 sans avoir à passer par tous les menus d'installation. Il l'automatise de bout en bout (s'il ne se pose pas de problèmes en cours de route). Cela est très utile pour les installations multiples. Tout ce que vous avez à faire est de créer un fichier ks.cfg sur la disquette de boot RedHat 6.0. Vous bootez alors sur la disquette, tapez la commande linux ks=floppy au premier écran et, si vous êtes chanceux, au début du processus d'installation, le fichier devrait être pris en compte et l'installation devrait se faire entièrement toute seule.

Vous devez passer par les étapes suivantes :

  1. Si vous n'avez pas de disquette de boot RedHat 6.0, il vous faut en faire une. Soit vous utilisez rawrite, qui est livré avec la RedHat 6.0, à partir du cd alors que vous êtes sous DOS, soit vous montez le cd sous Linux et, en considérant que vous avez monté le cd sous /mnt/cdrom et qu'une disquette est insérée dans le lecteur (et qu'elle ne comporte rien d'important) faites :
    cd /mnt/cdrom/images
    dd if=boot.img of=/dev/fd0
    ## OU si vous installez depuis un réseau
    dd if=bootnet.img of=/dev/fd0
    
  2. La disquette de boot RedHat 6.0 est formatée au format msdos, vous pouvez donc copier dessus le fichier ks.configuration en utilisant soit Windoze soit Linux. Si vous devez monter la disquette sous Linux, vous pouvez faire :
    mkdir -p /mnt/floppy
    mount -t msdos /dev/fd0 /mnt/floppy
    
  3. Kickstart peut être installé : Il dispose également d'autres fonctionnalités. Pour cet exemple, nous allons utiliser une adresse ip statique.
  4. On considère ici le cas de disques durs et de lecteurs de cdrom IDE standards. Si vous avez des périphériques SCSI, ou d'autres périphériques exotiques, il vous faudra modifier le fichier kickstart de manière à ce que cela fonctionne.
  5. Quelque chose d'étrange m'est arrivé au cours de l'une de mes installations. Après avoir installé la RedHat 6.0, j'ai essayé de faire une mise à jour et le programme m'a trouvé je ne sais comment plus de 100 Mo de programmes à installer pour faire la mise à jour alors que je n'avais rien touché sur le système. Étrange. J'ai recommencé et il m'a installé 115 paquetages pour un total de 112 mo. Je ne pense pas qu'il était nécessaire de réinstaller ces rpms mais c'était fait de manière automatique avec l'option upgrade, que ces rmps soient installés ou non.

6.3 Problèmes et reproches

Ceci dit, j'ai quelques problèmes et reproches à signaler. D'une manière générale, le disque de kickstart est plutôt bien et s'est amélioré depuis la 5.2 mais il manque toutefois un peu d'intelligence ou ne vous donne pas toujours toute la latitude d'action dont vous auriez besoin. Je veux pouvoir scier la branche sur laquelle je suis assis si j'en ai envie. Cela peut sembler bizarre mais j'ai mes raisons :

  1. je n'ai pas trouvé d'option sélectionner tous les rpms. Cela est gênant dans la mesure où cela force à lister tous les rpms. J'ai peut être été aveugle mais je n'ai pas trouvé cette option.
  2. je ne peux pas le forcer à utiliser une carte graphique et des réglages d'écran à une certaine résolution. Cela est ennuyeux. Un coup sur deux, Xconfigurator ne marche pas chez moi et je suis obligé de configurer Xwindows après l'installation. Pour faire ça facilement, dans une installation manuelle, on peut mettre l'ordinateur en VGA 16 puis installer dans un second temps les gestionnaires de la bonne carte. Si vous le mettez en VGA 16 et qu'il pense que vous avez autre chose, kickstart va faire une erreur et arrêter le processus d'installation pour vous demander des informations supplémentaires.
  3. j'aimerais pouvoir forcer le choix du nom de l'ordinateur de manière à éviter qu'il ne se stoppe pour demander le nom à l'utilisateur s'il ne le trouve pas via le serveur DNS. J'aimerais pouvoir me tirer dans le pied et mettre des valeurs incorrectes juste parce que j'en ai envie.
  4. il est plutôt stupide pour la création de partitions Linux. Il ne veut voir qu'une partition primaire et met le reste dans des partitions logiques. Cela est particulièrement regrettable dans le cadre de systèmes multi-boot. Son comportement est de prendre tout l'espace restant sur votre disque dur à la suite de la partition primaire et d'en faire une grande partition étendue. J'aimerais pouvoir spécifier les partitions primaires ou logiques. Ce serait bien que quelqu'un écrive un script qui automatise les commandes de fdisk. Peut-être qu'il en existe un et que je n'en ai pas connaissance.
  5. y a-t-il moyen de lui faire utiliser une partition déjà définienbsp;? Il semblerait qu'il ne soit en mesure d'utiliser que les partitions qu'il a lui-même créées. Ce serait bien de pouvoir définir les partitions à l'avance puis de dire quels répertoires vont sur quelles partitions sur le disque kickstart.

Ne vous méprenez pas, kickstart est un moyen agréable de faire les choses, j'aimerais seulement qu'il arrive à un niveau que l'on pourrait qualifier de très agréable. Par agréable, j'entends qu'il me donne la possibilité de scier la branche sur laquelle je suis assis juste pour voir ce qui arrive. Une petite douleur n'a jamais fait de mal à personne. Par ailleurs, je ne suis pas vraiment un expert de kickstart, il est donc possible que j'ai raté quelques unes des options dont je reproche l'absence. Je ne l'utilise que depuis deux mois au moment de l'écriture de ce document.

6.4 Exemple de la mise à jour à partir du cdrom

Copiez ce qu'il y a entre les lignes dans un fichier appelé ks.cfg que vous mettre sur votre disquette de boot. Ensuite, lorsque vous serez au premier écran de l'installation de Linux, tapez la commande "linux ks=floppy. Bien sûr, avant de faire ça, assurez vous que le BIOS de votre ordinateur est configuré de manière à booter sur votre lecteur de disquette.

#         Copiez ce fichier sous le nom "ks.cfg" sur la disquette de boot
#         fournie avec RedHat 6.0. Vous pouvez aussi faire votre propre
#         disquette de boot. Par ailleurs, comme les disquettes de boot sont
#         formatées  msdos, vous pouvez utiliser un ordinateur sous Windows
#         pour copier ce fichier sur votre disquette. À l'apparition du prompt
#         après le boot sur la disquette, tapez:
#               linux ks=floppy
#         et appuyez sur enter. 

#  C'est la configuration qu'il vous faut pour faire une mise à jour à partir
#  du cdrom.
#

        ### Choisir le langage le plus répandu dans le monde.
        ### Cela énerve toujours les français. 
        ### NdT: il vous est cependant permis de mettre lang fr
lang en
        ### Lui indiquer d'utiliser le cdrom pour trouver les rpms
cdrom

        ### Lui dire d'utiliser un clavier us
        ### NdT: dans nos contrées civilisées, on pourra mettre
        ### NdT:      keyboard fr-latin1               ;-)
keyboard us

       ### Lui dire que vous voulez faire une mise à jour et non une
       ### installation normale
upgrade

        ### Lui dire d'installer Lilo sur le master boot record
lilo --location mbr

%post

echo "Salut, voici un exemple de commande post installation par le biais de la commande echo."
echo "Vous ne la verrez certainement pas si perl n'est pas lancé."

PATH=$PATH;/usr/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin
export PATH

ldconfig

perl -e '$A = 50; print "\nEn sommeil pour 20 secondes. Variable de test = $A\n"'
perl -e 'sleep 20'

6.5 Une installation par ftp

Cette fois, on utilise ftp dans cette configuration et, si vous voulez utiliser nfs, il vous suffit de mettre en commentaires l'option ftp et de décommenter l'option nfs. Tout ce dont vous avez besoin est une disquette et une carte réseau. Les choses seront plus simples si vous désactivez les lecteurs de cdrom de chacun de vos ordinateurs. Utilisez un réseau 100 Mbit. Mes installations par ftp se sont révélées plus rapides qu'avec un cdrom quand je disposais d'un réseau 100 Mbit. Un cdrom 40x n'est pas encore aussi performant qu'un réseau rapide avec quelques ordinateurs. En plus, les hubs 100 Mbit sont bon marché de nos jours.

#----------


#         Copiez ce fichier sous le nom "ks.cfg" sur la disquette de boot
#         fournie avec RedHat 6.0. Vous pouvez aussi faire votre propre
#         disquette de boot. Par ailleurs, comme les disquettes de boot sont
#         formatées  msdos, vous pouvez utiliser un ordinateur sous Windows
#         pour copier ce fichier sur votre disquette. À l'apparition du prompt
#         après le boot sur la disquette, tapez:
#               linux ks=floppy
#         et appuyez sur enter. 

#  C'est la configuration qu'il vous faut pour faire une mise à jour à partir
#  du cdrom.
#

        ### Choisir le langage le plus répandu dans le monde.
        ### Cela énerve toujours les français. 
        ### NdT: il vous est cependant permis de mettre lang fr
lang en

        ### Lui indiquer quels paramètres de cartes ethernet utiliser
        ### Si le serveur de noms 10.0.1.15 n'existe pas ou que 
        ### 10.0.1.21 n'y est pas référencé, il vous demandera un nom.
network --bootproto static --ip 10.0.1.10 --netmask 255.255.255.0 --gateway 10.0.1.15 --nameserver 10.0.1.15

        ### Décommentez cette option si vous disposez de nfs sur votre serveur
        ### Dans ce cas, mettez en commentaires la ligne "url". 
        ### Si vous décidez d'utiliser un serveur nfs, assurez vous d'avoir mis
        ### "/home/ftp/RedHat60" dans votre fichier /etc/exports.
# nfs --server 10.0.1.15 --dir /home/ftp/RedHat60

   ### Assurez vous que /home/ftp/RedHat60 existe sur le serveur
   ### Veuillez également monter le cdrom sous /home/ftp/RedHat60 sur le
   ### serveur.
   ### Vous pouvez le faire de la manière suivante
   ###          mkdir -p /home/ftp/RedHat60 
   ###          mount /dev/cdrom /home/ftp/RedHat60  
   ### Si vous n'avez pas de serveur de noms, utilisez les nombres pour l'url
url --url ftp://10.0.1.15/RedHat60

        ### Lui indiquer d'utiliser le cdrom pour obtenir les rpms
# cdrom

        ### Lui indiquer d'utiliser une carte ethernet Intel 10/100 EtherExpress
device ethernet eepro100
        ### Lui dire d'utiliser un clavier us
        ### NdT: pour la France: keyboard fr-latin1
keyboard us
        ### Lui dire d'écraser le master boot record du disque dur
zerombr yes
        ### Lui dire d'agir grossièrement en effaçant toutes les partitions
clearpart --all
        ### Créer une partition de swap, qu'il mettra qu'on le veuille ou non
        ### sur une partition logique
part swap --size 100
        ### Il va créer une partition primaire pour la racine, de 2 gigas
        ### Je n'ai pas trouvé la commande pour effectuer la vérification des
        ### secteurs défectueux. En existe-t-il une?
        ### Je en pense pas que "grow" fonctionne ici, malheureusement 
part / --size 2000 
        ### Créer un répertoire /OtherDir d'au moins 1 giga et le faire grossir 
        ### jusqu'à ce qu'il remplisse le reste du disque dur
        ### Dans la mesure où "kickstart" est littéralement parlement un
        ### programme non intelligent, il va mettre cette partition sur
        ### une partition logique même s'il reste encore des partitions
        ### primaires disponibles. 
part /Backups --size 1000 --grow

        ### Lui indiquer d'utiliser une souris compatible MicroSoft  
mouse --kickstart microsoft --device ttyS1
        ### Lui faire savoir que nous faisons une installation, non pas une
        ### mise à jour
install 
        ### Lui indiquer le fuseau horaire dans lequel nous nous trouvons
timezone --utc US/Eastern
        ### Lui dire d'utiliser le VGA 16 standard. Parfois, il se bloque
        ### à ce moment et vous demande quand même de sélectionner une carte
        ### J'aimerais vraiment pouvoir forcer l'installation d'une carte donnée
        ### de manière à pouvoir configurer Xwindows après l'installation
        ### Xconfigurator se trompe %50 du temps pour mes cartes
xconfig --server XF86_VGA16
        #### Lui donner un mot de passe pour le root 
rootpw MyPassword
        #### Lui dire d'utiliser les shadow passwords
auth --useshadow
        ### Lui dire d'installer Lilo sur le master boot record
lilo --location mbr

        ### Passons maintenant à l'installation des paquetages. Existe-t-il une 
        ### commande simple pour signifier "tous"?
%packages

        ### Choisissez les paquetages à installer, je pense qu'ils y sont tous
        ### Contrairement au programme d'installation qui n'installe qu'un
        ### serveur X, les options que j'ai choisies les installent tous au cas 
        ### où vous changeriez de carte vidéo, ce qui m'arrive souvent.
@ Base
@ Printer Support
@ X Window System
@ GNOME
@ KDE
@ Mail/WWW/News Tools
@ DOS/Windows Connectivity
@ File Managers
@ Graphics Manipulation
@ Console Games
@ X Games
@ Console Multimedia
@ X multimedia support
@ Networked Workstation
@ Dialup Workstation
@ News Server
@ NFS Server
@ SMB (Samba) Connectivity
@ IPX/Netware(tm) Connectivity
@ Anonymous FTP Server
@ Web Server
@ DNS Name Server
@ Postgres (SQL) Server
@ Network Management Workstation
@ TeX Document Formatting
@ Emacs
@ Emacs with X windows
@ C Development
@ Development Libraries
@ C++ Development
@ X Development
@ GNOME Development
@ Kernel Development
@ Extra Documentation
AfterStep
AfterStep-APPS
AnotherLevel
ElectricFence
GXedit
ImageMagick
ImageMagick-devel
MAKEDEV
ORBit
ORBit-devel
SVGATextMode
SysVinit
WindowMaker
X11R6-contrib
XFree86-100dpi-fonts
XFree86
XFree86-3DLabs
XFree86-75dpi-fonts
XFree86-8514
XFree86-AGX
XFree86-FBDev
XFree86-I128
XFree86-ISO8859-2
XFree86-ISO8859-2-100dpi-fonts
XFree86-ISO8859-2-75dpi-fonts
XFree86-ISO8859-2-Type1-fonts
XFree86-ISO8859-9-100dpi-fonts
XFree86-ISO8859-9
XFree86-ISO8859-9-75dpi-fonts
XFree86-Mach32
XFree86-Mach64
XFree86-Mach8
XFree86-Mono
XFree86-P9000
XFree86-S3
XFree86-S3V
XFree86-SVGA
XFree86-VGA16
XFree86-W32
XFree86-XF86Setup
XFree86-Xnest
XFree86-Xvfb
XFree86-cyrillic-fonts
XFree86-devel
XFree86-doc
XFree86-libs
XFree86-xfs
Xaw3d
Xaw3d-devel
Xconfigurator
adjtimex
aktion
am-utils
anonftp
apache
apache-devel
apmd
arpwatch
ash
at
audiofile
audiofile-devel
aumix
authconfig
autoconf
autofs
automake
awesfx
basesystem
bash
bash2
bash2-doc
bc
bdflush
bin86
bind
bind-devel
bind-utils
binutils
bison
blt
bootparamd
byacc
bzip2
caching-nameserver
cdecl
cdp
chkconfig
chkfontpath
cleanfeed
comanche
compat-binutils
compat-egcs
compat-egcs-c++
compat-egcs-g77
compat-egcs-objc
compat-glibc
compat-libs
comsat
console-tools
control-center
control-center-devel
control-panel
cpio
cpp
cproto
cracklib
cracklib-dicts
crontabs
ctags
cvs
cxhextris
desktop-backgrounds
dev
dhcp
dhcpcd
dialog
diffstat
diffutils
dip
dosemu
dosemu-freedos
dump
e2fsprogs
e2fsprogs-devel
ed
ee
efax
egcs
egcs-c++
egcs-g77
egcs-objc
eject
elm
emacs
emacs-X11
emacs-el
emacs-leim
emacs-nox
enlightenment
enlightenment-conf
enscript
esound
esound-devel
etcskel
exmh
expect
ext2ed
faces
faces-devel
faces-xface
faq
fbset
fetchmail
fetchmailconf
file
filesystem
fileutils
findutils
finger
flex
fnlib
fnlib-devel
fortune-mod
freetype
freetype-devel
ftp
fvwm
fvwm2
fvwm2-icons
fwhois
gated
gawk
gd
gd-devel
gdb
gdbm
gdbm-devel
gdm
gedit
gedit-devel
genromfs
gettext
getty_ps
gftp
ghostscript
ghostscript-fonts
giftrans
gimp
gimp-data-extras
gimp-devel
gimp-libgimp
gimp-manual
git
glib
glib-devel
glib10
glibc
glibc-devel
glibc-profile
gmc
gmp
gmp-devel
gnome-audio
gnome-audio-extra
gnome-core
gnome-core-devel
gnome-games
gnome-games-devel
gnome-libs
gnome-libs-devel
gnome-linuxconf
gnome-media
gnome-objc
gnome-objc-devel
gnome-pim
gnome-pim-devel
gnome-users-guide
gnome-utils
gnorpm
gnotepad+
gnuchess
gnumeric
gnuplot
gperf
gpm
gpm-devel
gqview
grep
groff
groff-gxditview
gsl
gtk+
gtk+-devel
gtk+10
gtk-engines
gtop
guavac
guile
guile-devel
gv
gzip
gzip
hdparm
helptool
howto
howto-chinese
howto-croatian
howto-french
howto-german
howto-greek
howto-html
howto-indonesian
howto-italian
howto-japanese
howto-korean
howto-polish
howto-serbian
howto-sgml
howto-slovenian
howto-spanish
howto-swedish
howto-turkish
ical
imap
imlib
imlib-cfgeditor
imlib-devel
indent
indexhtml
inews
info
initscripts
inn
inn-devel
install-guide
intimed
ipchains
ipxutils
ircii
isapnptools
isicom
ispell
itcl
jed
jed-common
jed-xjed
joe
kaffe
kbdconfig
kdeadmin
kdebase
kdegames
kdegraphics
kdelibs
kdemultimedia
kdenetwork
kdesupport
kdeutils
kernel
kernel
kernel
kernel-BOOT
kernel-doc
kernel-headers
kernel-ibcs
kernel-pcmcia-cs
kernel-smp
kernel-smp
kernel-smp
kernel-source
kernelcfg
knfsd
knfsd-clients
korganizer
kpilot
kpppload
kterm
ld.so
ldconfig
less
lha
libPropList
libc
libelf
libghttp
libghttp-devel
libgr
libgr-devel
libgr-progs
libgtop
libgtop-devel
libgtop-examples
libjpeg
libjpeg-devel
libjpeg6a
libpcap
libpng
libpng-devel
libstdc++
libtermcap
libtermcap-devel
libtiff
libtiff-devel
libtool
libungif
libungif-devel
libungif-progs
libxml
libxml-devel
lilo
linuxconf
linuxconf-devel
logrotate
losetup
lout
lout-doc
lpg
lpr
lrzsz
lslk
lsof
ltrace
lynx
m4
macutils
mailcap
mailx
make
man
man-pages
mars-nwe
mawk
mc
mcserv
metamail
mgetty
mgetty-sendfax
mgetty-viewfax
mgetty-voice
mikmod
mingetty
minicom
mkbootdisk
mkdosfs-ygg
mkinitrd
mkisofs
mkkickstart
mktemp
mkxauth
mod_perl
mod_php
mod_php3
modemtool
modutils
mount
mouseconfig
mpage
mpg123
mt-st
mtools
multimedia
mutt
mxp
nag
nc
ncftp
ncompress
ncpfs
ncurses
ncurses-devel
ncurses3
net-tools
netcfg
netkit-base
netscape-common
netscape-communicator
netscape-navigator
newt
newt-devel
nmh
nscd
ntsysv
open
p2c
p2c-devel
pam
passwd
patch
pciutils
pdksh
perl
perl-MD5
pidentd
pilot-link
pilot-link-devel
pine
playmidi
playmidi-X11
pmake
pmake-customs
popt
portmap
postgresql
postgresql-clients
postgresql-devel
ppp
printtool
procinfo
procmail
procps
procps-X11
psacct
psmisc
pump
pwdb
pygnome
pygtk
python
python-devel
python-docs
pythonlib
qt
qt-devel
quota
raidtools
rcs
rdate
rdist
readline
readline-devel
redhat-logos
redhat-release
rgrep
rhl-alpha-install-addend-en
rhl-getting-started-guide-en
rhl-install-guide-en
rhmask
rhs-hwdiag
rhs-printfilters
rhsound
rmt
rootfiles
routed
rpm
rpm-devel
rsh
rsync
rusers
rwall
rwho
rxvt
sag
samba
sash
screen
sed
sendmail
sendmail-cf
sendmail-doc
setconsole
setserial
setup
setuptool
sgml-tools
sh-utils
shadow-utils
shapecfg
sharutils
slang
slang-devel
sliplogin
slocate
slrn
slrn-pull
sndconfig
sox
sox-devel
specspo
squid
stat
statserial
strace
svgalib
svgalib-devel
swatch
switchdesk
switchdesk-gnome
switchdesk-kde
symlinks
sysklogd
talk
taper
tar
tcl
tclx
tcp_wrappers
tcpdump
tcsh
telnet
termcap
tetex
tetex-afm
tetex-doc
tetex-dvilj
tetex-dvips
tetex-latex
tetex-xdvi
texinfo
textutils
tftp
time
timeconfig
timed
timetool
tin
tix
tk
tkinter
tksysv
tmpwatch
traceroute
transfig
tree
trn
trojka
tunelp
ucd-snmp
ucd-snmp-devel
ucd-snmp-utils
umb-scheme
unarj
units
unzip
urlview
urw-fonts
usermode
usernet
utempter
util-linux
uucp
vim-X11
vim-common
vim-enhanced
vim-minimal
vixie-cron
vlock
w3c-libwww
w3c-libwww-apps
w3c-libwww-devel
wget
which
wmakerconf
wmconfig
words
wu-ftpd
x11amp
x11amp-devel
x3270
xanim
xbanner
xbill
xboard
xboing
xchat
xcpustate
xdaliclock
xdosemu
xearth
xfig
xfishtank
xfm
xgammon
xinitrc
xjewel
xlispstat
xloadimage
xlockmore
xmailbox
xmorph
xntp3
xosview
xpaint
xpat2
xpdf
xpilot
xpm
xpm-devel
xpuzzles
xrn
xscreensaver
xsysinfo
xtoolwait
xtrojka
xwpick
xxgdb
yp-tools
ypbind
ypserv
ytalk
zgv
zip
zlib
zlib-devel
zsh
        ### Tout ce qui se trouve après %post est interprété comme une commande 
        ### post installation et sera relative au point de montage
        ### "/" pour la nouvelle installation 
%post 

# ajouter un autre serveur de noms
echo "nameserver 10.0.1.10" >> /etc/resolv.conf
echo "10.0.1.10         server.local    server" >> /etc/resolv.conf

6.6 Conclusion -- c'est bien

Je pense que le programme kickstart de RedHat est une bonne idée. Je n'en ai pas encore trouvé d'équivalent dans les autres distributions, je n'en ai pas eu le temps. Bien sûr, il reste encore pas mal de travail à faire pour en faire un outil vraiment agréable pour faire des installations. Le problème est posé. Donc, au lieu de vous plaindre, si vous pensez qu'il est nécessaire de l'améliorer et que vous l'appréciez, rejoignez la cause et aidez au développement de kickstart pour RedHat ou pour toute autre distribution Linux. J'ai écrit cet article, c'est maintenant à votre tour d'aider et de contacter les gens de RedHat ou d'autres personnes pour que ce programme soit encore meilleur.

Je donne à la méthode Kickstart un "B" pour la 6.0 et un "C" pour la version 5.2. Il est intéressant en comparaison de l'aternative commerciale corrompue qui vous force à rebooter 10 fois avant de terminer l'installation. Le potentiel de Linux est énorme en comparaison des alternatives commerciales de codes sources non libres. Quand le logiciel est écrit non pas pour le profit mais parce qu'il est cool et/ou parce que des gens en ont besoin, le potentiel à long terme dépasse de loin la mentalité commerciale de gens qui ne savent pas écrire de bons logiciels ou qui souhaitent juste que leurs programmes fonctionnent. Kickstart a le potentiel pour réduire le coût global du consulting et le temps pris pour installer des systèmes Linux à grande échelle (ce qui est un avantage pour le novice ainsi que pour le expert consultant en informatique). Il est amusant de voir les entreprises commerciales essayer ce que Linux et les autres systèmes UNIX peuvent faire. Je connais des produits commerciaux qui s'essaient à mettre en place des installations de masse de systèmes d'exploitation corrompus au code fermé et je ris de tout le dur labeur qu'ils doivent accomplir. Je veux insister sur un point, la méthode que j'ai expliquée ne constitue pas la manière la plus simple d'installer Linux. Je l'expliquerai un jour dans un autre article. Cela fera apparaître tout système d'exploitation commercial ou aux sources non libres comme des détritus en comparaison de Linux.

6.7 Mon script perl

J'ai utilisé ce script perl pour extraire une liste des rpms du répertoire /RedHat/RPMS du cdrom. Je n'ai eu que 6 corrections à faire et je me suis dit que cela me prendrait plus longtemps de corriger ce script perl plutôt que de corriger la liste. Il doit y avoir un moyen plus simple d'obtenir cette liste avec des résultats exacts mais il y a souvent un pas entre ce que vous savez qui fonctionne et le fait de prendre le temps de trouver une meilleure manière de le faire. Cela ne m'a pris que 5 minutes pour écrire ce script. La majeure partie du temps que j'ai perdu est passé dans les boots sur le disque kickstart pour voir combien d'erreurs j'obtenais.

#!/usr/bin/perl

my @RPMS = </home/ftp/RedHat60/RedHat/RPMS/*.rpm>;
my $Dest = "/tmp/List_2.txt";

open(FILE,">$Dest");

foreach $Rpm (@RPMS)
  {
    ## Il aurait été plus simple d'utiliser ? à la place de /
  $Rpm =~ s/\/home\/ftp\/RedHat60\/RedHat\/RPMS\///;

  if ($Rpm =~ /\-[0-9]+\-[0-9]+\./) 
    {($Rpm,$Junk) = split(/\-[0-9]+\-[0-9]\./, $Rpm,2);}
  elsif ($Rpm =~ /\-[0-9]+\./) 
    {($Rpm,$Junk) = split(/\-[0-9]+\./, $Rpm,2);}
  else {($Rpm,$Junk) = split(/\-[0-9]/, $Rpm,2);}

  print FILE "$Rpm\n";
  }

Mark travaille comme assistant matériel JALG (shorts et tee-shirt) sous l'égide de Mike Hunter pour The Computer Underground et comme consultant professionnel (costume - cravate) chez 800linux.com. Son temps libre, il le dépense dans le bénévolat, comme par exemple l'écriture de ces documents.

Copyright © 1998, Mark Nielsen - Adaptation française de Pierre Tane


Next Previous Contents