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 13/05/2015, à 11: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, à 11:39)


[ Modéré ]

Hors ligne

#2 Le 13/05/2015, à 12: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, à 12: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 tongue

(Ma question subsidiaire serait de voir si on peut en faire un cd d'install)


[ Modéré ]

Hors ligne

#4 Le 13/05/2015, à 12: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 wink

Dernière modification par Compte anonymisé (Le 13/05/2015, à 12:43)

#5 Le 13/05/2015, à 12: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.


Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.

Hors ligne

#6 Le 13/05/2015, à 13:27

michel_04

Re : Aide pour scripter mon tuto de finalisation/optimisation

Bonjour,

Un peu dans le genre du script ADDON CD (RTU (road to Ubuntu)) de Renzo ?

A+

Hors ligne

#7 Le 13/05/2015, à 13: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 ( wink )


[ Modéré ]

Hors ligne

#8 Le 14/05/2015, à 15: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, à 16: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
nam1962 a écrit :

…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, à 16:46)

Hors ligne

#10 Le 14/05/2015, à 16: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 wink
(bon, je commence juste le python)

Dernière modification par nam1962 (Le 14/05/2015, à 16:47)


[ Modéré ]

Hors ligne

#11 Le 14/05/2015, à 16:57

erresse

Re : Aide pour scripter mon tuto de finalisation/optimisation

nam1962 a écrit :

@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 résolu, 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, à 17:50

MicP

Re : Aide pour scripter mon tuto de finalisation/optimisation

message #10, nam1962 a écrit :

Arghh, je vais devoir lacher mes cours de python pour faire du bash ou du whiptail alors smile

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, à 18:44

nam1962

Re : Aide pour scripter mon tuto de finalisation/optimisation

MicP a écrit :

(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 wink


[ Modéré ]

Hors ligne

#14 Le 14/05/2015, à 19:08

Compte anonymisé

Re : Aide pour scripter mon tuto de finalisation/optimisation

nam1962 a écrit :

oui, mais ça me fait un bouton dans le terminal que je peux faire agir avec tab et enter, pas avec la souris wink

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, à 17: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, à 17: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 résolu, 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, à 18: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 çà ! big_smile


[ Modéré ]

Hors ligne

#17 Le 16/05/2015, à 18: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 résolu, 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, à 19:09

nam1962

Re : Aide pour scripter mon tuto de finalisation/optimisation

Oui ! Je vais regarder le plan (et les suggestions wink )


[ Modéré ]

Hors ligne

#19 Le 16/05/2015, à 19: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 ( tongue ).
Je n’ai pas mis les polices Microsoft® car c’est a priori bloquant.

Hors ligne

#20 Le 16/05/2015, à 19: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, à 19: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. wink

Hors ligne

#22 Le 17/05/2015, à 09: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, à 09:50)


[ Modéré ]

Hors ligne

#23 Le 17/05/2015, à 09: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, à 10: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, à 10:08

nam1962

Re : Aide pour scripter mon tuto de finalisation/optimisation

Je regarde aussi çà, merci smile
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, à 10: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