Contenu | Rechercher | Menus

Annonce

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 25/04/2013, à 16:08

ja55

[RESOLU] Vos avis, script d'installation automatique d'application.

Ce script à pour objectif d'installer mes applications favorite automatiquement, je compte l'utiliser pour ubuntu 13.04. Je suis un newbie dans en matière de script bash donc je ne suis pas sûr de la propreté de ce script, j'espère avoir des feedbacks de votre part.

Merci.

#!/bin/bash
GREEN="\033[1;32m"
ENDCOLOR="\033[0m"

echo "Adding PPAs"

echo "Virtualbox PPA"
echo -e $GREEN"VirtualBox PPA"$ENDCOLOR
	/usr/bin/notify-send "VirtualBox PPA"
sudo apt-add-repository -y ppa:debfx/virtualbox

echo -e $GREEN"Unity Tweak Tool PPA"$ENDCOLOR
	/usr/bin/notify-send "Unity Tweak Tool PPA"
sudo add-apt-repository -y ppa:freyja-dev/unity-tweak-tool-daily

echo -e $GREEN"LibreOffice PPA"$ENDCOLOR
	/usr/bin/notify-send "LibreOffice PPA"
sudo add-apt-repository -y ppa:libreoffice/ppa

echo -e $GREEN"xorg-edgers PPA"$ENDCOLOR
	/usr/bin/notify-send "xorg-edgers PPA"
sudo add-apt-repository -y ppa:xorg-edgers/ppa 

echo -e $GREEN"Wine PPA"$ENDCOLOR
	/usr/bin/notify-send "Wine PPA"
sudo add-apt-repository -y ppa:ubuntu-wine/ppa

echo -e $GREEN"PlayOnLinux PPA"$ENDCOLOR
	/usr/bin/notify-send "PlayOnLinux PPA"
wget -q "http://deb.playonlinux.com/public.gpg" -O- | sudo apt-key add -
sudo wget http://deb.playonlinux.com/playonlinux_quantal.list -O /etc/apt/sources.list.d/playonlinux.list

echo -e $GREEN"Ubuntu Tweak PPA"$ENDCOLOR
	/usr/bin/notify-send "Ubuntu Tweak PPA"
sudo add-apt-repository -y ppa:tualatrix/next

echo -e $GREEN"qBittorrent PPA"$ENDCOLOR
	/usr/bin/notify-send "qBittorrent Tweak PPA"
sudo add-apt-repository -y ppa:hydr0g3n/qbittorrent-trunk

sudo apt-get update
sudo apt-get -y dist-upgrade

echo -e $GREEN"Ubuntu Restricted Extras"$ENDCOLOR
sudo apt-get install -y ubuntu-restricted-extras
echo -e $GREEN"Installing Virtualbox"$ENDCOLOR
sudo apt-get install -y virtualbox virtualbox-guest-additions-iso 
echo -e $GREEN"Installing Unity Tweak"$ENDCOLOR
sudo apt-get install -y unity-tweak-tool
echo -e $GREEN"Installing LibreOffice"$ENDCOLOR
sudo apt-get install -y libreoffice
echo -e $GREEN"Installing Wine"$ENDCOLOR
sudo apt-get install -y wine
echo -e $GREEN"Installing PlayOnLinux"$ENDCOLOR
sudo apt-get install -y playonlinux
echo -e $GREEN"Installing Ubuntu Tweak"$ENDCOLOR
sudo apt-get install -y ubuntu-tweak
echo -e $GREEN"Installing qBittorrent"$ENDCOLOR
sudo apt-get install -y qbittorrent
echo -e $GREEN"Installing Synapse"$ENDCOLOR
sudo apt-get install -y synapse
echo -e $GREEN"Installing Clementine"$ENDCOLOR
sudo apt-get install -y clemenentine
echo -e $GREEN"Installing Vlc"$ENDCOLOR
sudo apt-get install -y vlc
echo -e $GREEN"Installing gParted"$ENDCOLOR
sudo apt-get install -y gparted
echo -e $GREEN"Installing Bleachbit"$ENDCOLOR
sudo apt-get install -y bleachbit
echo -e $GREEN"Installing Synaptic"$ENDCOLOR
sudo apt-get install -y synaptic

