[SCRIPT] pour une arch parfaite: le archSCRIPT

Autres projets et contributions
Avatar de l’utilisateur
BadPotato
archer
Messages : 127
Inscription : dim. 26 août 2007, 19:57
Localisation : Canada - Québec

[SCRIPT] pour une arch parfaite: le archSCRIPT

Message par BadPotato »

Bonjour à tous,

Il y à quelques temps.. j'ai tester blfs (beyond linux from scratch) et je vous cache pas que c'est super long compiler chaque truc

mais après un moment, j'ai pu décourvrir les fabuleux ALFS, des instalateurs automatiques, qui t'installe tout ton systhème à partitr de script

j'ai fait une installe avec un script et un autre à la main, et quand je buggais, je regardais le script, pour comprendre tout de suite après

mais par après, ça commençais a être long et chiant et j'ai un peu décrocher (temporairement)

cependant, j'ai entre autre compris, qu'une distro ce distingue vraiment avant tout par son package manager! 8) (donc vive pacman)

toutefois, je me suis dit... pourquoi pas faire un automated installer avec arch linux

l'intéret ? :

et bien que je sache, c'est KISS, hyper portable(on peut l'installer de n'importe quelques distro qui à les outils GNU de base, ainsi que que wget)

je compte aussi le customiser à fond... le wifi sera déjà mit installer et na manquera qu'à mettre le wifi.

Il aura plein de petits WM(du genre ceux qui pèse une plume) qui seront déjà installer par défaut. (je pense pas que ça dérangerais le monde et les utilisateurs découvront qu'il à pas juste gnome et kde dans la vie)

De plus, toujours en temps et lieux, j'aimerais faire un site(ou programme) où l'utilisateur aura juste à mettre ça config d'ordinateur et il pourra setter toute ses options de kernels de façon hyper user friendly et pourra intégrer ça au script (mais ça.. ça sera pas avant un moment, hein ^_^")

Au début, il aura un gros index avec plein de commentaire en explications, un espace où on met toutes nos variables personnelles.

À la base, le script va installer les packages de base du fichier txt sur le site officiel, mais par après il installera tout vos petit programme que vous aurez spécifier au début du script



...

bref, ça serait que du bon :D

imaginer, en peu prêt deux heures, tout votres systhème sera déjà là

en même temps, je me disais, que si on repartirais le script au moins une fois par semaine, ça permettrais de voir que tout fonctionne bien chez arch!

spécification technique: l'install sera fera par ftp en chroot à partir d'une autre distro, où le partionnement est déjà pret

... pour le moment y'a que le systhème de base que j'ai fait sur le script, mais je voulais vous montrer, le travail que j'ai fait pour le moment:

*mise à jour plus bas*[/code]

c'est clair que le code est pas super optimiser, mais je veux qu'il soit clair pour un utilisateur moyen (dont moi)

si le projet fonctionne bien, j'aimerais aussi que même des nooby puisse le faire fonctionner(quoi de mieux qu'étudier un code source dans le monde de l'open source pour apprendre! )

Biensûr, il pourra en temps et lieux avoir plein de variante du script, certain serait optimiser pour les machines ultra light, d'autres pour kde, etc...

mais évidamment, je suis loins d'être rendu là.. et je pense pas y arriver tout seul, non plus donc..


même que je peux vous dire que j'ai un gros problème à setter le locale.gen et j'ai des connaissances limiter :D


merci d'avance !

ps: je me suis inspirer un peu de l'install en chroot pour le wiki, bien qu'il est certain truc qui ne fonctionne plus à présent ;)
Dernière modification par BadPotato le mer. 12 mars 2008, 16:02, modifié 1 fois.
Avatar de l’utilisateur
BadPotato
archer
Messages : 127
Inscription : dim. 26 août 2007, 19:57
Localisation : Canada - Québec

Message par BadPotato »

bonjour à tous,

quelqu'un m'a aider à arranger le problème du locale.gen et quelques autres trucs ont été arranger depuis la dernière version...

enfin, je vais vous dire ce qu'il comprend jusqu'à maintenant:

Le archSCRIPT-0.2.sh se base sur le principe des ALFS et installe un systhème déjà customiser à l'avance, où l'utilisateur n'a qu'à changer certaine valleurs de variable du script et tout est mit dans la boite :)

