[Script] Auto Install Basic
-
- newbie
- Messages : 3
- Inscription : dim. 12 mars 2017, 18:26
[Script] Auto Install Basic
Bonjour à tous.
J'ai fait un petit script pour installer automatiquement Arch.
Le lien: https://github.com/Troispoils/ArchInstallSH
J'aurais voulu avoir des avis et un moyen pour améliorer ma fonction "format".
L'utilisation est très simple: bash install.sh nom_machine taille_swap dossier_/ password
Merci à tous.
Troispoils.
J'ai fait un petit script pour installer automatiquement Arch.
Le lien: https://github.com/Troispoils/ArchInstallSH
J'aurais voulu avoir des avis et un moyen pour améliorer ma fonction "format".
L'utilisation est très simple: bash install.sh nom_machine taille_swap dossier_/ password
Merci à tous.
Troispoils.
Re: [Script] Auto Install Basic
salut,
mettre
Tu n'as donc pas testé ton script, sinon tu t'en serais rendu compte.
mettre
function
et ()
est un pléonasme.<
n'est pas un opérateur de comparaison arithmétique mais lexical, et a besoin d'être protégé.Tu n'as donc pas testé ton script, sinon tu t'en serais rendu compte.
-
- newbie
- Messages : 3
- Inscription : dim. 12 mars 2017, 18:26
Re: [Script] Auto Install Basic
Ha oui merci, il est vrai que je n'ai même pas pensé à essayer les comparaisons. Je vais corriger çà.
- Xorg
- Maître du Kyudo
- Messages : 1933
- Inscription : dim. 22 janv. 2012, 19:25
- Localisation : Entre le clavier et la chaise.
Re: [Script] Auto Install Basic
Je ne comprends pas vraiment ton objectif à travers ce script. Est-ce pour un usage uniquement personnel ou bien ton but c'est de le redistribuer ?
À première vue, ton script est très spécifique, donc je penche pour la première réponse. Un /boot séparé et en Ext2 en 2018, quel intérêt ?
Pour ta fonction
Je te conseille plutôt un autre utilitaire comme
Diverses petits choses, notamment :
Tu peux utiliser reflector par exemple pour trier les miroirs.
Sinon, je n'ai rien contre ta commande, mais tu te compliques la vie à échapper des caractères quand il y a plus simple, comme
Ensuite, là-dessus :
Je ne suis pas certain de la réussite : tu vas exécuter la commande
Tu appelles deux fois la commande
Et enfin...
Pour être honnête avec toi, ça se voit que tu essentiellement fait des copiers-collers depuis le wiki. Dans ce genre de script, n'hésite pas à faire les choses un peu autrement, du moment que tu respectes un certain ordre, c'est bon.
À première vue, ton script est très spécifique, donc je penche pour la première réponse. Un /boot séparé et en Ext2 en 2018, quel intérêt ?
Pour ta fonction
format()
, c'est assez laid avec fdisk
, je t'avoue que je ne sais pas du tout ce que tu cherches à faire et il est très vite aisé d'introduire des erreurs avec ce genre de choses (il suffit d'un caractère manquant ou en trop pour que ça parte en cacahuète et que ça finisse en grand n'importe quoi).Je te conseille plutôt un autre utilitaire comme
parted
, car il accepte des arguments, et ça deviendra beaucoup plus lisible. Exemple : parted /dev/sda mkpart part-type [fs-type] start end
Code : Tout sélectionner
debut=1
format() {
type=$1
taille=$2
fin=$((debut+taille))
parted /dev/sda mkpart primary $type ${debut}MiB ${fin}MiB
debut=$fin
}
# Exemples d'utilisation
format ext2 150
format ext4 30000
echo "Server = http://archlinux.mirror.pkern.at/\$repo/os/\$arch" > /etc/pacman.d/mirrorlist
. Et si archlinux.mirror.pkern.at est down, tu fais comment ?Tu peux utiliser reflector par exemple pour trier les miroirs.
Sinon, je n'ai rien contre ta commande, mais tu te compliques la vie à échapper des caractères quand il y a plus simple, comme
echo 'Server = http://archlinux.mirror.pkern.at/$repo/os/$arch'
... Ensuite, là-dessus :
Code : Tout sélectionner
passwd
$MDPROOT
$MDPROOT
passwd
, mais le MDP ne va pas être redirigé dedans. Limite, tu as meilleur compte à ne pas définir de mot de passe durant l'installation (si tu ne veux pas qu'il soit en clair), et à le définir toi-même après le premier boot, à voir. C'est possible avec passwd -d utilisateur
.Tu appelles deux fois la commande
pacstrap
alors qu'il est possible de l'appeler qu'une seule fois. Pourquoi ?Et enfin...
echo "fr_FR.UTF-8 UTF-8" >> /etc/locale.gen
. «Pourquoi, Monsieur Anderson ?» Tu n'es pas obligé de faire ça dans le chroot, un echo "fr_FR.UTF-8 UTF-8" >> /mnt/etc/locale.gen
en dehors du chroot fonctionne tout aussi bien.Pour être honnête avec toi, ça se voit que tu essentiellement fait des copiers-collers depuis le wiki. Dans ce genre de script, n'hésite pas à faire les choses un peu autrement, du moment que tu respectes un certain ordre, c'est bon.
-
- newbie
- Messages : 3
- Inscription : dim. 12 mars 2017, 18:26
Re: [Script] Auto Install Basic
Bonsoir Xorg,
Merci pour ta réponse complète.
Je confirme que c'est pour le moment un usage uniquement personnel et un moyen d’apprendre le "shell".
Je suis aussi novice sur Linux voila pour quoi j'ai copié pas mal de ligne du guide d'installation.
Pour ext2, je me suis fier au wiki, je croyais que c’était obligatoire.
Pour le "mirrorlist" j'ai eu quelques problèmes de débit alors j'ai fait un choix draconien, j'avoue ne pas avoir pensé qu'il pourrait être down. xD
Je vais me pencher sur "reflector", merci.
Pour le password, je ne savais pas que l'on pouvait le rentrer après l'installation.
Je ne sais pas pour quoi j'ai mis deux fois "pacstrap", et je ne comprends pas très bien l'intérêt du "Chroot".
Merci pour la solution avec "parted", je trouvais aussi mon code instable pour le partitionnement (il plantait souvent).
Cordialement Troispoils
Merci pour ta réponse complète.
Je confirme que c'est pour le moment un usage uniquement personnel et un moyen d’apprendre le "shell".
Je suis aussi novice sur Linux voila pour quoi j'ai copié pas mal de ligne du guide d'installation.
Pour ext2, je me suis fier au wiki, je croyais que c’était obligatoire.
Pour le "mirrorlist" j'ai eu quelques problèmes de débit alors j'ai fait un choix draconien, j'avoue ne pas avoir pensé qu'il pourrait être down. xD
Je vais me pencher sur "reflector", merci.
Pour le password, je ne savais pas que l'on pouvait le rentrer après l'installation.
Je ne sais pas pour quoi j'ai mis deux fois "pacstrap", et je ne comprends pas très bien l'intérêt du "Chroot".
Merci pour la solution avec "parted", je trouvais aussi mon code instable pour le partitionnement (il plantait souvent).
Cordialement Troispoils
- FoolEcho
- Maître du Kyudo
- Messages : 10707
- Inscription : dim. 15 août 2010, 11:48
- Localisation : Basse-Normandie
Re: [Script] Auto Install Basic
Salut,
En shell (comme dans tout langage je dirais), si tu veux apprendre, passe par de petites choses simples: comment gèrer les options que je veux passer à un script pour adapter son comportement et ainsi le paramétrer (getopts/case-shift sur les arguments le plus souvent), comment maintenir un code clair (là-dessus je prends ta fonction de formatage à témoin: appeler fdisk en interactif c'est casse-gueule, tu saurais me dire comment ça pourquoi). Comment faire des boucles, des fonctions, rediriger dans des fichiers (temporaires ou pas), inclure des fonctions, gérer les erreurs (retour de commandes), etc..
Faut garder en tête que la puissance du shell réside dans le fait de savoir composer avec toutes ces petites briques.
Après, tu peux avoir des idées de scripts qui t'amèneront à emboîter ces éléments, à en découvrir d'autres (les cas les plus c...: parcourir une arborescence en vue d'y faire des opérations: liste/copie/renommage de fichiers: beaucoup de choses existent déjà mais vu que chacun peut avoir son propre bazar, ça vaut justement le coup: une fois sorti de mon cas, mon script va-t-il coller aux autres ? -- même s'il faut plutôt raisonner dans l'autre sens)... Ce sera plus formateur qu'un installateur (qui serait moins dangereux par exemple en mode "echo").
Tu n'apprendras pas grand-chose du shell par ce biais. Je m'explique: via la procédure d'installation d'Arch, tu vas te contenter d'enchaîner des commandes plus ou moins comprises dans ton script. Rien de sensationnel là-dedans... en dehors des risques que ça apporte puisque c'est dur à vraiment tester (tout au plus tu auras vu comment créer un script shell avec shebang, le rendre exécutable, etc. ; donc pas besoin de faire quelque d'aussi complexe qu'un installateur... d'autant que si tu veux en faire un vrai installateur, pour le coup, ça peut devenir très/trop complexe pour se lancer).Troispoils a écrit : ↑mer. 07 févr. 2018, 22:28 Je confirme que c'est pour le moment un usage uniquement personnel et un moyen d’apprendre le "shell".
Je suis aussi novice sur Linux voila pour quoi j'ai copié pas mal de ligne du guide d'installation.
En shell (comme dans tout langage je dirais), si tu veux apprendre, passe par de petites choses simples: comment gèrer les options que je veux passer à un script pour adapter son comportement et ainsi le paramétrer (getopts/case-shift sur les arguments le plus souvent), comment maintenir un code clair (là-dessus je prends ta fonction de formatage à témoin: appeler fdisk en interactif c'est casse-gueule, tu saurais me dire comment ça pourquoi). Comment faire des boucles, des fonctions, rediriger dans des fichiers (temporaires ou pas), inclure des fonctions, gérer les erreurs (retour de commandes), etc..
Faut garder en tête que la puissance du shell réside dans le fait de savoir composer avec toutes ces petites briques.
Après, tu peux avoir des idées de scripts qui t'amèneront à emboîter ces éléments, à en découvrir d'autres (les cas les plus c...: parcourir une arborescence en vue d'y faire des opérations: liste/copie/renommage de fichiers: beaucoup de choses existent déjà mais vu que chacun peut avoir son propre bazar, ça vaut justement le coup: une fois sorti de mon cas, mon script va-t-il coller aux autres ? -- même s'il faut plutôt raisonner dans l'autre sens)... Ce sera plus formateur qu'un installateur (qui serait moins dangereux par exemple en mode "echo").
«The following statement is not true. The previous statement is true.»
- Xorg
- Maître du Kyudo
- Messages : 1933
- Inscription : dim. 22 janv. 2012, 19:25
- Localisation : Entre le clavier et la chaise.
Re: [Script] Auto Install Basic
chroot
est la diminutif de change root. En gros, ça permet d'exécuter une commande à partir d'une autre racine.chroot /mnt /bin/bash
exécute la commande /bin/bash
avec comme racine /mnt, autrement dit, dans ce contexte, tu lances un shell dans ta nouvelle installation. Donc dans le chroot, /mnt deviendra le /.Dès que tu quittes l'environnement chroot, tu retombes dans le shell du Live.