echo -e $GREEN"reboot"$ENDCOLOR
zenity --question --width=420 --height=100 --ok-label="Reboot Now" --cancel-label="NO!" --text="Do you want to restart your computer Now"
	if [ $? == 1 ]
	then
		sudo reboot
	if [ $? == 0 ]
	then 
	fi
sleep 5
exit 0

Dernière modification par ja55 (Le 26/04/2013, à 02:26)


sony vaio, ubuntu-linuxmint

Hors ligne

#2 Le 25/04/2013, à 16:23

Kooothor

Re : [RESOLU] Vos avis, script d'installation automatique d'application.

Salut,

Ça m'a l'air pas mal mais tu devrais :

1. vérifier que l'utilisateur est root
2. virer tous les sudo.
3. remplace la commande reboot par shutdown -r now

Je sais que les Ubunteros sont de gros fans de sudo, mais imho quand tu fais des trucs d'admin, tu deviens root épicétou.

@+
~ktr

Hors ligne

#3 Le 25/04/2013, à 16:25

nesthib

Re : [RESOLU] Vos avis, script d'installation automatique d'application.

Tu trouveras des dizaines d'exemple de scripts d'installation sur ce forum. En ce qui concerne la syntaxe je ne vois rien de particulier, il ne s'agit principalement que d'une suite de echo et apt-get.

Ton test final comporte une erreur, il n'y a pas de commande après le then. Tu peux d'ailleurs tout remplacer par :

zenity … && sudo reboot

Le sleep 5 est inutile.

Si ton script doit être lancé en graphique, utilise plutôt gksudo que sudo, et au lieu de le mettre pour chaque commande, je vérifierais plutôt que le script est bien lancé en root.
Exemple (à placer au début du script) :

if [ $(id -u) -ne 0 ]
then
    echo -e "le script doit être lancé en root\nrelancement…"
    sudo bash $0
    exit
else
    echo "je suis root"
fi

