#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 : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde 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.
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
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.
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
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.
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
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).
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#9 Le 25/04/2013, à 20:56
- tiramiseb
Re : [RESOLU] Vos avis, script d'installation automatique d'application.
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
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.
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#10 Le 25/04/2013, à 20:59
- Kooothor
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.
En effet, j'aurai du me référer au fm plutôt qu'à une page web
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
Si je me rappelle bien, c'était le comportement par défaut il y a 15 ou 20 ans...
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#12 Le 25/04/2013, à 21:04
- Kooothor
Re : [RESOLU] Vos avis, script d'installation automatique d'application.
Ta page web doit un peu dater
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
(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