Pour éxcuter ce script vous devez disposer d'un systhème ayant les principaux utilitaires de GNU, wget ainsi que les dépendances de pacman... (soit gcc-libs, libarchive>=2.4.11, libdownload>=1.3)

Ensuite vous devez faire une partition de plus ou moins 1 gig (évidamment, je conseille de mettre plus)

Après vous devez étudier ce code et les mettres les variables, selon les spécification des commentaires (pas complet)

ensuite mettez vous dans le même répertoire que le script et éxcuter le

Code : Tout sélectionner

sh archSCRIPT-0.2.sh
============================

comment fonctionne le script?

en fait, tout comme le wiki du chroot sur archlinux.fr, on installe pacman dans /tmp de façon "temporaire" et on lui dit d'installer tout notre systhème dans la fameuse variable de $SOURCELOCATION

Après on configure notre pacman.conf, rc.conf, fstab, menu.lst, locale.gen, puis on chroot... c'est aussi simple que ça.


voici la version 0.2

Code : Tout sélectionner

#!/bin/sh

# Dernière édition: 11 mars 2008
# VersionID: archSCRIPT v 0.2 (Ogry)
# Info supplémentaire: Systhème de base seulement

# archSCRIPT v0.1 - Un installateur automatique d'Arch Linux (version loins d'être terminé)
# Copyright (C) 2008   Antoine Gervais  (antogerva[a]gmail.com)
# 
#
##
# Tout d'abord, ceci est un logiciel libre et de ce fait vous pouvez
# le configurer comme cela vous chante en accord avec les therme de la
# GNU, General Public License, tel que stipuler par la troisième version
# de la Free Software Foundation ou encore a une version à venir. Vous
# devrez avoir avoir une copie de la GNU General Public License qui
# vient avec ce programme, si ce n'est pas vous pouvez l'obtenir
# à cette page <http://www.gnu.org/licenses/>.
##
#
########
# Note : Si ce programme est distribué sous license GPL... ce n'est pas
# pour rien ! Je vous recommande grandement de regarder attentivement le
# code source de ce script et d'y apporter vos propre
# config/personalisation ;-)
#
# Ce sript est à la base optimiser pour les canadiens français, mais vous
# pouvez faire une configuration propre à vous et le redistribuer sous
# un autre nom en indiquant qu'il est basé sur celui-ci.
# 
########---------------------------------------------------------------########








########---------------------------------------------------------------########


# -- Index --

#  Configuration du vrai pacman.conf..................................ligne 
#  Configurartion du fstab............................................ligne
#  Configuration du menu.lst (de grub)................................ligne
#  Configuration du rc.conf


########---------------------------------------------------------------########

#
#
#
#
#
#

############
#Bonjour à vous, cher utilisateur de ce script,
#
# Donc, si vous lisez présentement ce texte, je peux lire en vous à peu près trois
# de personnes, soit vous êtes le fameux guru du forums, qui ne rate jamais une
# une occasions de s'instruire... ou vous encore un de ces nooby qui à poser une 
# question stupide l'autre.... ou encre un mélange des deux ;D
#
# Bref, quelques soit les raisons d'utilisation de ce scripte, sachez que chaque
# partie du fichier est largement documenter, pour vous donner au moins une idée
# de ce que fait tel commande.
#
# D'ailleur, si vous êtes nouveau depuis peu, dans le monde de Linux, il se peut
# que vous trouvez cette méthode d'installaion par script un peu primitive...
# mais détrompez-vous, non seulement vous obtiendrez un systhème aux
# moins 4 fois plus rapide qu'Ubuntu ainsi que grandement simiaire à celle de
# Gentoo, mais en plus, vous aurez un très bon avant goût de comment fonctionne
# un systhème Linux et dite vous aussi, que dans l'univers de l'open-source ça
# serait stupide de faire uniquement du clique bouton, alors que vous avez un 
# merveilleux a étudier devant vos yeux ;-)
#
#
###########


# J'imagine que vos partitions et tout et tout son déjà aménager pour acceuillir
# votre nouveau systhème

# cfdisk

