# Script d'auto-installation

**URL:** <https://www.debian-fr.org/t/script-dauto-installation/19488>\
**Category:** Programmation\
**Created:** [Février 20, 2016, 7:23 UTC](https://www.debian-fr.org/t/script-dauto-installation/19488 "2016-02-20T19:23:32Z")\
**Posts on this page:** 19\
**Page:** 1

<div class="post-metadata">

**Author:** ![Mika561](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/919ad9/32.png) [@Mika561](https://www.debian-fr.org/u/Mika561)\
**Post date:** [Février 20, 2016, 7:23 UTC](https://www.debian-fr.org/t/script-dauto-installation/19488/1 "2016-02-20T19:23:32Z")

</div>

Salut,  
Je cherche à faire un script qui installerais automatiquement (entre autre, et pour le moment) Apache, PHP, Mysql.  
J’ai commencé un script bash qui fait un `apt-get install -qqy apache`, mais je sait que c’est pas une bonne solution (et elle marche plutôt mal… :/)

Ayant quelques connaissances en C, j’aimerais votre avis : Bash ou C ?  
Enfaite, je pensait plutôt télécharger les sources et les compiler, plus simple non ?  
Le hic c’est que je ne sait pas extraire en C… 😕

Mika.

Ps : Et puis, bash, bah, il cache pas les lignes que le programme affiche ^^

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 20, 2016, 7:23 UTC](https://www.debian-fr.org/t/script-dauto-installation/19488/2 "2016-02-20T19:23:34Z")

</div>

> [@](#):
>
> Ayant quelques connaissances en C, j’aimerais votre avis : Bash ou C ?

Je dirais perl, python ou C/C++.

> [@](#):
>
> Enfaite, je pensait plutôt télécharger les sources et les compiler, plus simple non ?

Mauvaise solution, l’une des forces de debian c’est APT il faut s’en servir.

Justement pour ça que je parle de ses langages je sais qu’il existe une API pour gérer APT avec ces langages.

---

<div class="post-metadata">

**Author:** ![Grunt](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/g/5f8ce5/32.png) [@Grunt](https://www.debian-fr.org/u/Grunt)\
**Post date:** [Février 20, 2016, 7:23 UTC](https://www.debian-fr.org/t/script-dauto-installation/19488/3 "2016-02-20T19:23:35Z")

</div>

Je dirais: bash, et utilisation des outils existants (aptitude, apt-get, dpkg).  
Lis les man, note les options qui vont bien, et fais ton script: trois lignes, une par paquet. Tu peux rajouter ensuite quelques modifications des fichiers de conf’, selon ton but.

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 20, 2016, 7:23 UTC](https://www.debian-fr.org/t/script-dauto-installation/19488/4 "2016-02-20T19:23:35Z")

</div>

> [@](#):
>
> Ps : Et puis, bash, bah, il cache pas les lignes que le programme affiche ^^

```auto

```

---

<div class="post-metadata">

**Author:** ![Mika561](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/919ad9/32.png) [@Mika561](https://www.debian-fr.org/u/Mika561)\
**Post date:** [Février 20, 2016, 7:23 UTC](https://www.debian-fr.org/t/script-dauto-installation/19488/5 "2016-02-20T19:23:36Z")

</div>

Recoder en C serait utile, mais la gestion des dépendances serait trop dure à gérer (pour moi ^^).

Il est vrai que je n’avais pas pensé à “\>” (et je vais voir de ce coté).

Sinon, y-a-t’il un moyen de vérifier si apt-get s’exécute avec succès ? (ce n’est pas très important hein 😉)

Mika.

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 20, 2016, 7:23 UTC](https://www.debian-fr.org/t/script-dauto-installation/19488/6 "2016-02-20T19:23:37Z")

</div>

> [@](#):
>
> Sinon, y-a-t’il un moyen de vérifier si apt-get s’exécute avec succès ? (ce n’est pas très important hein 😉)

Il renvoie une valeur différente de 0 s’il échoue. Tu peut le voir dans la variable $? juste après avoir exécuter la commande.

---

<div class="post-metadata">

**Author:** ![Mika561](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/919ad9/32.png) [@Mika561](https://www.debian-fr.org/u/Mika561)\
**Post date:** [Février 20, 2016, 7:23 UTC](https://www.debian-fr.org/t/script-dauto-installation/19488/7 "2016-02-20T19:23:37Z")

</div>

La variable $? ou la variable (ex) $apache (que je crée) ?

Mika.

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 20, 2016, 7:23 UTC](https://www.debian-fr.org/t/script-dauto-installation/19488/8 "2016-02-20T19:23:37Z")

</div>

Tu pourrais tester ça serais allé plus vite… :smt002  
(désolé de pas t’en dire plus tout de suite mais si tu veut progresser le mieux est que tu trouve certaines choses par toi même)

---

<div class="post-metadata">

**Author:** ![Mika561](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/919ad9/32.png) [@Mika561](https://www.debian-fr.org/u/Mika561)\
**Post date:** [Février 20, 2016, 7:23 UTC](https://www.debian-fr.org/t/script-dauto-installation/19488/9 "2016-02-20T19:23:37Z")

</div>

Oui, c’est vrai, pas con, j’pense que je vais vite trouver… 😛

Mika.

Ps : Et en PHP, c’est possible ? ![](http://www.type911.org/smileys/jesors.gif)  
Ps2 : Savez-vous (oh, probablement… ^^) s’il existe une sorte d’“interface” graphique qui se lancerais via le réseau, c’est à dire, par exemple, une sorte de VNC qui écoute, et s’il détecte une demande, il lance X avec un gestionnaire de bureau léger ?

Edit : C’est bien $? hein ? 😛  
Comment “forcer” apt-get a renvoyer une erreur ? (je suis en -s là)

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 20, 2016, 7:23 UTC](https://www.debian-fr.org/t/script-dauto-installation/19488/10 "2016-02-20T19:23:43Z")

</div>

`apt-get install coucoucestmoi12
echo $?`

---

<div class="post-metadata">

**Author:** ![Mika561](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/919ad9/32.png) [@Mika561](https://www.debian-fr.org/u/Mika561)\
**Post date:** [Février 20, 2016, 7:23 UTC](https://www.debian-fr.org/t/script-dauto-installation/19488/11 "2016-02-20T19:23:44Z")

</div>

Oui, pas con de mettre un paquet qui n’existe pas… x)

Je vous tiens au courant 😉

Mika.

---

<div class="post-metadata">

**Author:** ![Tycho\_Brahe](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/t/ec9cab/32.png) [@Tycho\_Brahe](https://www.debian-fr.org/u/Tycho_Brahe)\
**Post date:** [Février 20, 2016, 7:23 UTC](https://www.debian-fr.org/t/script-dauto-installation/19488/12 "2016-02-20T19:23:48Z")

</div>

> [@](#):
>
> `ls > /dev/null 2> /dev/null`

Je dirais même plus :

```auto

```

C’est plus court et ça a la mérite de fonctionner sur les C-shell (qui ne disposent en général pas de la redirection 2\>)

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 20, 2016, 7:23 UTC](https://www.debian-fr.org/t/script-dauto-installation/19488/13 "2016-02-20T19:23:49Z")

</div>

J’avoue que je ne connaissais pas. J’ai vraiment du mal avec tcsh (le seul que j’ai touché).

---

<div class="post-metadata">

**Author:** ![Mika561](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/919ad9/32.png) [@Mika561](https://www.debian-fr.org/u/Mika561)\
**Post date:** [Février 20, 2016, 7:23 UTC](https://www.debian-fr.org/t/script-dauto-installation/19488/14 "2016-02-20T19:23:51Z")

</div>

Le script n’étant sensé fonctionner que sur Debian (v5.x), je ne pense pas que j’aurais se genre de soucis ? (y’a des gens qui changent réellement de shell ?)

Mika.

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 20, 2016, 7:23 UTC](https://www.debian-fr.org/t/script-dauto-installation/19488/15 "2016-02-20T19:23:57Z")

</div>

> [@](#):
>
> (y’a des gens qui changent réellement de shell ?)

Encore heureux voyons. Moi j’utilise zsh et j’ai un ami sous debian qui utilise fish.  
Fais ton script en bourn shell et il fonctionneras comme il faut (shabang “#!/bin/sh”).

---

<div class="post-metadata">

**Author:** ![Mika561](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/919ad9/32.png) [@Mika561](https://www.debian-fr.org/u/Mika561)\
**Post date:** [Février 20, 2016, 7:23 UTC](https://www.debian-fr.org/t/script-dauto-installation/19488/16 "2016-02-20T19:23:58Z")

</div>

J’ai déjà mit cette ligne, ça veut dire que le script ne se lancera qu’avec sh ?

Mika.

Ps : Oui, bah, hein, moi je vois des lignes sur internet, je C/C =D (j’suis pas comme ça en PHP, mais je le connais bine lui ^^)

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 20, 2016, 7:23 UTC](https://www.debian-fr.org/t/script-dauto-installation/19488/17 "2016-02-20T19:23:59Z")

</div>

> [@](#):
>
> J’ai déjà mit cette ligne, ça veut dire que le script ne se lancera qu’avec sh ?

Oui

> [@](#):
>
> Ps : Oui, bah, hein, moi je vois des lignes sur internet, je C/C =D (j’suis pas comme ça en PHP, mais je le connais bine lui ^^)[/quote][/quote]

Oui mais tu x²/3 = 12 (j’suis comme ça moi sous lunix).

---

<div class="post-metadata">

**Author:** ![Tycho\_Brahe](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/t/ec9cab/32.png) [@Tycho\_Brahe](https://www.debian-fr.org/u/Tycho_Brahe)\
**Post date:** [Février 20, 2016, 7:24 UTC](https://www.debian-fr.org/t/script-dauto-installation/19488/18 "2016-02-20T19:24:28Z")

</div>

> [@](#):
>
> J’avoue que je ne connaissais pas. J’ai vraiment du mal avec tcsh (le seul que j’ai touché).

Tu vas sans doute me prendre pour un taré, mais perso je n’ai jamais trouvé de grosses différences entre les shells. A part le coup des redirections, des gestions de cas pourris et de l’auto-complétion je vois pas grand chose qui ne soit pas commun 😕  
Soit dit en passant, tcsh gère bien mieux certains cas pourris que bash (genre ls \> toto | grep titi) ^^

> [@](#):
>
> J’ai déjà mit cette ligne, ça veut dire que le script ne se lancera qu’avec sh ?

Le seul truc a savoir (et qui ne devrais pas changer grand chose en fait) c’est que sous Debian, par défaut, /bin/sh est en réalité un lien symbolique vers /bin/bash, donc ce sera bash qui va réellement interpréter ton script.

`tycho@uraniborg-> ls -l /bin/sh
lrwxrwxrwx 1 root root 4 2009-01-20 12:26 /bin/sh -> bash`

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 20, 2016, 7:24 UTC](https://www.debian-fr.org/t/script-dauto-installation/19488/19 "2016-02-20T19:24:32Z")

</div>

Ce qu’il faut savoir aussi c’est que quand bash est appellé avec sh pour non il se comporte comme le bourne shell (et c’est ce que fon aussi zsh et tcsh).

Sinon comme changement il y a la manière de scripter avec (gestion des variables, contrôle de flux).
