<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<atom:link href="http://forum.ubuntu-fr.org/extern.php?action=feed&amp;tid=266261&amp;type=rss" rel="self" type="application/rss+xml" />
		<title><![CDATA[Forum Ubuntu-fr.org / [Script] Réinstallation automatique des paquets sur un système neuf]]></title>
		<link>http://forum.ubuntu-fr.org/viewtopic.php?id=266261</link>
		<description><![CDATA[Les sujets les plus récents dans [Script] Réinstallation automatique des paquets sur un système neuf.]]></description>
		<lastBuildDate>Tue, 26 Feb 2013 16:15:33 +0000</lastBuildDate>
		<generator>FluxBB</generator>
		<item>
			<title><![CDATA[Réponse à&#160;:  [Script] Réinstallation automatique des paquets sur un système neuf]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=12715671#p12715671</link>
			<description><![CDATA[<p>salut<br />Qu&#039;est-ce qui te fait penser que ça inclue aussi les paquets par défaut?</p><div class="quotebox"><blockquote><div><p>Par ailleurs, pourquoi faire « names=$(commande1) &amp;&amp; echo &quot;$names&quot; | commande2 | commande 3 » là où tu peux faire « names=$(commande1|commande2|commande3) »</p></div></blockquote></div><p>bah je pensais faire comme toi mais j&#039;y suis pas arrivé<br />je pense que echo ne le permet pas<br />edit:<br />quand je fait cette commande j&#039;ai 232 paquets<br />quand je fait</p><div class="codebox"><pre><code>names=$(aptitude search &#039;~i&#039;) &amp;&amp; echo &quot;$names&quot; | colrm 1 4 |cut -d&quot; &quot; -f1</code></pre></div><p>j&#039;en ai 1378<br />redit: ce n&#039;est peut-être pas très significatif chez moi parce que j&#039;ai installé mon système manuellement <img src="http://forum.ubuntu-fr.org/img/smilies/big_smile.png" width="15" height="15" alt="big_smile" /></p><p>edit 3 :<br />il n&#039;y a pas besoin de echo </p><div class="codebox"><pre><code>aptitude search &#039;~i !~M&#039;| colrm 1 4 |cut -d&quot; &quot; -f1</code></pre></div>]]></description>
			<author><![CDATA[dummy@example.com (amj)]]></author>
			<pubDate>Tue, 26 Feb 2013 16:15:33 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=12715671#p12715671</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [Script] Réinstallation automatique des paquets sur un système neuf]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=12708431#p12708431</link>
			<description><![CDATA[<p>Je ne pense pas que la commande soit adéquate (à mon avis elle inclut aussi les paquets installés par défaut).</p><p>Par ailleurs, pourquoi faire « names=$(commande1) &amp;&amp; echo &quot;$names&quot; | commande2 | commande 3 » là où tu peux faire « names=$(commande1|commande2|commande3) » ?</p><p>Pour finir (on va me dire que je suis obsédé par awk…) mais voici le plus efficace :</p><div class="codebox"><pre><code>names=$(commande1 | awk &#039;{print $2}&#039;)</code></pre></div><p>(mais, encore une fois, je pense que ta commande aptitude ne fait pas l&#039;affaire)</p>]]></description>
			<author><![CDATA[dummy@example.com (nesthib)]]></author>
			<pubDate>Tue, 26 Feb 2013 00:16:30 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=12708431#p12708431</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [Script] Réinstallation automatique des paquets sur un système neuf]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=12704921#p12704921</link>
			<description><![CDATA[<p>salut<br />je me demandais si la sortie de cette commande convenait comme fichier source</p><div class="codebox"><pre><code>names=$(aptitude search &#039;~i !~M&#039;) &amp;&amp; echo &quot;$names&quot; | colrm 1 4 |colrm 33</code></pre></div><p>normalement ça renvoie les paquets installé manuellement (enfin j&#039;espère <img src="http://forum.ubuntu-fr.org/img/smilies/big_smile.png" width="15" height="15" alt="big_smile" /> )<br />edit:<br />au fait ceci est sans doute mieux</p><div class="codebox"><pre><code>names=$(aptitude search &#039;~i !~M&#039;) &amp;&amp; echo &quot;$names&quot; | colrm 1 4 |cut -d&quot; &quot; -f1</code></pre></div>]]></description>
			<author><![CDATA[dummy@example.com (amj)]]></author>
			<pubDate>Mon, 25 Feb 2013 18:21:31 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=12704921#p12704921</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [Script] Réinstallation automatique des paquets sur un système neuf]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=12540271#p12540271</link>
			<description><![CDATA[<p>C&#039;est une piste d&#039;amélioration de l&#039; ins(réins)tallation d&#039;ubuntu parce qu&#039;étant donné le caractère aléatoire de la mise à jour en ligne qui crashe une fois sur deux, le fait de pouvoir répertorier ses logiciels et les réinstaller automatiquement lors d&#039;une mise à jour du système ne serait pas de trop...<br />A chaque fois que je procède, j&#039;y pense. Puis bien sur j&#039;oublie et je passe à autre chose.<br />De même qu&#039;à chaque install je me demande pourquoi mon beau buntu m&#039;installe une flopée de polices de caractères inutiles type coréen dont je n&#039;ai rien à battre et que je dois virer à chaque fois. Heureusement que depuis quelques temps déjà le répertoires .fonts existe pour nous éviter de réinstaller à la main toutes les fontes utiles.<br />Bref....</p>]]></description>
			<author><![CDATA[dummy@example.com (BlueTak)]]></author>
			<pubDate>Mon, 11 Feb 2013 04:48:13 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=12540271#p12540271</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [Script] Réinstallation automatique des paquets sur un système neuf]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=12540251#p12540251</link>
			<description><![CDATA[<p>Pour être honnête il s&#039;agit d&#039;un vieux script qui mériterait sûrement d&#039;être récrit et dont je ne me sers pas <img src="http://forum.ubuntu-fr.org/img/smilies/tongue.png" width="15" height="15" alt="tongue" /><br />Quand je vois le nombre de vues de la discussion j&#039;espère qu&#039;il a été/est utile à certains.</p>]]></description>
			<author><![CDATA[dummy@example.com (nesthib)]]></author>
			<pubDate>Mon, 11 Feb 2013 04:20:14 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=12540251#p12540251</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [Script] Réinstallation automatique des paquets sur un système neuf]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=12538921#p12538921</link>
			<description><![CDATA[<p>ça m&#039;a l&#039;air sympa &amp; pratique ce script <img src="http://forum.ubuntu-fr.org/img/smilies/smile.png" width="15" height="15" alt="smile" /> bien vu</p>]]></description>
			<author><![CDATA[dummy@example.com (sam7)]]></author>
			<pubDate>Sun, 10 Feb 2013 21:30:27 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=12538921#p12538921</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [Script] Réinstallation automatique des paquets sur un système neuf]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=12520861#p12520861</link>
			<description><![CDATA[<p>cat -n reinstall.sh&#160; &#160; &#160; 1&#160; &#160; #!/bin/bash<br />&#160; &#160; &#160;2&#160; &#160; ###########################################################################<br />&#160; &#160; &#160;3&#160; &#160; #&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;#<br />&#160; &#160; &#160;4&#160; &#160; # Script de réinstallation des programmes après réinstallation du système #<br />&#160; &#160; &#160;5&#160; &#160; #&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;v0.2&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; #<br />&#160; &#160; &#160;6&#160; &#160; #&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;par nesthib&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;#<br />&#160; &#160; &#160;7&#160; &#160; #&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;#<br />&#160; &#160; &#160;8&#160; &#160; ###########################################################################<br />&#160; &#160; &#160;9&#160; &#160; #######################<br />&#160; &#160; 10&#160; &#160; #######################<br />&#160; &#160; 11&#160; &#160; #<br />&#160; &#160; 12&#160; &#160; # ce script permet l&#039;installation de multiples paquets dont la liste est contenue dans un fichier texte<br />&#160; &#160; 13&#160; &#160; # l&#039;installabilité des paquets est vérifiée au préalable<br />&#160; &#160; 14&#160; &#160; #<br />&#160; &#160; 15&#160; &#160; # il suffit de créer un fichier dans lequel sont listés les noms des paquets à installer et d&#039;indiquer le chemin du fichier <br />&#160; &#160; 16&#160; &#160; # si aucun argument n&#039;est donné le fichier proglist (s&#039;il existe) contenu dans le même dossier que le script est utilisé<br />&#160; &#160; 17&#160; &#160; #<br />&#160; &#160; 18&#160; &#160; # À la fin de l&#039;exécution un &quot;log&quot; est créé indiquant quels paquets ne sont pas dans les dépots,<br />&#160; &#160; 19&#160; &#160; # lesquels étaient déjà installés et ceux qui ont été installés<br />&#160; &#160; 20&#160; &#160; #<br />&#160; &#160; 21&#160; &#160; #######################<br />&#160; &#160; 22&#160; &#160; #######################<br />&#160; &#160; 23&#160; &#160; #<br />&#160; &#160; 24&#160; &#160; if [ $UID -ne 0 ]<br />&#160; &#160; 25&#160; &#160; then<br />&#160; &#160; 26&#160; &#160;&#160; &#160; &#160;echo &quot;vous devez être root pour lancer le script&quot;<br />&#160; &#160; 27&#160; &#160;&#160; &#160; &#160;exit 1&#160; &#160; <br />&#160; &#160; 28&#160; &#160; fi<br />&#160; &#160; 29&#160; &#160; <br />&#160; &#160; 30&#160; &#160; {<br />&#160; &#160; 31&#160; &#160; #Variables<br />&#160; &#160; 32&#160; &#160; SCRIPT_PATH=&quot;$(pwd)/${0%/*}/&quot;<br />&#160; &#160; 33&#160; &#160; PROGLIST_FILE=&quot;${SCRIPT_PATH}proglist&quot;<br />&#160; &#160; 34&#160; &#160; if [ $# -gt 0 ] ;then PROGLIST_FILE=&quot;$1&quot; ;fi<br />&#160; &#160; 35&#160; &#160; <br />&#160; &#160; 36&#160; &#160; if [ ! -f &quot;$PROGLIST_FILE&quot; ] ;then echo &quot;lecture de \&quot;${PROGLIST_FILE#${SCRIPT_PATH}}\&quot; impossible&quot; ; exit 1 ; fi<br />&#160; &#160; 37&#160; &#160; <br />&#160; &#160; 38&#160; &#160; echo &quot;lecture de \&quot;${PROGLIST_FILE#${SCRIPT_PATH}}\&quot;&quot;<br />&#160; &#160; 39&#160; &#160; <br />&#160; &#160; 40&#160; &#160; #version actuelle du systeme<br />&#160; &#160; 41&#160; &#160; VERSION=$(lsb_release -c | cut -c 11-)<br />&#160; &#160; 42&#160; &#160; <br />&#160; &#160; 43&#160; &#160; # Sauvegarde de la liste des dépots<br />&#160; &#160; 44&#160; &#160; cp /etc/apt/sources.list /etc/apt/sources.list.save<br />&#160; &#160; 45&#160; &#160; <br />&#160; &#160; 46&#160; &#160; # rajout d&#039;autres dépôts (et clés d&#039;authentifications) dans sources.list s&#039;ils sont absents<br />&#160; &#160; 47&#160; &#160; if ! grep -q &quot;deb <a href="http://fr.packages.medibuntu.org/">http://fr.packages.medibuntu.org/</a> $VERSION free non-free&quot; /etc/apt/sources.list #test de l&#039;absence<br />&#160; &#160; 48&#160; &#160; then <br />&#160; &#160; 49&#160; &#160;&#160; &#160; &#160;echo &#039;ajout du dépôt medibuntu au sources.list&#039;<br />&#160; &#160; 50&#160; &#160;&#160; &#160; &#160;echo -e &quot;\n#MEDIBUNTU\ndeb <a href="http://fr.packages.medibuntu.org/">http://fr.packages.medibuntu.org/</a> $VERSION free non-free&quot; &gt;&gt; /etc/apt/sources.list<br />&#160; &#160; 51&#160; &#160;&#160; &#160; &#160;wget -q <a href="http://fr.packages.medibuntu.org/medibuntu-key.gpg">http://fr.packages.medibuntu.org/medibuntu-key.gpg</a> -O- | sudo apt-key add -<br />&#160; &#160; 52&#160; &#160; fi<br />&#160; &#160; 53&#160; &#160; <br />&#160; &#160; 54&#160; &#160; #############################################################################<br />&#160; &#160; 55&#160; &#160; <br />&#160; &#160; 56&#160; &#160; #Rechargement de la liste des dépôts et des paquets<br />&#160; &#160; 57&#160; &#160; apt-get update<br />&#160; &#160; 58&#160; &#160; <br />&#160; &#160; 59&#160; &#160; #tri des paquets selon les états &quot;non installable&quot;, &quot;installé&quot;, &quot;non installé&quot;<br />&#160; &#160; 60&#160; &#160; #création des fichiers temporaires recevant les noms des paquets triés<br />&#160; &#160; 61&#160; &#160; &gt;&quot;${SCRIPT_PATH}/noninstallable&quot;<br />&#160; &#160; 62&#160; &#160; &gt;&quot;${SCRIPT_PATH}/noninstalle&quot;<br />&#160; &#160; 63&#160; &#160; &gt;&quot;${SCRIPT_PATH}/installe&quot;<br />&#160; &#160; 64&#160; &#160; <br />&#160; &#160; 65&#160; &#160; install_ok=0<br />&#160; &#160; 66&#160; &#160; <br />&#160; &#160; 67&#160; &#160; for arg in `grep -v &quot;#&quot; &quot;${PROGLIST_FILE}&quot; | grep -vx &quot;&quot; | sed &#039;:a;N;$!ba;s/\n/\ /g&#039;` #récupère le nom des paquets (uniquement) du fichier proglist sur une ligne<br />&#160; &#160; 68&#160; &#160; do PAQUET=${arg}<br />&#160; &#160; 69&#160; &#160;&#160; &#160; &#160;if apt-cache pkgnames | grep -x -q ${PAQUET} #test de l&#039;existence du paquet dans les dépots<br />&#160; &#160; 70&#160; &#160;&#160; &#160; &#160;then<br />&#160; &#160; 71&#160; &#160;&#160; &#160; &#160; &#160; &#160;# test de l&#039;état non installé du paquet<br />&#160; &#160; 72&#160; &#160;&#160; &#160; &#160; &#160; &#160;if apt-cache policy ${PAQUET} | grep Installé | grep -q aucun<br />&#160; &#160; 73&#160; &#160;&#160; &#160; &#160; &#160; &#160; &#160; &#160;then echo &quot;${PAQUET} non installé&quot;<br />&#160; &#160; 74&#160; &#160;&#160; &#160; &#160; &#160; &#160; &#160; &#160;echo &quot;${PAQUET}&quot; &gt;&gt;&quot;${SCRIPT_PATH}/noninstalle&quot;<br />&#160; &#160; 75&#160; &#160;&#160; &#160; &#160; &#160; &#160; &#160; &#160;install_ok=1<br />&#160; &#160; 76&#160; &#160;&#160; &#160; &#160; &#160; &#160; &#160; &#160;else echo &quot;${PAQUET} installé&quot;<br />&#160; &#160; 77&#160; &#160;&#160; &#160; &#160; &#160; &#160; &#160; &#160;echo &quot;${PAQUET}&quot; &gt;&gt;&quot;${SCRIPT_PATH}/installe&quot;<br />&#160; &#160; 78&#160; &#160;&#160; &#160; &#160; &#160; &#160;fi<br />&#160; &#160; 79&#160; &#160; &#160; &#160; else<br />&#160; &#160; 80&#160; &#160; &#160; &#160; &#160; &#160; echo &quot;${PAQUET} non installable&quot;<br />&#160; &#160; 81&#160; &#160;&#160; &#160; &#160; &#160; &#160;echo &quot;${PAQUET}&quot; &gt;&gt;&quot;${SCRIPT_PATH}/noninstallable&quot;<br />&#160; &#160; 82&#160; &#160;&#160; &#160; &#160;fi<br />&#160; &#160; 83&#160; &#160; done<br />&#160; &#160; 84&#160; &#160; <br />&#160; &#160; 85&#160; &#160; #############################################################################<br />&#160; &#160; 86&#160; &#160; <br />&#160; &#160; 87&#160; &#160; #Installation des paquets installables non installés<br />&#160; &#160; 88&#160; &#160; if [ $install_ok -eq 1 ]<br />&#160; &#160; 89&#160; &#160; then<br />&#160; &#160; 90&#160; &#160;&#160; &#160; &#160;apt-get install $(grep -v &quot;#&quot; &quot;${SCRIPT_PATH}/noninstalle&quot; | sort | uniq | sed &#039;:a;N;$!ba;s/\n/\ /g&#039;) #installe les paquets de la liste après avoir éliminé les doublons potentiels<br />&#160; &#160; 91&#160; &#160; fi<br />&#160; &#160; 92&#160; &#160; <br />&#160; &#160; 93&#160; &#160; #création du log d&#039;installation<br />&#160; &#160; 94&#160; &#160; echo &quot;Paquets installés :&quot; &gt;&quot;${SCRIPT_PATH}/log&quot;<br />&#160; &#160; 95&#160; &#160; cat &quot;${SCRIPT_PATH}/noninstalle&quot; &gt;&gt;&quot;${SCRIPT_PATH}/log&quot;<br />&#160; &#160; 96&#160; &#160; echo &quot;&quot; &gt;&gt;&quot;${SCRIPT_PATH}/log&quot;<br />&#160; &#160; 97&#160; &#160; echo &quot;Paquets déjà installés :&quot; &gt;&gt;&quot;${SCRIPT_PATH}/log&quot;<br />&#160; &#160; 98&#160; &#160; cat &quot;${SCRIPT_PATH}/installe&quot; &gt;&gt;&quot;${SCRIPT_PATH}/log&quot;<br />&#160; &#160; 99&#160; &#160; echo &quot;&quot; &gt;&gt;&quot;${SCRIPT_PATH}/log&quot;<br />&#160; &#160;100&#160; &#160; echo &quot;Paquets absents des dépots :&quot; &gt;&gt;&quot;${SCRIPT_PATH}/log&quot;<br />&#160; &#160;101&#160; &#160; cat &quot;${SCRIPT_PATH}/noninstallable&quot; &gt;&gt;&quot;${SCRIPT_PATH}/log&quot;<br />&#160; &#160;102&#160; &#160; <br />&#160; &#160;103&#160; &#160; #suppression des fichiers temporaires<br />&#160; &#160;104&#160; &#160; rm &quot;${SCRIPT_PATH}/noninstallable&quot;<br />&#160; &#160;105&#160; &#160; rm &quot;${SCRIPT_PATH}/noninstalle&quot;<br />&#160; &#160;106&#160; &#160; rm &quot;${SCRIPT_PATH}/installe&quot;<br />&#160; &#160;107&#160; &#160; <br />&#160; &#160;108&#160; &#160; }2&gt;reinstall.error.log<br />&#160; &#160;109&#160; &#160; exit 0</p>]]></description>
			<author><![CDATA[dummy@example.com (kimic12)]]></author>
			<pubDate>Sat, 09 Feb 2013 13:21:54 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=12520861#p12520861</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [Script] Réinstallation automatique des paquets sur un système neuf]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=9349811#p9349811</link>
			<description><![CDATA[<p>@kimic12<br />S&#039;il te plaît, peux-tu poster le résultat de</p><div class="codebox"><pre><code>cat -n reinstall.sh </code></pre></div><p>Ce sera plus simple pour les fainéants qui veulent t&#039;aider ! :-)</p><br /><p>Définissez un fichier (et donc la variable <em>fichierDepots</em>) pour utiliser cette boucle juste après la section de dépôts dans le script :</p><div class="codebox"><pre><code>egrep &quot;^[^#]&quot; &quot;${fichierDepots}&quot; | while read depotPPA; do
    fichier=&quot;${depotPPA//\//-}&quot;;
    fichier=&quot;/etc/apt/sources.list.d/${fichier//./_}-${VERSION}.list&quot;;
    if [[ ! -e &quot;${fichier}&quot; ]]; then
        echo &quot;Ajout du ppa ${depotPPA}&quot;;
        add-apt-repository &quot;ppa:${depotPPA}&quot; ;
    fi; 
done;</code></pre></div>]]></description>
			<author><![CDATA[dummy@example.com (nordinatueur)]]></author>
			<pubDate>Mon, 21 May 2012 15:03:16 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=9349811#p9349811</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [Script] Réinstallation automatique des paquets sur un système neuf]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=9338641#p9338641</link>
			<description><![CDATA[<p>Bonjour,</p><p>Je reprend cet ancien message j&#039;ai essayé d&#039;utiliser le script&#160; v0.2 pour réinstaller mes programmes or j&#039;obtiens l&#039;erreur suivante : </p><div class="codebox"><pre><code>&gt; sudo bash ./reinstall.sh proglist
./reinstall.sh: ligne 110: Erreur de syntaxe : fin de fichier prématurée</code></pre></div><p>Voici mon script : </p><div class="codebox"><pre class="vscroll"><code>#!/bin/bash
###########################################################################
#                                                                         #
# Script de réinstallation des programmes après réinstallation du système #
#                                 v0.2                                    #
#                             par nesthib                                 #
#                                                                         #
###########################################################################
#######################
#######################
#
# ce script permet l&#039;installation de multiples paquets dont la liste est contenue dans un fichier texte
# l&#039;installabilité des paquets est vérifiée au préalable
#
# il suffit de créer un fichier dans lequel sont listés les noms des paquets à installer et d&#039;indiquer le chemin du fichier 
# si aucun argument n&#039;est donné le fichier proglist (s&#039;il existe) contenu dans le même dossier que le script est utilisé
#
# À la fin de l&#039;exécution un &quot;log&quot; est créé indiquant quels paquets ne sont pas dans les dépots,
# lesquels étaient déjà installés et ceux qui ont été installés
#
#######################
#######################
#
if [ $UID -ne 0 ]
then
    echo &quot;vous devez être root pour lancer le script&quot;
    exit 1    
fi

{
#Variables
SCRIPT_PATH=&quot;$(pwd)/${0%/*}/&quot;
PROGLIST_FILE=&quot;${SCRIPT_PATH}proglist&quot;
if [ $# -gt 0 ] ;then PROGLIST_FILE=&quot;$1&quot; ;fi

if [ ! -f &quot;$PROGLIST_FILE&quot; ] ;then echo &quot;lecture de \&quot;${PROGLIST_FILE#${SCRIPT_PATH}}\&quot; impossible&quot; ; exit 1 ; fi

echo &quot;lecture de \&quot;${PROGLIST_FILE#${SCRIPT_PATH}}\&quot;&quot;

#version actuelle du systeme
VERSION=$(lsb_release -c | cut -c 11-)

# Sauvegarde de la liste des dépots
cp /etc/apt/sources.list /etc/apt/sources.list.save

# rajout d&#039;autres dépôts (et clés d&#039;authentifications) dans sources.list s&#039;ils sont absents
if ! grep -q &quot;deb http://fr.packages.medibuntu.org/ $VERSION free non-free&quot; /etc/apt/sources.list #test de l&#039;absence
then 
    echo &#039;ajout du dépôt medibuntu au sources.list&#039;
    echo -e &quot;\n#MEDIBUNTU\ndeb http://fr.packages.medibuntu.org/ $VERSION free non-free&quot; &gt;&gt; /etc/apt/sources.list
    wget -q http://fr.packages.medibuntu.org/medibuntu-key.gpg -O- | sudo apt-key add -
fi

#############################################################################

#Rechargement de la liste des dépôts et des paquets
apt-get update

#tri des paquets selon les états &quot;non installable&quot;, &quot;installé&quot;, &quot;non installé&quot;
#création des fichiers temporaires recevant les noms des paquets triés
&gt;&quot;${SCRIPT_PATH}/noninstallable&quot;
&gt;&quot;${SCRIPT_PATH}/noninstalle&quot;
&gt;&quot;${SCRIPT_PATH}/installe&quot;

install_ok=0

for arg in `grep -v &quot;#&quot; &quot;${PROGLIST_FILE}&quot; | grep -vx &quot;&quot; | sed &#039;:a;N;$!ba;s/\n/\ /g&#039;` #récupère le nom des paquets (uniquement) du fichier proglist sur une ligne
do PAQUET=${arg}
    if apt-cache pkgnames | grep -x -q ${PAQUET} #test de l&#039;existence du paquet dans les dépots
    then
        # test de l&#039;état non installé du paquet
        if apt-cache policy ${PAQUET} | grep Installé | grep -q aucun
            then echo &quot;${PAQUET} non installé&quot;
            echo &quot;${PAQUET}&quot; &gt;&gt;&quot;${SCRIPT_PATH}/noninstalle&quot;
            install_ok=1
            else echo &quot;${PAQUET} installé&quot;
            echo &quot;${PAQUET}&quot; &gt;&gt;&quot;${SCRIPT_PATH}/installe&quot;
        fi
    else
        echo &quot;${PAQUET} non installable&quot;
        echo &quot;${PAQUET}&quot; &gt;&gt;&quot;${SCRIPT_PATH}/noninstallable&quot;
    fi
done

#############################################################################

#Installation des paquets installables non installés
if [ $install_ok -eq 1 ]
then
    apt-get install $(grep -v &quot;#&quot; &quot;${SCRIPT_PATH}/noninstalle&quot; | sort | uniq | sed &#039;:a;N;$!ba;s/\n/\ /g&#039;) #installe les paquets de la liste après avoir éliminé les doublons potentiels
fi

#création du log d&#039;installation
echo &quot;Paquets installés :&quot; &gt;&quot;${SCRIPT_PATH}/log&quot;
cat &quot;${SCRIPT_PATH}/noninstalle&quot; &gt;&gt;&quot;${SCRIPT_PATH}/log&quot;
echo &quot;&quot; &gt;&gt;&quot;${SCRIPT_PATH}/log&quot;
echo &quot;Paquets déjà installés :&quot; &gt;&gt;&quot;${SCRIPT_PATH}/log&quot;
cat &quot;${SCRIPT_PATH}/installe&quot; &gt;&gt;&quot;${SCRIPT_PATH}/log&quot;
echo &quot;&quot; &gt;&gt;&quot;${SCRIPT_PATH}/log&quot;
echo &quot;Paquets absents des dépots :&quot; &gt;&gt;&quot;${SCRIPT_PATH}/log&quot;
cat &quot;${SCRIPT_PATH}/noninstallable&quot; &gt;&gt;&quot;${SCRIPT_PATH}/log&quot;

#suppression des fichiers temporaires
rm &quot;${SCRIPT_PATH}/noninstallable&quot;
rm &quot;${SCRIPT_PATH}/noninstalle&quot;
rm &quot;${SCRIPT_PATH}/installe&quot;

}2&gt;reinstall.error.log
exit 0</code></pre></div><p>et mon proglist : </p><div class="codebox"><pre class="vscroll"><code>gcc
subversion
subversion-tools 
geany
vim
codeblocks
vlc
gimp
java
sun-java6-jre


sun-java6-pluginsun-java6-fonts
update-java-alternatives 
java-6-sun
 
skype
adobe-flashplugin
acroread
adobeair
sun-java6-jre
sun-java6-jdk
tint2
kile
texlive-full 
eclipse
compiz
compizconfig-settings-manager</code></pre></div><p>La ligne 110 est celle après exit 0</p>]]></description>
			<author><![CDATA[dummy@example.com (kimic12)]]></author>
			<pubDate>Sun, 20 May 2012 18:18:08 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=9338641#p9338641</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [Script] Réinstallation automatique des paquets sur un système neuf]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=4684481#p4684481</link>
			<description><![CDATA[<p>@SurferSansSouci : merci beaucoup <img src="http://forum.ubuntu-fr.org/img/smilies/smile.png" width="15" height="15" alt="smile" /><br />@Christophe C : en effet quand le script a été écrit, add-apt-repository n&#039;existait pas encore mais libre à toi de le modifier pour ajouter cette fonctionnalité<br />@choops : tout à fait <img src="http://forum.ubuntu-fr.org/img/smilies/smile.png" width="15" height="15" alt="smile" /></p>]]></description>
			<author><![CDATA[dummy@example.com (nesthib)]]></author>
			<pubDate>Wed, 25 May 2011 12:27:05 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=4684481#p4684481</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [Script] Réinstallation automatique des paquets sur un système neuf]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=4684021#p4684021</link>
			<description><![CDATA[<p>Question de date de 1ère version, je pense (ça n&#039;est que relativement récent l&#039;apparition de add-apt-repository), et pas d&#039;adaptation faite dans ce sens jusqu&#039;ici.</p><p>En même temps, je pense m&#039;en faire un sur ce modèle en incluant add-apt-repository lorsque c&#039;est possible (certains dépôts un peu exotiques comme celui de virtualbox ne le permettent pas) pour tester. Je fais un retour là-dessus dès que je l&#039;aurai testé.</p>]]></description>
			<author><![CDATA[dummy@example.com (choops)]]></author>
			<pubDate>Wed, 25 May 2011 11:56:06 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=4684021#p4684021</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [Script] Réinstallation automatique des paquets sur un système neuf]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=4683291#p4683291</link>
			<description><![CDATA[<p>pourquoi le script n&#039;utilise t&#039;il pas de <strong>add-apt-repository</strong> ? Il y a un avantage ?</p>]]></description>
			<author><![CDATA[dummy@example.com (Christophe C)]]></author>
			<pubDate>Wed, 25 May 2011 11:17:11 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=4683291#p4683291</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [Script] Réinstallation automatique des paquets sur un système neuf]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=4680221#p4680221</link>
			<description><![CDATA[<p>Bonjour nesthib,</p><p>tout simplement bravo pour le script et merci pour le partage. Il fonctionne au poil, dommage que je ne l&#039;eusse pas connu avant!</p>]]></description>
			<author><![CDATA[dummy@example.com (SurferSansSouci)]]></author>
			<pubDate>Wed, 25 May 2011 07:11:37 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=4680221#p4680221</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [Script] Réinstallation automatique des paquets sur un système neuf]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=4220951#p4220951</link>
			<description><![CDATA[<p>Ayé ! j&#039;ai testé le script... mais pour installer maverick 64 bits ! J&#039;avais commencé par installer natty beta2, mais comme j&#039;ai rencontré de gros problèmes lors de l&#039;install (ça plantait au niveau de l&#039;install des drivers nvidia, j&#039;ai pas trop compris ce qui s&#039;est passé) , j&#039;ai dû me rabattre sur maverick. Et finalement, c&#039;est pas plus mal, j&#039;ai maintenant un système en 64 bits, je n&#039;ai plus qu&#039;à attendre la version finale de natty (et les premiers retours concernant d&#039;éventuels pb avec nvidia) pour faire le grand saut... ou pas.</p><p>J&#039;allais oublier, le script marche nickel ! <img src="http://forum.ubuntu-fr.org/img/smilies/big_smile.png" width="15" height="15" alt="big_smile" /> Grand merci pour ce gain de temps !</p>]]></description>
			<author><![CDATA[dummy@example.com (bilbo-le-hobbit)]]></author>
			<pubDate>Thu, 28 Apr 2011 09:04:47 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=4220951#p4220951</guid>
		</item>
		<item>
			<title><![CDATA[Réponse à&#160;:  [Script] Réinstallation automatique des paquets sur un système neuf]]></title>
			<link>http://forum.ubuntu-fr.org/viewtopic.php?pid=4184531#p4184531</link>
			<description><![CDATA[<p>Merci pour ta réponse choops.</p><p>Pour la réactivité de virtual box, c&#039;est plutôt bon signe! Ubuntu prendrait une crédibilité plus importante vis à vis des éditeurs de meilleur niveau, ce ne serait que du bon pour nous!</p><p>Karses</p>]]></description>
			<author><![CDATA[dummy@example.com (karses)]]></author>
			<pubDate>Mon, 25 Apr 2011 18:25:50 +0000</pubDate>
			<guid>http://forum.ubuntu-fr.org/viewtopic.php?pid=4184531#p4184531</guid>
		</item>
	</channel>
</rss>