function SETTINGS()
{
  

    # c'est sur cette variable que tout votre systhème est installer... donc soyez vigilant ;)
    SOURCELOCATION=/mnt/arch


    # Partition info

    SWAPPART=/dev/hda5

    FilesSysthem=/dev/hda6
TypeFilesSysthem=reiseirfs

    Home=$FilesSysthem
TypeHOME=$TypeFilesSysthem

########---Experts---#######
#TypeBOOT=
#
#    USR=$FilesSysthem
#TypeUSR=
#
#    PROC=$FilesSysthem
#TypePROC=
#
#    DEV=$FilesSysthem
#TypeDEV=  
#
#    SYS=$FilesSysthem
#TypeSYS=
#
#    BIN=$FilesSysthem
#TypeBIN=
#
#    SBIN=$FilesSy
#TypeSBIN=
#
#    TMP=$FilesSysthem
#TypeTMP=
#
#    OPT=$FilesSysthem
#TypeOPT=
#
#    VAR=$FilesSysthem
#TypeVAR=
#
#    MEDIA=$FilesSysthem
#TypeMEDIA=
#
#    MNT=
#TypeMNT=
#
###########################

                 ###=--=######=--=###         ##
                 # !Option du Grub! #       ####
                 #  --------------  #     ######
##################                  #  ####################
                   GRUB_ROOT=hd0,9  ###########################
                   GRUB_SETUP=hd0   #  #############################
##################                  #     ######  
                 #                  #       ####
                 ###=--=######=--=###         ##

 # Information Général


  ScriptName=archSCRIPT-0.1.sh




  # Localisation info
  ZONEINFO=America/Montreal
  LOCALE=fr_CA                                      
  HARDWARECLOCK=localtime                                               
  TIMEZONE=America/Montreal                                          
  KEYMAP=cf
  CONSOLEFONT=lat9w-16
  CONSOLEMAP=8859-15
  UTC=-4

  # Networking info
  HOSTNAME=rorqual
  DOMAINNAME=
  FQDN=
  IPPREFIX=24
  IPADRESS=192.168.1.169
  GATEWAY=192.168.1.1
  DNS1=192.168.1.1
  DNS2=192.168.1.1
  IPBROADCAST=192.168.1.255


  # À venir, votre propre configuration du kernel
  #
  KERNELCONFIGMIRROR=http://www.mywebsite/kernel/.config



############---Configuration de vos Packages---##############
#
#Il vous suffit simplement de décommenter les lignes qui vous
#intéresse, pour qu'elle soivent installer.


  WindowsManagerPackage=""

  CompizPackage=""
  
  GnomePackage=""

  KdemodPackage=""

  Xfce4Package=""

  PackagePerso=""

}
SETTINGS

# ici j'appèlle le nom de la variale le execPATH
# car c'est là que l'on se trouve au tout, quand on démarre le script
# en présumant que vous êtes au même endroit quand le script à son
# exécution... ça sera un truc qu'il faudra que j'arrange pour qu'on
# puisse le démarrer de n'importe où.

execPATH=$(pwd)

# Maintenant notre systhème temporaire(pacman) sera mit sur /tmp
# le temps qu'on installe nos là base de arch ...

mkdir -pv "$SOURCELOCATION/tmp" "$SOURCELOCATION/etc"
cd "$SOURCELOCATION/tmp"
echo "bien, pour commencer on va installer quelques fichier temporaire dans:" ; pwd 

wget  ftp://ftp.archlinux.org/core/os/i686/pacman-3.*
tar zxvf pacman*.pkg.tar.gz
sed -i 's| /etc/pacman.d|'"$SOURCELOCATION"'/tmp/etc/pacman.d|' "$SOURCELOCATION"/tmp/etc/pacman.conf


##
## Inutile pour le moment de disposer de la liste des packages de base
##
#wget ftp://ftp.archlinux.org/core/os/i686/packages.txt
#grep '^base/' packages.txt | sed -r 's|^base/(.*)-[^-]*-[^-]*-[^-]*\.pkg.tar.*|\1|' | xargs echo -n "" > basepackages.txt
#programme_de_base=$(cat basepackages.txt)
##




