Script d'auto-installation

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… :confused:

Mika.

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

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

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.

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.

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 :wink:)

Mika.

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.

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

Mika.

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)

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

Mika.

Ps : Et en PHP, c’est possible ?
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 ? :stuck_out_tongue:
Comment “forcer” apt-get a renvoyer une erreur ? (je suis en -s là)

apt-get install coucoucestmoi12 echo $?

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

Je vous tiens au courant :wink:

Mika.

Je dirais même plus :

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>)

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

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.

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”).

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 ^^)

Oui

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

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 :confused:
Soit dit en passant, tcsh gère bien mieux certains cas pourris que bash (genre ls > toto | grep titi) ^^

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

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).