#1 Le 13/05/2015, à 10:36
- nam1962
Aide pour scripter mon tuto de finalisation/optimisation
J'installe souvent mes convertis en m'aidant du tuto de l'almanet doLys : [url][modéré : pas d’auto-pub, merci]-mon-optimisation-personnalisation-xubuntu-et-autres-variantes/[/url]
Jusque là je le faisais à la main pour vérifier que chaque instruction passe correctement, comme c'est bien stable je souhaite le scripter.
Seulement voilà, il me faudra apprendre le script en bash...
De bonnes âmes pourraient elle m'aider à développer le super brouillon là : [url][modéré : pas d’auto-pub, merci]-des-tutos/#post-527[/url] ?
Dernière modification par nam1962 (Le 13/05/2015, à 10:39)
[ Modéré ]
Hors ligne
#2 Le 13/05/2015, à 11:10
- SilentStorm
Re : Aide pour scripter mon tuto de finalisation/optimisation
bah oui en gros c'est ça c'est juste que mis en vrac de façon pas propre, je te conseille de rassembler les logiciels du même domaine sur la même ligne séparé un espace, par exemple :
# Internet
apt-get -y install firefox chromium qupzilla ....
de plus, pas besoin de remettre sudo a chaque fois, il suffit que l'utilisateur lance le script directement avec sudo : sudo ./script.sh et alors tout sera lancé avec sudo sans besoin de mettre des sudos a chaque ligne.
le -y tu n'es pas obligé de le mettre a la fin, tu peux le mettre entre apt-get et install
si tu veux intégrer un dock déjà préconfiguré, un nouveau font d'écran/thème/icone par défaut (comme avec Voyager ou Elementary OS par exemple) il suffit que le script génère le contenu voulu dans /etc/skel
Pour les commandes qui vont ensemble (par exemple ajout d'un ppa puis update), il est mieux de les assembler ensemble avec un && par exemple :
add-apt-repository -y ppa:nowrep/qupzilla && apt-get update && apt-get -y install qupzilla
Core I7 a 2.4 GHz / 16 Go de ram / SSD 512 Go + HDD 1 To (1.5 To) / GeForce 650m GT (pc portable)
OS : Linux Mint 17.1 (Cinnamon) - Debian 8 Jessie (Mate) - ArchLinux (Xfce)
Hors ligne
#3 Le 13/05/2015, à 11:27
- nam1962
Re : Aide pour scripter mon tuto de finalisation/optimisation
Merci pour tes indications.
L'idée est quand même de proposer des choix et les expliquer (un peu comme le tuto mais en dynamique.)
A part sur mes bécanes perso (et encore) je ne passe pas systématiquement tout le tuto : ça dépend du besoin.
Et une bonne âme peut contribuerer à la mise au propre
(Ma question subsidiaire serait de voir si on peut en faire un cd d'install)
[ Modéré ]
Hors ligne
#4 Le 13/05/2015, à 11:27
- Compte anonymisé
Re : Aide pour scripter mon tuto de finalisation/optimisation
Bjr.
Au début du script :
#!/bin/bash
si tu veux faire du bash
Pour que ton script soit plus propre, je te propose de lister tous les logiciels (à installer par apt-get) dans un fichier puis :
apt-get install $(cat fichier.txt)
Cdt
Dernière modification par Compte anonymisé (Le 13/05/2015, à 11:43)
#5 Le 13/05/2015, à 11:44
- jplemoine
Re : Aide pour scripter mon tuto de finalisation/optimisation
nam1962 (et les autres), pour l'instant, je n'ai accès à internet que de façon aléatoire : je ne peux donc pas m'impliquer de façon sûre dans ton projet.
Une fois que ton script fonctionne de manière satisfaisante, je vois 2 améliorations possibles :
- Je ne sais pas si tu l'as fait et/ou si tu comptes le faire, mais Il est possible d'utiliser zenity pour avoir une interface sommaire.
- Il est possible de refaire un iso avec "le script dedans". Je dois pouvoir retrouver la procédure pour installer de manière classique, faire les mises à jours, envoyer ton script en posant les questions pour les différentes étapes.
Ce compte ne servira plus : vous pouvez le supprimer si le coeur vous en dit...
Laissé par l'auteur pour historique.
Hors ligne
#6 Le 13/05/2015, à 12:27
- michel_04
Re : Aide pour scripter mon tuto de finalisation/optimisation
:D
De la bonne manière de poser les questions - Trouver de l'aide grâce au Groupe des Parrains Linux - Le Pacte des Gnous
PCs sous Debian Stable & Debian Sid.
Hors ligne
#7 Le 13/05/2015, à 12:38
- nam1962
Re : Aide pour scripter mon tuto de finalisation/optimisation
Ah, bah oui !
2 versions :
- le script pour ceusses qui veulent du sur mesure
- le package pour les flemmards ou les confiants ( )
[ Modéré ]
Hors ligne
#8 Le 14/05/2015, à 14:36
- nam1962
Re : Aide pour scripter mon tuto de finalisation/optimisation
@jplemoine, je ne connais pas zenity, que penses tu qu'on puisse faire avec ?
[ Modéré ]
Hors ligne
#9 Le 14/05/2015, à 15:24
- MicP
Re : Aide pour scripter mon tuto de finalisation/optimisation
Sans rien avoir à installer de plus que ce qu'il y a par défaut dans une installation ubuntu (ou debian), il y a aussi whiptail
Tu peux t'en faire une première idée en lançant cette ligne de commande dans une fenêtre de terminal :
if (whiptail --title "Exemple Dialogue Whiptail" --yesno "Utiliser Whiptail ou pas ?" 8 40) then echo "Cliquez avec le bouton central de la souris sur le lien suivant : http://en.wikibooks.org/wiki/Bash_Shell_Scripting/Whiptail"; fi
…L'idée est quand même de proposer des choix et les expliquer…
Il te faudrait fournir un scénario (ou au moins les textes à afficher avec quel type de fenêtre de dialogue), à moins que tu préfère que l'aide se fasse étape par étape.
Dernière modification par MicP (Le 14/05/2015, à 15:46)
Hors ligne
#10 Le 14/05/2015, à 15:47
- nam1962
Re : Aide pour scripter mon tuto de finalisation/optimisation
Arghh, je vais devoir lacher mes cours de python pour faire du bash ou du whiptail alors
(bon, je commence juste le python)
Dernière modification par nam1962 (Le 14/05/2015, à 15:47)
[ Modéré ]
Hors ligne
#11 Le 14/05/2015, à 15:57
- erresse
Re : Aide pour scripter mon tuto de finalisation/optimisation
@jplemoine, je ne connais pas zenity, que penses tu qu'on puisse faire avec ?
zenity n'est pas glade, bien sûr, mais on peut quand même faire des choses très sympathiques avec.
Pour m'éviter de brûler trop de neurones pour mémoriser toutes les options, j'ai installé (et je te le conseille vivement) une interface de génération des fenêtres zenity. Ça s'appelle "zenitor" et c'est absolument génial pour créer des fenêtres sans te prendre la tête.
Après, il faut juste trouver celle qui correspondra le mieux à ce que tu veux faire et la construire en fonction des besoins (boutons, commentaires, listes ou navigateur de fichier...).
Pour ton script, je verrais bien un premier écran qui explique brièvement son usage et qui propose de sélectionner les étapes à exécuter ou pas ==> Une liste avec cases à cocher.
Tu exploites après le résultat qui t'est transmis dans un tableau pour effectuer ou non les commandes de ton script.
Bon, c'est juste une idée générale, il faudrait quand même y réfléchir posément, bien sûr...
Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois le problème solutionné, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.
Hors ligne
#12 Le 14/05/2015, à 16:50
- MicP
Re : Aide pour scripter mon tuto de finalisation/optimisation
Arghh, je vais devoir lacher mes cours de python pour faire du bash ou du whiptail alors
…
Non non, lâche surtout pas le python, c'est du très bon langage ça.
Sans rire : Tous ceux qui s'y sont investi ne l'ont pas regretté.
=======
Pour le bash, ou/et le dash, etc. , t'inquiète pas : tout ce qu'il y a à faire sera de formuler les commandes qui seront exécutées (ce que tu as déjà fait)
Pour ce qui est de whiptail, c'est aussi facile à apprendre (et c'est rapide) rien qu'en testant les exemples de la page http://en.wikibooks.org/wiki/Bash_Shell … g/Whiptail
(As-tu testé ma ligne de commande, et cliqué sur le lien avec le bouton central de la souris ?)
=======
Autant avec whiptail qu'avec zenity, le plus gros travail sera de définir au préalable (indispensable) un parcours logique et cohérent à la suite de questions/réponses qui seront faîtes dans chaque fenêtre de dialogue.
Hors ligne
#13 Le 14/05/2015, à 17:44
- nam1962
Re : Aide pour scripter mon tuto de finalisation/optimisation
(As-tu testé ma ligne de commande, et cliqué sur le lien avec le bouton central de la souris ?)
oui, mais ça me fait un bouton dans le terminal que je peux faire agir avec tab et enter, pas avec la souris
[ Modéré ]
Hors ligne
#14 Le 14/05/2015, à 18:08
- Compte anonymisé
Re : Aide pour scripter mon tuto de finalisation/optimisation
oui, mais ça me fait un bouton dans le terminal que je peux faire agir avec tab et enter, pas avec la souris
Si tu veux faire une interface graphique, il te faut les libs adéquates. L'utilisateur final ne les a pas forcément. L'intérêt de script-basher est justement d'éviter cela.
#15 Le 16/05/2015, à 16:49
- erresse
Re : Aide pour scripter mon tuto de finalisation/optimisation
Salut nam,
Avec zenity, sans trop de problèmes, tu peux coder un script avec une structure dans ce genre-là...
#!/bin/bash
ifbak="${IFS}"
IFS='|'
### note: affectation de tableau ==> ($(...)) sinon on obtient juste un string
options=($(zenity --list --checklist --title "Script de post-installation (par nam1962)" --text "Ce script permet d'optimiser votre système fraîchement installé
en ajoutant / supprimant des applications optionnelles." --height "500" --column="" --column="Description de l'opération à effectuer" --column="Code" --hide-column="3" --print-column="3" FALSE "Optimisation du système (firmware, swap, su, etc...)" "OS" FALSE "Ajout d'utilitaires divers (pare-feu, anti-virus, nettoyeur)" "UTIL" FALSE "Amélioration de l'interface XFCE (thèmes, goodies)" "XFCE" FALSE "Remplacement de l'éditeur Leafpad par Gedit" "EDIT" FALSE "Gestionnaires de paquets (Synaptic, Gdebi)" "PACK" FALSE "Remplacement de Gnumeric/Abiword par LibreOffice" "LO"))
for opt in "${options[@]}"
do
echo "Option en cours : ${opt}" >> trace
case "${opt}" in
OS) # Opérations d'optimisation du système
echo "Opérations d'optimisation du système" >> trace
;;
UTIL) # Ajout d'utilitaires divers
utilitaires=($(zenity --list --checklist --title "Ajout d'utilitaires divers" --text "Veuillez sélectionner les applications à installer s.v.p" --height "230" --column="" --column="Description de l'opération à effectuer" --column="Code" --hide-column="3" --print-column="3" FALSE "gufw - Gestionnaire du pare-feu ufw" "GUFW" FALSE "clamav - Anti-virus (Windows) pour Linux" "AVIR" FALSE "bleachbit - Nettoyeur système" "CLEAN" FALSE "screenlets - Gestionnaire de gadgets" "WIDG"))
for util in "${utilitaires[@]}"
do
echo "Sous-option en cours : ${util}" >> trace
case "${util}" in
GUFW) echo apt-get install gufw -y && echo ufw enable >> trace;;
AVIR) echo apt-get install clamav clamtk -y >> trace;;
CLEAN) echo apt-get install bleachbit -y >> trace;;
WIDG) echo apt-get install screenlets screenlets-pack-all -y >> trace;;
# Erreur si choix inconnu...
*) exit 1;;
esac
done
;;
XFCE) # Opérations d'amélioration de l'interface XFCE
echo "Opérations d'amélioration de l'interface XFCE" >> trace
;;
EDIT) # Remplacement de Leafpad par Gedit
echo "Remplacement de Leafpad par Gedit" >> trace
;;
PACK) # Ajout des gestionnaires de paquets
echo "Ajout des gestionnaires de paquets" >> trace
;;
LO) # Remplacement de Gnumeric/Abiword par la suite LibreOffice
echo "Remplacement de Gnumeric/Abiword par la suite LibreOffice" >> trace
;;
GIMP) # Installer la version PPA de Gimp
echo "Installer la version PPA de Gimp" >> trace
;;
#Erreur si choix inconnu...
*) exit 1;;
esac
done
echo "Sortie du script - Fin normale" >> trace
IFS="${ifbak}"
exit 0
Tu peux tester cela facilement, ce script n'installe rien, j'ai juste mis des "echo" pour illustrer les commandes.
Tu l'exécutes et tu vois le résultat dans le fichier "trace", pour juger du fonctionnement.
Mais il y a un assez gros boulot de remise en forme de ton script initial pour regrouper ensemble les commandes qui se rapportent à un même groupe d'options à installer...
Qu'est-ce que tu en penses ?
Dernière modification par erresse (Le 16/05/2015, à 16:50)
Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois le problème solutionné, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.
Hors ligne
#16 Le 16/05/2015, à 17:01
- nam1962
Re : Aide pour scripter mon tuto de finalisation/optimisation
Pas mal, comme tu dis, ça va prendre un bon bout de temps.
Il faut que je me pose pour çà !
[ Modéré ]
Hors ligne
#17 Le 16/05/2015, à 17:22
- erresse
Re : Aide pour scripter mon tuto de finalisation/optimisation
Mais tu as lancé un appel à l'aide pour le faire, il n'y a pas de raison pour que tu en supportes toute la charge...
Pour un script de ce type, il n'est pas besoin d'une grande sophistication, le tout est de pouvoir choisir en connaissance de cause ce que l'on veut ou pas retenir de tes suggestions. Il faut juste que les choix soient clairs et explicites autant que possible, et que l'outil soit agréable à utiliser (en graphique, géré à la souris et facile à mettre en œuvre). Je pense que zenity se prête bien à cela.
Cependant, il faudrait quand même avoir une liste exhaustive de ce que doit effectuer le script pour :
- définir des groupes de commandes par fonctions
- contrôler que certaines commandes complémentaires ne peuvent pas être choisies séparément
- concevoir un plan pour structurer le script
Ce n'est pas romain, mais il faut bien l'étudier avant la réalisation.
Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois le problème solutionné, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.
Hors ligne
#18 Le 16/05/2015, à 18:09
- nam1962
Re : Aide pour scripter mon tuto de finalisation/optimisation
Oui ! Je vais regarder le plan (et les suggestions )
[ Modéré ]
Hors ligne
#19 Le 16/05/2015, à 18:09
- nany
Re : Aide pour scripter mon tuto de finalisation/optimisation
Bonjour,
brut de fonderie (à tester sur un poste de test après fresh install) :
nany@stupidcomputer:~$ nl -ba ./nam1962-xubuntu-brutal.sh
1 #!/bin/bash
2 # encoding utf8
3 # nam1962-xubuntu-brutal.sh by nany
4 # licence GPL V3 or later
5
6 inst ()
7 {
8 apt-get install -y --force-yes $1;
9 }
10
11 addrep ()
12 {
13 apt-add-repository -y $1;
14 }
15
16 purge ()
17 {
18 apt-get purge -y $1;
19 }
20
21 aide ()
22 {
23 echo ""
24 echo "Usage : sudo $0 [-F | --full | -h | --help]"
25 echo ""
26 echo "Options :"
27 echo " -F --full Installation complète sans demande."
28 echo " -h --help Affichage de cette aide"
29 echo ""
30 }
31
32 HELP=false
33 FULL=false
34 paquets=()
35
36 while getopts ":Fh-:" OPT
37 do
38 [[ $OPT = "-" ]] && case "${OPTARG%%=*}" in
39 full) OPT="F";;
40 help) OPT="h";;
41 *) aide; exit 1;;
42 esac
43 case $OPT in
44 F) FULL=true;;
45 h) HELP=true;;
46 *) aide; exit 1;;
47 esac
48 done
49
50 if [[ $HELP = true ]]; then aide; exit 0; fi
51
52 if [[ $USER != "root" ]]; then aide; exit 0; fi
53
54 ZEN=$(dpkg -l | grep zenity | cut -d' ' -f1 | head -1)
55 if [[ $ZEN != "ii" ]]; then inst zenity >> /dev/null; fi
56
57 swap=$(swapon -s | grep -v "Filename" | cut -d' ' -f1 | head -1)
58 if [[ $swap != "" ]]; then
59 ( if [[ $(grep "vm.swappiness=" /etc/sysctl.conf) == "" ]]; then \
60 echo "vm.swappiness=5" >> /etc/sysctl.conf; \
61 echo "# vm.swappiness=5"; sleep 1; \
62 fi; \
63 if [[ $(grep "vm.vfs_cache_pressure=" /etc/sysctl.conf) == "" ]]; then
64 echo "vm.vfs_cache_pressure=50" >> /etc/sysctl.conf; \
65 echo "# vm.vfs_cache_pressure=50"; sleep 1; \
66 fi; sysctl -p; echo "# sysctl -p"; sleep 1 ) \
67 | zenity --progress --title="Optimisation de la swap" \
68 --text="" --pulsate --no-cancel --auto-close
69 fi
70
71 if [[ $(grep vendor_id /proc/cpuinfo | cut -d' ' -f2 | head -1) \
72 = "GenuineIntel" ]]; then
73 paquets+=( intel-microcode )
74 fi
75
76 if [[ $FULL = true ]]; then
77 gufw=true
78 tlp=true
79 ppas=( 'ppa:libreoffice/ppa' 'ppa:nowrep/qupzilla' 'ppa:linrunner/tlp' \
80 'ppa:tualatrix/next' 'ppa:synapse-core/testing' 'ppa:noobslab/icons' \
81 'ppa:noobslab/nitrux-os' 'ppa:otto-kesselgulasch/gimp' )
82 purges=( light-locker gimp* leafpad gnumeric abiword )
83 paquets+=( xfce4 gtk3-engines-xfce xfce4-goodies xfwm4-themes \
84 xubuntu-restricted-addons unrar gstreamer0.10-plugins-bad-multiverse \
85 libavcodec-extra linux-firmware-nonfree ppa-purge gksu gedit \
86 gedit-plugins gdebi gufw clamav bleachbit libreoffice libreoffice-l10n-fr \
87 libreoffice-help-fr hyphen-fr libreoffice-gtk qupzilla numlockx \
88 xscreensaver xscreensaver-data-extra xscreensaver-gl-extra \
89 xscreensaver-screensaver-bsod tlp tlp-rdw unace rar unar p7zip-rar \
90 p7zip zip unzip arj libuu0 mpack sharutils uudeview \
91 gstreamer0.10-plugins-ugly gxine libdvdread4 totem-mozilla icedax tagtool \
92 easytag id3tool lame nautilus-script-audio-convert libmad0 mpg321 \
93 libavcodec-extra qbittorrent shotwell fotowall rhythmbox openshot \
94 handbrake filezilla pinta gtk-recordmydesktop skype deja-dup ubuntu-tweak \
95 brasero synapse gnome-brave-icon-theme nitrux-icons2 win-icons \
96 qt4-qtconfig gconf-editor gnome-session-canberra sox libsox-fmt-all \
97 screenlets screenlets-pack-all )
98 else
99 gufw=false
100 tlp=false
101 ppas=()
102 purges=()
103 paquets+=( xfce4 gtk3-engines-xfce xfce4-goodies xfwm4-themes \
104 xubuntu-restricted-addons unrar gstreamer0.10-plugins-bad-multiverse \
105 libavcodec-extra linux-firmware-nonfree ppa-purge gksu )
106
107 choix=( $(zenity --title="Choix d’installation" \
108 --text="Choisissez les logiciels dans la liste ci dessous." \
109 --width=400 --height=600 \
110 --list --checklist --column "Install" --column "logiciels" \
111 FALSE gedit FALSE gdebi FALSE gufw FALSE clamav FALSE bleachbit \
112 FALSE libreoffice FALSE qupzilla FALSE numlockx FALSE xscreensaver \
113 FALSE tlp FALSE archivage FALSE codecs-audio-vidéo FALSE qbittorrent \
114 FALSE shotwell FALSE fotowall FALSE rhythmbox FALSE openshot \
115 FALSE handbrake FALSE filezilla FALSE pinta FALSE gtk-recordmydesktop \
116 FALSE skype FALSE deja-dup FALSE ubuntu-tweak FALSE brasero FALSE synapse \
117 FALSE thèmes FALSE qt4-qtconfig FALSE gconf-editor \
118 FALSE sons FALSE screenlets --separator=" ") )
119
120 for c in ${choix[@]}
121 do
122 case $c in
123 "gedit")
124 paquets+=( $c gedit-plugins );;
125 "gufw")
126 paquets+=( $c )
127 gufw=true;;
128 "libreoffice")
129 paquets+=( $c libreoffice-l10n-fr libreoffice-help-fr \
130 hyphen-fr libreoffice-gtk )
131 ppas+=( 'ppa:libreoffice/ppa' );;
132 "qupzilla")
133 paquets+=( $c )
134 ppas+=( 'ppa:nowrep/qupzilla' );;
135 "xscreensaver")
136 paquets+=( $c xscreensaver-data-extra xscreensaver-gl-extra \
137 xscreensaver-screensaver-bsod )
138 purges+=( light-locker );;
139 "tlp")
140 paquets+=( $c tlp-rdw )
141 ppas+=( 'ppa:linrunner/tlp' )
142 tlp=true;;
143 "archivage")
144 paquets+=( unace rar unar p7zip-rar p7zip zip unzip arj \
145 libuu0 mpack sharutils uudeview );;
146 "codecs-audio-vidéo")
147 paquets+=( gstreamer0.10-plugins-ugly gxine libdvdread4 totem-mozilla \
148 icedax tagtool easytag id3tool lame nautilus-script-audio-convert \
149 libmad0 mpg321 libavcodec-extra );;
150 "ubuntu-tweak")
151 paquets+=( $c tlp-rdw )
152 ppas+=( 'ppa:tualatrix/next' );;
153 "synapse")
154 paquets+=( $c )
155 ppas+=( 'ppa:synapse-core/testing' );;
156 "thèmes")
157 paquets+=( gnome-brave-icon-theme nitrux-icons2 win-icons )
158 ppas=( 'ppa:noobslab/icons' 'ppa:noobslab/nitrux-os' );;
159 "sons")
160 paquets+=( gnome-session-canberra sox libsox-fmt-all );;
161 "screenlets")
162 paquets+=( $c screenlets-pack-all );;
163 *)
164 paquets+=( $c );;
165 esac
166 done
167
168 gimp=$(zenity --question --title="Gimp" --text="Souhaitez-vous avoir\n \
169 la dernière version de Gimp ?" --ok-label="Oui" --cancel-label="Non")
170
171 if [[ $gimp ]]; then
172 purges+=( gimp* )
173 ppas+=( 'ppa:otto-kesselgulasch/gimp' )
174 paquets+=( gimp gimp-data gimp-data-extras )
175 fi
176
177 choix=( $(zenity --title="Choix de désinstallation" \
178 --text="Sélectionnez ci dessous les logiciels\n \
179 que vous souhaitez désinstaller." \
180 --width=400 --height=210 \
181 --list --checklist --column "Install" --column "logiciels" \
182 FALSE leafpad FALSE gnumeric FALSE abiword --separator=" ") )
183
184 for c in ${choix[@]}
185 do
186 purges+=( $c )
187 done
188 fi
189
190 total=${#purges[@]}
191 n=0
192 ( for p in ${purges[@]}; do ((n++)); PC=$((${n} * 100 / ${total})); \
193 echo "# $p";if [[ $(dpkg -l | grep "$p" | cut -d' ' -f1 | head -1) \
194 = "ii" ]]; then purge "$p"; fi; echo "$PC"; done ) \
195 | zenity --progress --title="Désinstallation de" --text="" \
196 --no-cancel --auto-close
197
198 total=${#ppas[@]}
199 n=0
200 ( for p in ${ppas[@]}; do ((n++)); PC=$((${n} * 100 / ${total})); \
201 srclst=$(echo "$p" | cut -d':' -f2 | sed 's:/:-:'); \
202 srclst+=$(echo "-"$(lsb_release -sc)".list"); \
203 echo "# $p";if [[ ! -f /etc/apt/sources.list.d/$srclst ]]; \
204 then addrep "$p"; fi; echo "$PC"; done ) \
205 | zenity --progress --title="Installation du ppa" --text="" \
206 --no-cancel --auto-close
207
208 ( apt-get update ) \
209 | zenity --progress \
210 --title="Mise à jour du cache" \
211 --width=400 --text="Mise à jour du cache" \
212 --pulsate --no-cancel --auto-close
213
214 total=${#paquets[@]}
215 n=0
216 ( for p in ${paquets[@]}; do ((n++)); PC=$((${n} * 100 / ${total})); \
217 echo "# $p";if [[ $(dpkg -l | grep "$p" | cut -d' ' -f1 | head -1) \
218 != "ii" ]]; then inst "$p" >> /dev/null; fi; echo "$PC"; done ) \
219 | zenity --progress --title="Installation de" --text="" \
220 --no-cancel --auto-close
221
222 if [[ $tlp = true ]]; then tlp start; fi
223
224 if [[ $gufw = true ]]; then ufw enable; fi
225
226 ( apt-get dist-upgrade -y ) \
227 | zenity --progress \
228 --title="Mises à jour" \
229 --text="" --pulsate --no-cancel --auto-close
230
231 ( apt-get autoremove --purge -y; apt-get clean ) \
232 | zenity --progress \
233 --title="Nettoyage" \
234 --text="" --pulsate --no-cancel --auto-close
235
236 rboot=$(zenity --question --title="Redémarrage" --text="Souhaitez-vous\n \
237 redémarrer maintenant ?" --ok-label="Oui" --cancel-label="Non")
238 if [[ $rboot ]]; then reboot; fi
239
240 exit 0
nany@stupidcomputer:~$ ./nam1962-xubuntu-brutal.sh --help
Usage : sudo ./nam1962-xubuntu-brutal.sh {-F | --full | -h | --help}
Options :
-F --full Installation complète sans demande.
-h --help Affichage de cette aide
nany@stupidcomputer:~$
Il te reste à comprendre ce qu’il y a dedans pour y mettre les commentaires qui vont bien ( ).
Je n’ai pas mis les polices Microsoft® car c’est a priori bloquant.
Hors ligne
#20 Le 16/05/2015, à 18:20
- nam1962
Re : Aide pour scripter mon tuto de finalisation/optimisation
Wahhh, je sors dîner et je teste demain matin, merci !!!
[ Modéré ]
Hors ligne
#21 Le 16/05/2015, à 18:59
- nany
Re : Aide pour scripter mon tuto de finalisation/optimisation
Correction de la ligne 97 :
97 screenlets screenlets-pack-all gimp gimp-data gimp-data-extras )
J’avais oublié Gimp pour l’option full.
Hors ligne
#22 Le 17/05/2015, à 08:50
- nam1962
Re : Aide pour scripter mon tuto de finalisation/optimisation
Groumpf, mon terminal me fait un gag ou quoi ?
J'ai créé un fichier .sh sur mon bureau avec tes lignes, je veux le glisser sur mon terminal pour avoir son chemin, histoire de passer un
cut -f2-
et... rien...
Ca devrait me donner le chemin du fichier, non ?
Dernière modification par nam1962 (Le 17/05/2015, à 08:50)
[ Modéré ]
Hors ligne
#23 Le 17/05/2015, à 08:59
- Christophe C
Re : Aide pour scripter mon tuto de finalisation/optimisation
Tien jojo81 propose de mettre la liste des programmes en externe. Tu peux aussi faire une boucle d'installation :
# installation des logiciels via une boucle
while read programme
do
echo "installe $programme"
sudo apt-get install -y $programme
case $? in
100) compteur=$(( $compteur+1 )) ; bug[$compteur]=$programme;;
esac
echo " "
done < <(
echo filezilla
echo gparted
echo libdvdcss2
echo ffmpeg
echo asunder #Transforme un CD musique en MP3
echo unetbootin
echo gimp
echo gimp-resynthesizer
echo grub-customizer
echo trash-cli # permet de vider la corbeille au clic-droit dans plank
) #fin de la liste des programmes
#
L'avantage est qu'un sudo apt install xxx par programme c'est un peu lent, et que un sudo apt install xxx yyyy zzz plante l'installation si le prog yyy n'est pas trouvé. La boucle par contre continue.
Mais c'est plus pour te montrer le fonctionnement d'une boucle, ce n'est pas indispensable.
Pour ta question #22, je t'ai répondu sur l'autre fil : marche chez moi sans pb.
Dernière modification par Christophe C (Le 17/05/2015, à 09:10)
BountySource - Faite un petit don, ponctuel ou récurent, pour soutenir le développement de XFCE.
Timeshift - Sécurité : pensez à paramétrer des points de restauration système.
Euclide : « Ce qui est affirmé sans preuve peut être nié sans preuve ».
Hors ligne
#24 Le 17/05/2015, à 09:08
- nam1962
Re : Aide pour scripter mon tuto de finalisation/optimisation
Je regarde aussi çà, merci
Pour le comportement du terminal je poste sur le fil wily avant d'aller sur launchpad : ça fonctionne normalement sur mon ordi qui est resté en 14.04.
[ Modéré ]
Hors ligne
#25 Le 17/05/2015, à 09:10
- Christophe C
Re : Aide pour scripter mon tuto de finalisation/optimisation
Ca marche chez moi sur 15.04
BountySource - Faite un petit don, ponctuel ou récurent, pour soutenir le développement de XFCE.
Timeshift - Sécurité : pensez à paramétrer des points de restauration système.
Euclide : « Ce qui est affirmé sans preuve peut être nié sans preuve ».
Hors ligne