pacman()
{
 (echo "# /etc/pacman.conf"                                                        &&
  echo "#"                                                                         &&
  echo "# See the pacman manpage for option directives"                            &&
  echo "#"                                                                         &&
  echo "# GENERAL OPTIONS"                                                         &&
  echo ""                                                                          &&
  echo "[options]"                                                                 &&
  echo "# The following paths are commented out with their default values listed." &&
  echo "# If you wish to use different paths, uncomment and update the paths."     &&
  echo ""                                                                          &&
  echo "#RootDir     = /"                                                          &&
  echo "DBPath      = $SOURCELOCATION/var/lib/pacman/"                             &&
  echo "CacheDir    = $SOURCELOCATION/var/cache/pacman/pkg/"                       &&
  echo "LogFile     = $SOURCELOCATION/var/log/pacman.log"                          &&
  echo "HoldPkg     = pacman glibc"                                                &&
  echo "#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u"                    &&
  echo ""                                                                          &&
  echo ""                                                                          &&
  echo "#"                                                                         &&
  echo "# REPOSITORIES"                                                            &&
  echo "# - can be defined here or included from another file"                     &&
  echo "# - pacman will search repositories in the order defined here"             &&
  echo "# - local/custom mirrors can be added here or in separate files"           &&
  echo "# - repositories listed first will take precedence when packages"          &&
  echo "#   have identical names, regardless of version"                           &&
  echo ""                                                                          &&
  echo "# Repository entries are of the format:"                                   &&
  echo "#       [repo-name]"                                                       &&
  echo "#       Server = ServerName"                                               &&
  echo "#       Include = IncludePath"                                             &&
  echo ""                                                                          &&
  echo "# The header [repo-name] is crucial - it must be present and"              &&
  echo "# uncommented to enable the repo."                                         &&
  echo ""                                                                          &&
  echo ""                                                                          &&
  echo "########################"                                                  &&
  echo ""                                                                          &&
  echo "[current]"                                                                 &&
  echo "# Add your preferred servers here, they will be used first"                &&
  echo "#Include = /etc/pacman.d/current"                                          &&
  echo "Server = ftp://ftp.archlinux.org/current/os/i686"                          &&
  echo ""                                                                          &&
  echo ""                                                                          &&
  echo "[core]"                                                                    &&
  echo "# Add your preferred servers here, they will be used first"                &&
  echo "Server = ftp://ftp.archlinux.org/core/os/i686"                             &&
  echo ""                                                                          &&
  echo "[extra]"                                                                   &&
  echo "# Add your preferred servers here, they will be used first"                &&
  echo "#Include = /etc/pacman.d/extra"                                            &&
  echo "Server = ftp://ftp.archlinux.org/extra/os/i686"                            &&
  echo ""                                                                          &&
  echo ""                                                                          &&
  echo "[community]"                                                               &&
  echo "# Add your preferred servers here, they will be used first"                &&
  echo "#Include = /etc/pacman.d/community"                                        &&
  echo "Server = ftp://ftp.archlinux.org/community/os/i686"                        &&
  echo ""                                                                          &&
  echo ""                                                                          &&
  echo "[kdemod]"                                                                  &&
  echo "Server = http://kdemod.ath.cx/repo/current/i686"                           &&
  echo ""                                                                          &&
  echo ""                                                                          &&
  echo "[archlinuxfr]"                                                             &&
  echo "Server = http://repo.archlinux.fr/i686"                                    &&
  echo ""                                                                          &&
  echo ""                                                                          &&
  echo "#[unstable]"                                                               &&
  echo "# Add your preferred servers here, they will be used first"                &&
  echo "#Include = /etc/pacman.d/unstable"                                         &&
  echo "# An example of a custom package repository.  See the pacman manpage for"  &&
  echo "# tips on creating your own repositories."                                 &&
  echo "#[custom]"                                                                 &&
  echo "#Server = file:///home/custompkgs"                                         &&
  echo ""                                                                          &&
  echo "# End /etc/pacman.conf"                                                    &&
  echo ""                                                                          &&
  echo "") > "$SOURCELOCATION/tmp/etc/pacman.conf"
}
pacman




