Contenu | Rechercher | Menus

Annonce

Ubuntu-fr vend de superbes t-shirts et de belles clés USB 32Go
Rendez-vous sur la boutique En Vente Libre

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 01/04/2020, à 23:06

kryss972

Executer un script SH dan preseed ubuntu 18

Bonjour

J'ai créer un fichier preseed qui s'execute correctement.
le preseed execute un script paquetinstall.sh qui se trouve sur le cd-rom dans un répertoire scripts ( le chemin /cdrom/scripts/paquetinstall.sh)
voici le contenu du script paquetinstall.sh:

#!/bin/bash

################################
##declarer tableau des paquets##
################################
paquets=(terminator openssh-server )
###############################
##INstallation paquets      ##
###############################
for i in "${paquets[@]}"
 do
    dpkg -s "$i" >/dev/null 2>&1 && {
        echo "$i is installed."
    } || {
            echo "### $i is installing..."
            sudo apt-get install $i -y
    }
done

Dans le preseed j'ai testé les deux manières ci-dessous mais aucunes ne fonctionnent, avez-vous un conseil, une idée ?

# Custom Commands
d-i preseed/late_command string cp /cdrom/scripts/paquetinstall.sh /target/root/paquetinstall.sh \
 && chmod +x /target/root/paquetinstall.sh \
 && /bin/bash /target/root/paquetinstall.sh --preseed-late-command

### Custom Commands for ubiquity
ubiquity ubiquity/success_command string /scripts/paquetinstall.sh
ubiquity ubiquity/success_command string cp /cdrom/scripts/paquetinstall.sh /target/root/paquetinstall.sh \
&& chmod +x /target/root/paquetinstall.sh \
&& /bin/bash /target/root/paquetinstall.sh --ubiquity-success-command

Dernière modification par bruno (Le 05/04/2020, à 08:38)

Hors ligne

#2 Le 05/04/2020, à 01:15

Watael

Re : Executer un script SH dan preseed ubuntu 18

« ça marche pô »
il y a un/des message(s) d'erreur(s) ?

- pourquoi copier le script ?
- d'une manière plus générale : un script appelé par l'interpréteur (par exmple : /bin/bash nomScript) n'a pas à être exécutable.

ainsi :
pas de cp
pas de chmod

il ne reste plus qu'une commande, ça va simplifier le débuggage. smile


Welcome to sHell. · eval is evil.

En ligne

#3 Le 05/04/2020, à 08:42

bruno

Re : Executer un script SH dan preseed ubuntu 18

Modération : déplacement du sujet. La section « Trucs, astuces et scripts utiles » n'était pas appropriée.

Hors ligne

#4 Le 05/04/2020, à 13:59

kryss972

Re : Executer un script SH dan preseed ubuntu 18

Bonjour

Je  n'ai pas de message d'erreur puisque l'installation se poursuit au moyen de mon fichier preseed executer via un PXE.
C'est justement cela qui m'intrigue...
De plus, le script est exécuter in-target donc je ne comprends pas pourquoi il ne s’exécute pas je vais tester votre recommandation avec uniquement la commande suivante dans le preseed :

d-i preseed/late_command string /cdrom/scripts/paquetinstall.sh 

Je reviens vers vous pour retour dès que c'est fait

Dernière modification par kryss972 (Le 05/04/2020, à 18:04)

Hors ligne

#5 Le 05/04/2020, à 14:08

bruno

Re : Executer un script SH dan preseed ubuntu 18

Bonjour,

Deux questions :
- est-ce que l'emplacement (PATH) des commandes dpkg et apt-get est connu au moment ou le script est exécuté ? J'en doute…
- pourquoi et comment va être géré le sudo dans le script ?

Hors ligne

#6 Le 05/04/2020, à 14:33

Watael

Re : Executer un script SH dan preseed ubuntu 18

c'est root qui exécute le script, non ?
alors, le sudo devrais pouvoir "sauter" aussi.


Welcome to sHell. · eval is evil.

En ligne

#7 Le 05/04/2020, à 21:54

kryss972

Re : Executer un script SH dan preseed ubuntu 18

Avec la commande

d-i preseed/late_command string /cdrom/scripts/paquetinstall.sh 

et la modiication du script pour dpkg et apt-get :

#!/bin/bash


################################
##declarer tableau des paquets##
################################

paquets=(terminator)

###############################
##INstallation paquets      ##
###############################

for i in "${paquets[@]}"
 do
    /usr/bin/dpkg -s "$i" >/dev/null 2>&1 && {
        echo "$i is installed."
    } || {
            echo "### $i is installing..."
            /usr/bin/apt-get install $i -y
    }

done

J'ai enfin un code erreur : "127 " :    << commande introuvable >>     problème possible avec $PATH ou erreur de frappe

Cependant, je ne vois pas trop ou cela peut bloquer, je me penche toujours sur le problème, mais n'hésitez pas à me soumettre une piste

Hors ligne

#8 Le 06/04/2020, à 09:47

bruno

Re : Executer un script SH dan preseed ubuntu 18

Tu es dans l'environnement d'installation (chrooté)pas dans un environnement standard, il faut utiliser in-target pour exécuter la commande ans l’environnent d'installation :

d-i preseed/late_command string in-target /cdrom/scripts/paquetinstall.sh 

https://help.ubuntu.com/lts/installatio … pbs05.html

Maintenant je ne vois pas la nécessité d'un tel script puisque pour installer des paquets supllémentaire, il suffit de le préciser dans le fichier preseed.cfg:

d-i pkgsel/include string openssh-server terminator

https://help.ubuntu.com/lts/installatio … pbs04.html

Hors ligne