(le else n'est pas nécessaire)


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#4 Le 25/04/2013, à 17:40

abelthorne

Re : [RESOLU] Vos avis, script d'installation automatique d'application.

Kooothor a écrit :

3. remplace la commande reboot par shutdown -r now

Je m'incruste et je vais être un peu hors-sujet mais pourquoi ? Personnellement j'utilise shutdown mais il me semblait que reboot était une façon plus récente de faire la même chose. Il y a une différence entre reboot et shutdown -r ?

Hors ligne

#5 Le 25/04/2013, à 19:12

Josepe36

Re : [RESOLU] Vos avis, script d'installation automatique d'application.

Bonjour

je me permet de poster pour dire que ton script est interessant, en revanche et si vous me le permettez, je pense qu'il manque surtout une construction correct.
Donc comme tu dis que tu es newbee en script, je pense que ceci devrait te montrer un début de bonnes habitudes a prendre afin de ne pas te perdre dans tes codes, éviter les répétitions de ligne et pouvoir le maintenir.

Comme le souligne @nesthib, il faut controller, le control c est 50 % de lignes dans un bon code en moyennne tongue
Voici ma proposition, juste dans l'objéctif d'échanger:

#!/bin/bash
GREEN="\033[1;32m"
ENDCOLOR="\033[0m"

# LIST HERE ALL PPA YOU WILL INSTALL :
# Syntax : Name_Application:ADRESS_OF_PPA
list_of_ppa="Virtualbox:debfx/virtualbox 
             Unity_Tweak_Tool:Ufreyja-dev/unity-tweak-tool-daily 
             LibreOffice:libreoffice/ppa 
             xorg-edgers:xorg-edgers/ppa 
             Wine:ubuntu-wine/ppa 
             PlayOnLinux:
             Ubuntu_Tweak:tualatrix/next 
             Bittorrent:hydr0g3n/qbittorrent-trunk 
            "
# LIST HERE ALL PROGRAMS YOU WILL INSTALL
# Syntax : Name:command
list_of_install_programs="Ubuntu_Restricted_Extras:ubuntu-restricted-extras 
                          Virtualbox:virtualbox
                          Virtualbox_guest_additions:virtualbox-guest-additions-iso 
                          Unity_Tweak:unity-tweak-tool 
                          Wine:wine 
                          LibreOffice:libreoffice 
                          PlayOnLinux:playonlinux 
                          Ubuntu_Tweak:ubuntu-tweak 
                          qBittorrent:qBittorrent 
                          Synapse:synapse 
                          Clementine:clemenentine 
                          Vlc:vlc 
                          gparted:gparted 
                          Bleachbit:bleachbit 
                          Synaptic:synaptic
                         "

ppa_install() {
    # INSTALL PPA FROM THE LIST
    for ppa in $list_of_ppa
        do
            program=$( echo $ppa|cut -d ":" -f1)
            echo -e $GREEN$program "PPA"$ENDCOLOR;
            /usr/bin/notify-send $program "PPA";
            ppa=$( echo $ppa|cut -d ":" -f2)
            apt-add-repository -y ppa:$ppa;
        done

    # NEED TO BE SEPARATELY MANAGE 
    echo -e $GREEN"PlayOnLinux PPA"$ENDCOLOR
	    /usr/bin/notify-send "PlayOnLinux PPA"
    wget -q "http://deb.playonlinux.com/public.gpg" -O- | apt-key add -
    wget http://deb.playonlinux.com/playonlinux_quantal.list -O /etc/apt/sources.list.d/playonlinux.list

    # UPDATE AND UPGRADE
    apt-get update
    apt-get -y dist-upgrade
}

programs_install() {
    # INSTALL PROGRAMS FROM THE LIST
    for prog in $list_of_install_programs
        do
            program=$( echo $prog|cut -d ":" -f1)
            echo -e $GREEN"Installing "$program$ENDCOLOR;
            command=$( echo $prog|cut -d ":" -f2)
            apt-get install -y $command;
        done
    exit
}

reboot_ask() {
    # ASK FOR REBOOT COMPUTER
    echo -e $GREEN"reboot"$ENDCOLOR
    zenity --question --width=420 --height=100 --ok-label="Reboot Now" --cancel-label="NO!" --text="Do you want to restart your computer Now"
	    if [ $? == 1 ]
	        then
		        reboot
		fi
	    if [ $? == 0 ]
	    then exit 0
	    fi
}

ROOT_CONTROL() {
    if [ $(id -u) -ne 0 ]
    then
        echo -e "le script doit être lancé en root\nrelancement…"
        sudo bash $0
        exit 0
    fi
}

# DEBUT DU SCRIPT #
ROOT_CONTROL
ppa_install
programs_install
reboot_ask

exit 0

Respectueusement


Développeur distribution Hybryde
www.hybryde.org

Hors ligne

#6 Le 25/04/2013, à 20:02

Kooothor

Re : [RESOLU] Vos avis, script d'installation automatique d'application.

abelthorne a écrit :
Kooothor a écrit :

3. remplace la commande reboot par shutdown -r now

Je m'incruste et je vais être un peu hors-sujet mais pourquoi ? Personnellement j'utilise shutdown mais il me semblait que reboot était une façon plus récente de faire la même chose. Il y a une différence entre reboot et shutdown -r ?

En fait reboot ça reboot direct, alors que shutdown -r c'est plus propre car ça va unmount les systèmes de fichier et tout éteindre correctement.

et sinon +1 pour la façon de faire du post du dessus smile

Dernière modification par Kooothor (Le 25/04/2013, à 20:03)

Hors ligne

#7 Le 25/04/2013, à 20:53

tiramiseb

Re : [RESOLU] Vos avis, script d'installation automatique d'application.

En fait reboot ça reboot direct, alors que shutdown -r c'est plus propre car ça va unmount les systèmes de fichier et tout éteindre correctement.

Faux. Cela est le cas uniquement si on utilise l'argument "--force".
Lire à ce propos la manpage de la commande reboot.

Hors ligne

#8 Le 25/04/2013, à 20:54

tiramiseb

Re : [RESOLU] Vos avis, script d'installation automatique d'application.

1. vérifier que l'utilisateur est root
2. virer tous les sudo.

Bof, moi aussi mon script d'autoinstall est truffé de "sudo".
De cette manière je peux exécuter des actions en tant que root mais aussi des actions sur mon compte perso (par exemple changer les répertoires par défaut, etc).

Hors ligne

#9 Le 25/04/2013, à 20:56

tiramiseb

Re : [RESOLU] Vos avis, script d'installation automatique d'application.

ja55 a écrit :

j'espère avoir des feedbacks de votre part.

Ton script me semble pas mal mais j'ai l'impression que tu te prends la tête pour rien.
Les couleurs, tout ça, c'est bien joli mais ça n'aide pas à grand chose big_smile

Sinon, bah pour les "apt-get install", autant mettre tous les noms de paquets sur une seule ligne, ce sera plus simple je trouve...
Éventuellement en passant par des variables, des boucles, un peu d'automatisation, comme le suggère Josepe36.

Hors ligne

#10 Le 25/04/2013, à 20:59

Kooothor

Re : [RESOLU] Vos avis, script d'installation automatique d'application.

tiramiseb a écrit :

En fait reboot ça reboot direct, alors que shutdown -r c'est plus propre car ça va unmount les systèmes de fichier et tout éteindre correctement.

Faux. Cela est le cas uniquement si on utilise l'argument "--force".
Lire à ce propos la manpage de la commande reboot.

En effet, j'aurai du me référer au fm plutôt qu'à une page web smile
Donc en gros c'est pareil quoi.

Hors ligne

#11 Le 25/04/2013, à 21:02

tiramiseb

Re : [RESOLU] Vos avis, script d'installation automatique d'application.

En effet, j'aurai du me référer au fm plutôt qu'à une page web

Ta page web doit un peu dater lol
Si je me rappelle bien, c'était le comportement par défaut il y a 15 ou 20 ans...

Hors ligne

#12 Le 25/04/2013, à 21:04

Kooothor

Re : [RESOLU] Vos avis, script d'installation automatique d'application.

tiramiseb a écrit :

Ta page web doit un peu dater lol
Si je me rappelle bien, c'était le comportement par défaut il y a 15 ou 20 ans...

Many Unix systems have reboot perform an instant reboot -- no syncing, no umounting, nothing. It's just like hitting the reset button.

Your friend is trying to save you hours of fscking, or worse, if you ever wish to reboot one of those systems.

from : http://superuser.com/questions/175391/r … ting-linux

J'ai lu la première réponse alors que c'est la deuxième qui est juste smile
(en plus j'y ai pensé à vérifier mes dires avec les man pages, mais flemme quoi)

Dernière modification par Kooothor (Le 25/04/2013, à 21:04)

Hors ligne

#13 Le 26/04/2013, à 02:22

ja55

Re : [RESOLU] Vos avis, script d'installation automatique d'application.

J'ai lu attentivement vos commentaire, et j'avoue que je me suis un peu perdu dedans mais bon, le script de Josepe36 est très bien fait et pour moi c'est comme de la magie, il a transformé ma bricole en un script professionnel et facile à manipuler.

Merci à tout le monde et spécialement pour Josepe36 pour son effort.

Edit : après quelques tests, j'ai modifié le script car il comprenait quelques erreurs et j'ai ajouté une étape "nettoyage" voila le résultat final.

#!/bin/bash
GREEN="\033[1;32m"
ENDCOLOR="\033[0m"

# LIST HERE ALL PPA YOU WILL INSTALL :
# Syntax : Name_Application:ADRESS_OF_PPA
list_of_ppa="Virtualbox:debfx/virtualbox 
             Unity_Tweak_Tool:freyja-dev/unity-tweak-tool-daily
             LibreOffice:libreoffice/ppa 
             xorg-edgers:xorg-edgers/ppa 
             Wine:ubuntu-wine/ppa 
             Ubuntu_Tweak:tualatrix/next
	     Indicators:atareao/atareao
            "
# LIST HERE ALL PROGRAMS YOU WILL INSTALL
# Syntax : Name:command
list_of_install_programs="Ubuntu_Restricted_Extras:ubuntu-restricted-extras 
                          Virtualbox:virtualbox
                          Virtualbox_guest_additions:virtualbox-guest-additions-iso 
                          Unity_Tweak:unity-tweak-tool 
                          Wine:wine 
                          LibreOffice:libreoffice 
                          PlayOnLinux:playonlinux
			  cURL:curl 
                          Ubuntu_Tweak:ubuntu-tweak 
                          qBittorrent:qBittorrent 
                          Synapse:synapse 
                          Clementine:clementine 
                          Vlc:vlc 
                          gparted:gparted 
                          Bleachbit:bleachbit 
                          Synaptic:synaptic
			  Calendar:calendar-indicator
			  Weather:my-weather-indicator
			  Insync:insync-beta-ubuntu
                         "

ppa_install() {
    # INSTALL PPA FROM THE LIST
    for ppa in $list_of_ppa
        do
            program=$( echo $ppa|cut -d ":" -f1)
            echo -e $GREEN$program "PPA"$ENDCOLOR;
            /usr/bin/notify-send $program "PPA";
            ppa=$( echo $ppa|cut -d ":" -f2)
            apt-add-repository -y ppa:$ppa;
        done

    # NEED TO BE SEPARATELY MANAGE 
    echo -e $GREEN"PlayOnLinux PPA"$ENDCOLOR
	    /usr/bin/notify-send "PlayOnLinux PPA"
    wget -q "http://deb.playonlinux.com/public.gpg" -O- | apt-key add -
    wget http://deb.playonlinux.com/playonlinux_quantal.list -O /etc/apt/sources.list.d/playonlinux.list
    wget -O - https://d2t3ff60b2tol4.cloudfront.net/services@insynchq.com.gpg.key | sudo apt-key add -
    echo "deb http://apt.insynchq.com/ubuntu $(lsb_release -cs) non-free" | tee /etc/apt/sources.list.d/insync.list

    # UPDATE AND UPGRADE
    apt-get update
    apt-get -y dist-upgrade
}

programs_install() {
    # INSTALL PROGRAMS FROM THE LIST
    for prog in $list_of_install_programs
        do
            program=$( echo $prog|cut -d ":" -f1)
            echo -e $GREEN"Installing "$program$ENDCOLOR;
            command=$( echo $prog|cut -d ":" -f2)
            apt-get install -y $command;
        done
    
}

reboot_ask() {
    # ASK FOR REBOOT COMPUTER
    echo -e $GREEN"Redémarrage"$ENDCOLOR
    zenity --question --title="Redémarrage" --width=420 --height=100 --ok-label="Redémarrer maintenant" --cancel-label="NON" --text="L'installation est terminée. il est nécessaire de redémarrer votre ordinateur"
	    if [ $? == 0 ] ;
	        then shutdown -r now
		fi
	    if [ $? == 1 ] ;
	    then exit 0
	    fi
}

ROOT_CONTROL() {
    if [ $(id -u) -ne 0 ]
    then
        echo -e "le script doit être lancé en root\relancement…"
        sudo bash $0
        exit 0
    fi
}

Cleaning() {
	apt-get autoremove -y
	apt-get clean
	apt-get autoclean
}	

# DEBUT DU SCRIPT #
ROOT_CONTROL
ppa_install
programs_install
Cleaning
reboot_ask

exit 0

Dernière modification par ja55 (Le 26/04/2013, à 08:27)


sony vaio, ubuntu-linuxmint

Hors ligne