rconfig()
{
 (echo "# /etc/rc.conf - Main Configuration for Arch Linux"                        &&
  echo ""                                                                          &&
  echo ""                                                                          &&
  echo ""                                                                          &&
  echo ""                                                                          &&
  echo "# -----------------------------------------------------------------------" &&
  echo "# LOCALIZATION"                                                            &&
  echo "# -----------------------------------------------------------------------" &&
  echo ""                                                                          &&
  echo ""                                                                          &&
  echo ""                                                                          &&
  echo "# LOCALE: available languages can be listed with the "locale -a" command"  &&
  echo "# HARDWARECLOCK: set to "UTC" or "localtime""                              &&
  echo "# TIMEZONE: timezones are found in /usr/share/zoneinfo"                    &&
  echo "# KEYMAP: keymaps are found in /usr/share/kbd/keymaps"                     &&
  echo "# CONSOLEFONT: found in /usr/share/kbd/consolefonts"                       &&
  echo "# CONSOLEMAP: found in /usr/share/kbd/consoletrans"                        &&
  echo "# USECOLOR: use ANSI color sequences in startup messages"                  &&
  echo ""                                                                          &&
  echo ""                                                                          &&
  echo ""                                                                          &&
  echo "LOCALE="$LOCALE.utf8""                                                     &&
  echo "HARDWARECLOCK="$HARDWARECLOCK""                                            &&
  echo "TIMEZONE="$TIMEZONE""                                                      &&
  echo "KEYMAP="$KEYMAP""                                                          &&
  echo "CONSOLEFONT="lat9w-16""                                                    &&
  echo "CONSOLEMAP="8859-15""                                                      &&
  echo "USECOLOR="yes""                                                            &&
  echo ""                                                                          &&
  echo "# -----------------------------------------------------------------------" &&
  echo "# HARDWARE"                                                                &&
  echo "# -----------------------------------------------------------------------" &&
  echo ""                                                                          &&
  echo ""                                                                          &&
  echo "# Module Blacklist - modules in this list will never be loaded by udev"    &&
  echo ""                                                                          &&
  echo "MOD_AUTOLOAD="yes""                                                        &&
  echo "# Module Blacklist - modules in this list will never be loaded by udev"    &&
  echo "# Example: MOD_BLACKLIST=(fglrx)"                                          &&
  echo "MOD_BLACKLIST=()"                                                          &&
  echo "# Modules to load at boot-up (in this order)"                              &&
  echo "# - prefix a module with a ! to blacklist it"                              &&
  echo "# Example: MODULES=(fuse reiserfs ipw2200  battery fan svgalib radeon)"    &&
  echo "MODULES=()"                                                                &&
  echo ""                                                                          &&
  echo ""                                                                          &&
  echo "# Scan for LVM volume groups at startup, required if you use LVM"          &&
  echo "USELVM="no""                                                               &&
  echo ""                                                                          &&
  echo "# -----------------------------------------------------------------------" &&
  echo "# NETWORKING"                                                              &&
  echo "# -----------------------------------------------------------------------" &&
  echo ""                                                                          &&
  echo ""                                                                          &&
  echo "HOSTNAME="rorqual""                                                        &&
  echo "# Use "ifconfig -a" or "ls /sys/class/net/" to see all available"          &&
  echo "# interfaces."                                                             &&
  echo ""                                                                          &&
  echo "# Interfaces to start at boot-up (in this order)"                          &&
  echo "# Declare each interface then list in INTERFACES"                          &&
  echo ""                                                                          &&
  echo "#   - prefix an entry in INTERFACES with a ! to disable it"                &&
  echo "#   - no hyphens in your interface names - Bash doesn't like it"           &&
  echo ""                                                                          &&
  echo "# Note: to use DHCP, set your interface to be "dhcp" (eth0="dhcp")"        &&
  echo "# Don't use this for wireless interfaces, see network profiles below"      &&
  echo ""                                                                          &&
  echo "eth0="dhcp""                                                               &&
  echo "INTERFACES=(eth0 eth1 !wlan0)"                                             &&
  echo "lo="lo 127.0.0.1""                                                         &&
  echo ""                                                                          &&
  echo ""                                                                          &&
  echo "#eth0="eth0 192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255""    &&
  echo "#wlan0="dhcp""                                                             &&
  echo "#wlan_wlan0="wlan0 mode auto key s:xxxxxxxxxxxxxxxxxxx essid myessid""     &&
  echo "#eth1="dhcp""                                                              &&
  echo ""                                                                          &&
  echo ""                                                                          &&
  echo ""                                                                          &&
  echo "# Routes to start at boot-up (in this order)"                              &&
  echo "# Declare each route then list in ROUTES"                                  &&
  echo "# - prefix an entry in ROUTES with a ! to disable it"                      &&
  echo "#"                                                                         &&
  echo "# gateway="default gw 192.168.0.1""                                        &&
  echo "# ROUTES=(!gateway)"                                                       &&
  echo ""                                                                          &&
  echo "# Enable these network profiles at boot-up.  These are only useful"        &&
  echo "# if you happen to need multiple network configurations(ie, laptop users)" &&
  echo "# - set to menu to present a menu during boot-up(dialog package required)" &&
  echo "# - prefix an entry with a ! to disable it"                                &&
  echo ""                                                                          &&
  echo "# Network profiles are found in /etc/network-profiles"                     &&
  echo ""                                                                          &&
  echo "# NET_PROFILES=(config_wpa maison)"                                        &&
  echo ""                                                                          &&
  echo ""                                                                          &&
  echo ""                                                                          &&
  echo "# -----------------------------------------------------------------------" &&
  echo "# DAEMONS"                                                                 &&
  echo "# -----------------------------------------------------------------------" &&
  echo ""                                                                          &&
  echo "# Daemons to start at boot-up (in this order)"                             &&
  echo "#   - prefix a daemon with a ! to disable it"                              &&
  echo "#   - prefix a daemon with a @ to start it up in the background"           &&
  echo ""                                                                          &&
  echo "DAEMONS=(@syslog-ng @networkdbusgpm @crond @hal @alsa @wicd fam esd stbd)" &&
  echo ""                                                                          &&
  echo ""                                                                          &&
  echo "# End of file"                                                             &&
  echo ""                                                                          &&
  echo "") > $SOURCELOCATION/etc/rc.conf

}


mkdir -pv "$SOURCELOCATION/var/lib/pacman/"
mkdir -pv "$SOURCELOCATION/root"
mkdir -pv "$SOURCELOCATION/boot/grub"


$SOURCELOCATION/tmp/usr/bin/pacman.static --dbpath "$SOURCELOCATION/var/lib/pacman/" --root "$SOURCELOCATION" --config "$SOURCELOCATION/tmp/etc/pacman.conf" --noconfirm -Sy base  ### $programme_de_base <== (intutille pour le moment)


cat /etc/resolv.conf > "$SOURCELOCATION"/etc/resolv.conf



source /etc/profile



function fstabconfig()
{
 (echo "# Begin /etc/fstab" &&
  echo "                                                                              " &&
  echo "# <file system>  <mount-point>  <type>   <options>             <dump>  <pass> " &&
  echo "#                                                                             " &&
  echo "$SWAPPART        swap           swap     defaults              0       0      " &&
  echo "$FilesSysthem    /              reiserfs defaults              0       1      " && 
  echo "$Home            /home          ext3     defaults              0       0      " &&
  echo "#                                                                             " && 
  echo "#$Boot           /boot          ext2     defaults              0       0      " &&
  echo "#                                                                             " &&
  echo "#none            /proc          proc     defaults              0       0      " &&
  echo "#none            /sys           sysfs    defaults              0       0      " &&
  echo "#                                                                             " &&
  echo "#                                                                             " &&
  echo "# Grâce à /dev/pts on facillite pas mal plus la vie à Xterm & Cie...          " &&
  echo "#                                                                             " &&
  echo "none            /dev/pts        devpts   gid=5,mode=666        0       0      " &&
  echo "/dev/cdrom      /mnt/cdrom      iso9660  ro,user,noauto,unhide 0       0      " &&
  echo "/dev/dvd        /mnt/dvd        udf      ro,user,noauto,unhide 0       0      " &&
  echo "#                                                                             " && 
  echo "#                                                                             " && 
  echo "# End /etc/fstab") > $SOURCELOCATION/etc/fstab
}

function grubconfig()
{
 (echo "# Begin /boot/grub/menu.lst"                                                &&
  echo ""                                                                           &&
  echo "# numlockx ## à vérifier si c'est bien cela pas sur)"                       &&
  echo ""                                                                           &&
  echo "# By default boot the first menu entry."                                    &&
  echo "default 0"                                                                  &&
  echo ""                                                                           &&
  echo "# Allow 30 seconds before booting the default."                             &&
  echo "timeout 10"                                                                 &&
  echo ""                                                                           &&
  echo "# Use prettier colors."                                                     &&
  echo "color light-blue/black light-cyan/blue"                                     &&
  echo ""                                                                           &&
  echo "# The first entry is for LFS."                                              &&
  echo "title LFS 6.3"                                                              &&
  echo "root ($GRUB_ROOT)"                                                          &&
  echo "kernel  /boot/vmlinuz26 root=/dev/$FilesSysthem vga=790 ro"                 &&
  echo "initrd /boot/kernel26.img"                                                  &&
  echo ""                                                                           &&
  echo ""                                                                           &&
  echo ""                                                                           &&
  echo ""                                                                           &&
  echo ""                                                                           &&
  echo ""                                                                           &&
  echo "") > $SOURCELOCATION/boot/grub/menu.lst
}

# Avec les commandes qui suivent, notre rc.conf, fstab et notre menu.lst vont se créer.
rconfig
fstabconfig
grubconfig


# nouveau /etc/pacman.conf ==> configurer le comme vous le vouler :)

cat > $SOURCELOCATION/etc/pacman.conf << "EOF"
# /etc/pacman.conf
# ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# See the pacman manpage for option directives

#
# GENERAL OPTIONS
#
[options]
# The following paths are commented out with their default values listed.
# If you wish to use different paths, uncomment and update the paths.
#RootDir     = /
#DBPath      = /var/lib/pacman/
#CacheDir    = /var/cache/pacman/pkg/
#LogFile     = /var/log/pacman.log
HoldPkg     = pacman glibc
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u

#
# REPOSITORIES
#   - can be defined here or included from another file
#   - pacman will search repositories in the order defined here
#   - local/custom mirrors can be added here or in separate files
#   - repositories listed first will take precedence when packages
#     have identical names, regardless of version number
#
# Repository entries are of the format:
#       [repo-name]
#       Server = ServerName
#       Include = IncludePath
#
# The header [repo-name] is crucial - it must be present and
# uncommented to enable the repo.
#

[current]
# Add your preferred servers here, they will be used first
#Include = /etc/pacman.d/current
Server = ftp://ftp.archlinux.org/current/os/i686

[core]
Server = ftp://ftp.archlinux.org/core/os/i686


[extra]
# Add your preferred servers here, they will be used first
#Include = /etc/pacman.d/extra
Server = ftp://ftp.archlinux.org/extra/os/i686

[community]
# Add your preferred servers here, they will be used first
#Include = /etc/pacman.d/community
Server = ftp://ftp.archlinux.org/community/os/i686

[kdemod]
Server = http://kdemod.ath.cx/repo/current/i686

[archlinuxfr]
Server = http://repo.archlinux.fr/i686

[svn]
Server = http://cvs.archlinux.org 


#[compiz-fusion]
#Server = http://arch.nesl247.org/compiz-fusion/i686

#[unstable]
# Add your preferred servers here, they will be used first
#Include = /etc/pacman.d/unstable

# An example of a custom package repository.  See the pacman manpage for
# tips on creating your own repositories.
#[custom]
#Server = file:///home/custompkgs

# ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Fin du /etc/pacman.conf
EOF

# on va modifier notre locale.gen

sed -e "s/#$LOCALE/$LOCALE/" $SOURCELOCATION/etc/locale.gen > $SOURCELOCATION/etc/locale.gen2
mv $SOURCELOCATION/etc/locale.gen $SOURCELOCATION/etc/locale.gen.old
mv $SOURCELOCATION/etc/locale.gen2 $SOURCELOCATION/etc/locale.gen


# ici on doit copier le script dans notre nouveau systhème, pour qu'il puisse continuer une fois en chroot
cp $execPATH/$ScriptName $SOURCELOCATION/root/$ScriptName


# la voie semble être libre... chrootons!

chroot "$SOURCELOCATION" \
/bin/bash --login +h /root/$ScriptName grubinstall # le archSCRIPT sera ainsi redémarrer à la fonction grubinstall

## On va mettre grub sur le mbr
function grubinstall()
{
grub --batch <<EOF
root ($GRUB_ROOT) 
setup ($GRUB_SETUP)
quit
EOF
}

locale-gen

pacman -S yaourt


# clochette :)

echo -e "\a"
echo -e "\a"
echo -e "\a"
echo -e "\a"
echo -e "\a"

Si vous avez des commentaires, critiques, menace de mort, allez y lousse :D

edith: finallement fausse réjouissance, je tapponne depuis trois heure a essayer de continuer le script apres le chroot, quelqu'un à une soluce?
Avatar de l’utilisateur
marc[i1]
Maître du Kyudo
Messages : 1753
Inscription : ven. 27 oct. 2006, 10:48
Localisation : Nantes (44)

Message par marc[i1] »

j'ai pas encore tout lu sur ton script mais beau boulot.
Reste à réinstaller nos Arch pour en profiter ! :D
Ne vous emmerdez plus, emmerdez les autres.
Avatar de l’utilisateur
BadPotato
archer
Messages : 127
Inscription : dim. 26 août 2007, 19:57
Localisation : Canada - Québec

Message par BadPotato »

Bonjour,

je reup le topic, bien que je n'ai pas encore finit le script(mais le systhème de base s'installe impecablement), pour vous montrer de quoi il a l'air maintenant:

==> http://fr.pastebin.ca/1017671
(il a pas mal de cochenerie ici et là dans les commentaire et un peu partout... mais je crois que c'est toujours lisible)


de plus, dès que le code sera plus propre, je me suis dit, qu'il pourrait être bien d'en parler dans un wiki ou simplement mentionné, qu'il existe ce type procéder dans la laborieuse install en chroot

sinon, bientôt.. je compte aussi faire une version user friendly sous le programme dialog... (ça ressemble à ça), mais ça sa reste à voir :) )
Avatar de l’utilisateur
marc[i1]
Maître du Kyudo
Messages : 1753
Inscription : ven. 27 oct. 2006, 10:48
Localisation : Nantes (44)

Message par marc[i1] »

Je te conseil de créer une page sur le wiki pour ton script, avec des warning partout :D

Par contre, je pense tu gagnerais en lisibilité sur tu le mettais sur SVN/Git/Mercurial/...
Ne vous emmerdez plus, emmerdez les autres.
Avatar de l’utilisateur
wain
Maître du Kyudo
Messages : 1854
Inscription : ven. 11 août 2006, 19:15
Localisation : Nancy (54)

Message par wain »

marc[i1] a écrit :Je te conseil de créer une page sur le wiki pour ton script, avec des warning partout :D

Par contre, je pense tu gagnerais en lisibilité sur tu le mettais sur SVN/Git/Mercurial/...
Je plussoie. BadPotato, si tu veux, on peut te créer un projet sur http://gitweb.archlinux.fr. Nous pourrions ainsi t'envoyer des patchs par email pour que tu les intègre. Si un gros contributeur devient quasi co-auteur, tu peux l'autoriser ensuite à apporter directement la modif dessus.
Avatar de l’utilisateur
BadPotato
archer
Messages : 127
Inscription : dim. 26 août 2007, 19:57
Localisation : Canada - Québec

Message par BadPotato »

merci, je viens d'aller lire ce qu'est un gestionnaire de code source sur wikipedia... et je crois qu'on aurait tout à gagner, en permetant aux autres de faires leurs propre patch!

donc, je suis d'accord pour le mettre sur votre serveur... mais il me faudra un petit moment pour comprendre le fonctionnement de GIT !

je ferai aussi wiki dans les prochain jours, qui explique le fonctionnement d'une install par script (en tant qu'install alternative) et ce à quoi les gens doivent pensé à mettre dans le script(je monterai mon script à titre d'exemple)

edith: autre chose... si je met le script sur votre GIT... j'imagine qu'il sera mieux que je met les commentaires et tout en anglais?

merci
Avatar de l’utilisateur
wain
Maître du Kyudo
Messages : 1854
Inscription : ven. 11 août 2006, 19:15
Localisation : Nancy (54)

Message par wain »

A toi de voir pour la langue. On peut très bien le garder en français dans un premier temps si ça peut faciliter. Ou alors, mieux vaut partir sur une solution multilingue avec gettext par exemple dès le début (je regrette parfois de ne pas l'avoir fait pour yaourt).
Commences à te familiariser avec git en local (git n'as pas besoin de serveur, c'est ce qui fait sa force). Lorsque tu aura créé une branche et réalisé ton premier commit, envois-moi le tout par mail, je créerai le dépôt sur http://projets.archlinux.fr/ pour que les autres puissent cloner et te proposer des patchs.
Répondre