<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Lerm-IT Blog</title>
	<atom:link href="http://romain.therrat.fr/feed/" rel="self" type="application/rss+xml" />
	<link>http://romain.therrat.fr</link>
	<description>Blog traitant de technologies informatiques spécialisé dans le Libre et GNU/Linux !</description>
	<lastBuildDate>Wed, 02 May 2012 19:42:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>[JSLint] Installation de JSLint avec NodeJS et utilisation</title>
		<link>http://romain.therrat.fr/nodejs-installation-de-jslint/</link>
		<comments>http://romain.therrat.fr/nodejs-installation-de-jslint/#comments</comments>
		<pubDate>Wed, 21 Mar 2012 15:35:12 +0000</pubDate>
		<dc:creator>lermit</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Installation]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Ligne de commande]]></category>

		<guid isPermaLink="false">http://romain.therrat.fr/?p=461</guid>
		<description><![CDATA[Qu&#8217;est ce que JSLint ? JSLint est un analyseur de code Javascript. Son but est de parser votre code Javascript pour vérifier que vous respecter les règles de coding Javascript. Le produit est développé par Douglas Corckford en javascript. Nous allons ici l&#8217;utiliser en mode &#8230; <a href="http://romain.therrat.fr/nodejs-installation-de-jslint/">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<h1>Qu&#8217;est ce que JSLint ?</h1>
<p>JSLint est un analyseur de code Javascript. Son but est de parser votre code Javascript pour vérifier que vous respecter les règles de coding Javascript.</p>
<p>Le produit est développé par Douglas Corckford en javascript. Nous allons ici l&#8217;utiliser en mode ligne de commande grâce à NodeJS.</p>
<h1>Installation</h1>
<h2>Installer NodeJS</h2>
<p>L&#8217;installation de NodeJS peut se faire de deux manières. Soit avec votre gestionnaire de paquet favori, soit via les sources de NodeJS.</p>
<h3>Installation par gestionnaire de paquet</h3>
<p>Sous gentoo</p>
<blockquote><p># emerge nodejs</p></blockquote>
<p>Sous Debian/Ubuntu</p>
<blockquote><p># aptitude install nodejs</p></blockquote>
<h3>Installation via les sources</h3>
<p>Nous allons tout d&#8217;abord récupérer les sources de NodeJS sur github</p>
<blockquote><p>$ cd ~/Logiciel</p>
<p>$ git clone https://github.com/joyent/node.git nodejs</p></blockquote>
<p>Configurons ensuite la compilation de NodeJS. Nous souhaitons que l&#8217;utilitaire <em>node</em> soit disponible dans notre PATH pour l&#8217;utiliser simplement. Nous allons donc installer <em>node</em> dans <em>/usr/bin/</em> ( mais aussi les dossier /usr/include/node etc &#8230;)</p>
<blockquote><p>$ cd nodejs</p>
<p>$ ./configure &#8211;prefix=/usr</p></blockquote>
<p>La compilation ne pause pas plus de problème</p>
<blockquote><p>$ make</p>
<p># make install</p></blockquote>
<p>Nous avons maintenant accès aux commandes node comme <em>node</em> et <em>npm.</em></p>
<h2>Installer JSLint</h2>
<p>Pour installer JSLint nous allons utiliser le gestionnaire de packet de NodeJS : <em>npm </em>(pour Node Package Manager).</p>
<p>Par défaut npm installe les packets dans le dossier courant. Ceci n&#8217;est pas forcement ce que nous souhaitons. Nous allons donc installer JSLint dans <em>/usr/lib/node_modules.</em></p>
<blockquote><p># cd /usr/lib/node_modules</p>
<p># npm jslint</p></blockquote>
<p>Nous allons maintenant rendre disponible la commande <em>jslint</em> dans notre PATH. Comme nous ne voulons pas modifier notre variable d&#8217;environnement nous allons créer un lien symbolique dans <em>/usr/bin/.</em></p>
<blockquote><p># ln -s /usr/lib/node_modules/jslint/bin/jslint.js /usr/bin/jslint</p></blockquote>
<p>Nous pouvons maintenant utiliser la commande <em>jslint</em>.</p>
<h1>Utilisation</h1>
<p>JSLint est, à l&#8217;origine, développé pour être utilisé via une page web. Aussi sa configuration est réalisée en Javascript. La commande <em>jslint</em> ne fait que exécuter le script javascript jslint.js avec NodeJS (par exemple).</p>
<h3>Utilisation basique</h3>
<p>Chaque options de jslint va influer sur la validation effectuée. Nous pourrions par exemple spécifier si nous autorisons on non l&#8217;utilisation de la méthode <em>eval</em> avec l&#8217;option <em>evil</em> ou le nombre d&#8217;espace utilisés pour l&#8217;indentation (qui par défaut est 4).</p>
<p>La liste des options disponibles sont documentées sur le site de jslint : <a href="http://www.jslint.com/lint.html#options">http://www.jslint.com/lint.html#options</a></p>
<p>Seulement toutes les options ne peuvent être passée via la ligne de commande. Pour obtenir la liste des options disponibles nous pouvons exécuter jslint seul.</p>
<blockquote><p>$ jslint</p>
<p>No files specified.<br />
Usage: /usr/bin/jslint [--indent] [--maxerr] [--maxlen] [--predef] [--anon] [--bitwise] [--browser] [--cap] [--continue] [--css] [--debug] [--devel] [--eqeq] [--es5] [--evil] [--forin] [--fragment] [--newcap] [--node] [--nomen] [--on] [--passfail] [--plusplus] [--properties] [--regexp] [--rhino] [--undef] [--unparam] [--sloppy] [--sub] [--vars] [--white] [--widget] [--windows] [--json] [--color] [--] &lt;scriptfile&gt;&#8230;</p></blockquote>
<p>Nous pouvons donc par exemple tester avec un script Javascript simple</p>
<blockquote><p>function foo() {<br />
var a = 2;<br />
if (a == 2) {<br />
console.warn(&laquo;&nbsp;Equal !&nbsp;&raquo;);<br />
}<br />
}</p></blockquote>
<p>Si nous le validons avec jslint nous obtenons une erreur concernant l&#8217;opérateur de comparaison.</p>
<blockquote><p>$ jslint test.js</p>
<p>test.js<br />
#1 Missing &#8216;use strict&#8217; statement.<br />
var a = 2; // Line 2, Pos 5<br />
#2 Expected &#8216;===&#8217; and instead saw &#8216;==&#8217;.<br />
if (a == 2) { // Line 3, Pos 11</p></blockquote>
<p>Si nous ajoutons l&#8217;option &#8211;eqeq ceci inversera le résultat par défault.</p>
<blockquote><p>$ jslint &#8211;eqeq test.js</p>
<p>test.js<br />
#1 Missing &#8216;use strict&#8217; statement.<br />
var a = 2; // Line 2, Pos 5</p></blockquote>
<p>Nous n&#8217;avons plus maintenant les erreurs relatives à l&#8217;opérateur de comparaison.</p>
<h3>Utilisation avec jQuery</h3>
<p>Un problème se pose rapidement quand nous voulons utiliser jslint avec jQuery.</p>
<blockquote><p>jslint custom.js</p>
<p>custom.js<br />
#1 &#8216;$&#8217; was used before it was defined.<br />
if (!$(&laquo;&nbsp;.bloc_contenu table&gt;tbody&gt;tr&nbsp;&raquo;).hasClass(&laquo;&nbsp;ligne_erreur&nbsp;&raquo;)) { // Line 8, Pos 10<br />
#2 &#8216;$&#8217; was used before it was defined.<br />
$(&laquo;&nbsp;#recherche input&nbsp;&raquo;).attr(&laquo;&nbsp;value&nbsp;&raquo;, &laquo;&nbsp;Rechercher&nbsp;&raquo;); // Line 19, Pos 5<br />
#3 Expected &#8216;$&#8217; at column 9, not column 7.<br />
$(&laquo;&nbsp;#recherche input&nbsp;&raquo;).attr(&laquo;&nbsp;value&nbsp;&raquo;, &laquo;&nbsp;&nbsp;&raquo;); // Line 21, Pos 7<br />
#4 &#8216;$&#8217; was used before it was defined.<br />
$(document).ready(function () { // Line 32, Pos 1</p></blockquote>
<p>jslint nous informe que l&#8217;objet jQuery (abrégé $) n&#8217;est pas définit. En effet jslint ne peut valider que la méthode <em>$(document)</em>, par exemple, existe bien et est valide car il ne connais pas jQuery. Nous allons donc ajouter les objets jQuery et $ comme objet globalement valide.</p>
<p>Pour cela nous devons modifier notre fichier JavaScript pour y ajouter des commentaires. Ceux ci configurerons jslint. Le mot clef pour enregistrer des objets globalement est &#8230; <em>global</em>. Ajoutons donc la ligne suivante au début de notre fichier javascript.</p>
<blockquote><p>/*global jQuery, $ */</p></blockquote>
<p>Si vous re-exécuter <em>jsunit</em> sur votre script vous n&#8217;obtiendrez plus les erreurs concernant jQuery.</p>
<h1>Conclusion</h1>
<p>La qualité globale des scripts JavaScript n&#8217;étant pas toujours très bien assimilée nous avons ici avec jslint un outils de qualité pour la validation.</p>
<p>A noté qu&#8217;un plugin intéressent pour vim nommé, très originalement, jslint.vim, vous permet d&#8217;intégrer jslint à vim. Voir <a href="https://github.com/hallettj/jslint.vim">https://github.com/hallettj/jslint.vim</a></p>
]]></content:encoded>
			<wfw:commentRss>http://romain.therrat.fr/nodejs-installation-de-jslint/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Graylog2] Installer Graylog2 sur Debian</title>
		<link>http://romain.therrat.fr/graylog2-installer-graylog2-sur-debian/</link>
		<comments>http://romain.therrat.fr/graylog2-installer-graylog2-sur-debian/#comments</comments>
		<pubDate>Mon, 27 Feb 2012 17:06:08 +0000</pubDate>
		<dc:creator>lermit</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Installation]]></category>
		<category><![CDATA[logs]]></category>

		<guid isPermaLink="false">http://romain.therrat.fr/?p=455</guid>
		<description><![CDATA[Graylog2 est un ensemble de deux produit permettant de centraliser des journaux système. Plutôt que d&#8217;aller sur tout vos serveurs voir si aucune erreur ne s&#8217;est produite graylog2 permet d&#8217;utiliser un jolie interface web pour appliquer des filtres sur vos &#8230; <a href="http://romain.therrat.fr/graylog2-installer-graylog2-sur-debian/">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Graylog2 est un ensemble de deux produit permettant de centraliser des journaux système. Plutôt que d&#8217;aller sur tout vos serveurs voir si aucune erreur ne s&#8217;est produite graylog2 permet d&#8217;utiliser un jolie interface web pour appliquer des filtres sur vos logs par exemple.</p>
<p>Nous allons voir ici comment installer graylog2-server et comment centraliser vos logs sur ce serveur. Nous verrons ensuite comment installer le client Web.</p>
<h1>Installation de graylog2-server</h1>
<h2>MongoDB</h2>
<p>Une des dépendance de graylog2-server est mongodb. Mongodb est une base de données nosql assez performante qui permet à graylog de garder les traces de vos logs. Nous allons donc installer MongoDB</p>
<p># aptitude install mongodb mongodb-server</p>
<p>L&#8217;installation de base de MongoDB est configurée pour fonctionner et nous n&#8217;avons pas besoin de modifier cette configuration.</p>
<p>Deux ports sont ouverts pour MongoDB le 27017 et le 28017</p>
<pre class="brush: bash; title: ; notranslate"># netstat -patue | grep mongodb
 tcp        0      0 localhost:28017         *:*                     LISTEN      mongodb    16843       4384/mongod
 tcp        0      0 localhost:27017         *:*                     LISTEN      mongodb    16841       4384/mongod</pre>
<p>Le port 27017 est le port d&#8217;écoute de MongoDB où sont envoyer les données. Le port 28017 est quant à lui le port d&#8217;administration. Vous pouvez y accéder via le protocole HTTP. La page rendu peut être comparé à celle du mod_status de apache pour le service MongoDB.</p>
<p>Nous allons ensuite créer un utilisateur dans MongoDB pour permettre à Graylog2 de se connecter. MongoDB propose pour cela une invite de commande.</p>
<pre class="brush: bash; title: ; notranslate">$ mongo
 MongoDB shell version: 1.4.4
 url: test
 connecting to: test
 type &quot;help&quot; for help
 &gt; use graylog2
 switched to db graylog2
 &gt; db.addUser('graylog', 'mystrongpassword')
 {
&quot;user&quot; : &quot;graylog&quot;,
&quot;readOnly&quot; : false,
&quot;pwd&quot; : &quot;3a645a39bef99c8bba9c805e06536240&quot;
 }
 &gt; db.auth('graylog', 'mystrongpassword')
 1</pre>
<p>Nous démarrons dans un premier temps le shell mongodb et nous connectons à la base graylog2. Nous créons un utilisateur <em>graylog</em> avec comme  mot de passe <em>mystrongpassword</em>. Nous testons ensuite la connexion.</p>
<p>Il n&#8217;est pas nécessaire de créer de base de données (collection) ou de table, MongoDB les créera à la demande.</p>
<p>Il vous faudra aussi démarrer le service</p>
<pre class="brush: bash; title: ; notranslate"># /etc/init.d/mongodb start</pre>
<h2>OpenJDK</h2>
<p>Graylog2 est un produit développé en JAVA. Il nous faut donc une machine virtuelle JAVA. Graylog2 conseil l&#8217;utilisation de OpenJDK nous allons donc installer le JRE d&#8217;OpenJDK.</p>
<pre class="brush: bash; title: ; notranslate"># aptitude install openjdk-6-jre</pre>
<p>L&#8217;installation ne demande pas plus de configuration.</p>
<h2>ElasticSearch</h2>
<p>Pour des raisons de performance Graylog2 utilise un système d&#8217;indexation de données via le produit elasticsearch. ElasticSearch est un produit JAVA lui aussi. Nous allons ici installer la version0.18.7 qui est la dernière version en date à l&#8217;heure d&#8217;aujourd&#8217;hui. Vous pouvez vérifier qu&#8217;elle est la version stable actuelle <a href="https://github.com/elasticsearch/elasticsearch/downloads">ici</a>.</p>
<pre class="brush: bash; title: ; notranslate"># cd /opt

# wget https://github.com/downloads/elasticsearch/elasticsearch/elasticsearch-0.18.7.tar.gz

# tar xvf elasticsearch-0.18.7.tar.gz

# ln -s elasticsearch-0.18.7 elasticsearch</pre>
<p>Nous créons ensuite un script LSB de démarrage dans init.d et le rendons exécutable. Le script original est disponible <a href="http://www.elasticsearch.org/tutorials/2010/07/02/setting-up-elasticsearch-on-debian.html">ici</a>.</p>
<pre class="brush: bash; title: ; notranslate"># vim /etc/init.d/elasticsearch

...

#! /bin/sh
 ### BEGIN INIT INFO
 # Provides:          elasticsearch
 # Required-Start:    $all
 # Required-Stop:     $all
 # Default-Start:     2 3 4 5
 # Default-Stop:      0 1 6
 # Short-Description: Starts elasticsearch
 # Description:       Starts elasticsearch using start-stop-daemon
 ### END INIT INFO

ES_HOME=/opt/elasticsearch
 export ES_MIN_MEM=256m
 export ES_MAX_MEM=2g
 DAEMON=$ES_HOME/bin/elasticsearch
 NAME=elasticsearch
 DESC=elasticsearch
 PID_FILE=/var/run/$NAME.pid
 LOG_DIR=/var/log/$NAME
 DATA_DIR=/var/lib/$NAME
 WORK_DIR=/tmp/$NAME
 CONFIG_FILE=/etc/$NAME/elasticsearch.yml
 DAEMON_OPTS=&quot;-p $PID_FILE -Des.config=$CONFIG_FILE -Des.path.home=$ES_HOME -Des.path.logs=$LOG_DIR -Des.path.data=$DATA_DIR -Des.path.work=$WORK_DIR&quot;

test -x $DAEMON || exit 0

set -e

case &quot;$1&quot; in
 start)
 echo -n &quot;Starting $DESC: &quot;
 mkdir -p $LOG_DIR $DATA_DIR $WORK_DIR
 if start-stop-daemon --start --pidfile $PID_FILE --startas $DAEMON -- $DAEMON_OPTS
 then
 echo &quot;started.&quot;
 else
 echo &quot;failed.&quot;
 fi
 ;;
 stop)
 echo -n &quot;Stopping $DESC: &quot;
 if start-stop-daemon --stop --pidfile $PID_FILE
 then
 echo &quot;stopped.&quot;
 else
 echo &quot;failed.&quot;
 fi
 ;;
 restart|force-reload)
 ${0} stop
 sleep 0.5
 ${0} start
 ;;
 *)
 N=/etc/init.d/$NAME
 echo &quot;Usage: $N {start|stop|restart|force-reload}&quot; &gt;&amp;2
 exit 1
 ;;
 esac

exit 0

...

# chmod +x /etc/init.d/elasticsearch</pre>
<p>Il est à noter que les variables ES_MIN_MEM et ES_MAX_MEM sont des variables d&#8217;environnements interprété par Graylog2-server pour la configuration de la JVM. Elles correspondent respectivement à la mémoire minimale et mmaximale allouée à la JVM. Vous pouvez donc les modifier suivant vos besoins.</p>
<p>Nous démarrons aussi elasticsearch au démarrage du système.</p>
<pre class="brush: bash; title: ; notranslate"># update-rc.d elasticsearch defaults</pre>
<p>La configuration est disponible dans le fichier /etc/elasticsearch/elasticsearch.yml. Créons ce fichier</p>
<pre class="brush: bash; title: ; notranslate"># mkdir -p /etc/elasticsearch

# vim /etc/elasticsearch/elasticsearch.yml

...

cluster:
 name:  graylog2

network:
 host:   _eth0_
 ...</pre>
<p>Nous déclarons un simple cluster nommé <em>graylog2</em> et spécifions à elasticsearch d&#8217;utiliser l&#8217;interface eth0 pour l&#8217;écoute. Vous pouvez alternativement spécifier une adresse ip ou enlever cette directive pour écouter sur toutes les interfaces. ElasticSearch écoute par défaut sur le port 9200.</p>
<p>Démarrons maintenant elasticsearch.</p>
<pre class="brush: bash; title: ; notranslate"># /etc/init.d/elasticsearch start</pre>
<h2>Graylog2</h2>
<p>Nous allons maintenant installer graylog2-server. Graylog2 propose une archive compilée de projet, celle ci est disponible sur github. Nous allons donc télécharger cette archive dans le dossier /opt/graylog2. La dernière version du projet est la 0.9.6, vous pouvez vérifier si une nouvelle version stable n&#8217;est pas disponible <a href="https://github.com/Graylog2/graylog2-server/downloads">ici</a>.</p>
<pre class="brush: bash; title: ; notranslate"># cd /opt

# wget https://github.com/downloads/Graylog2/graylog2-server/graylog2-server-0.9.6.tar.gz

# tar xvf graylog2-server-0.9.6.tar.gz

# ln -s graylog2-server-0.9.6 graylog2-server</pre>
<p>L&#8217;archive contient aussi un fichier de configuration de base que vous pouvez copier dans /etc/graylog2.conf</p>
<pre class="brush: bash; title: ; notranslate"># cp graylog2-server/graylog2.conf.example /etc/graylog2.conf</pre>
<p>Nous modifions ensuite ce fichier pour respecter notre configuration de MongoDB et ElasticSearch.</p>
<pre class="brush: bash; title: ; notranslate"># vim /etc/graylog2.conf

...

# ElasticSearch URL (default: http://localhost:9200/)
 elasticsearch_url = http://localhost:9200/
 elasticsearch_index_name = graylog2

...

# MongoDB Configuration
 mongodb_useauth = true
 mongodb_user = graylog
 mongodb_password = mystrongpassword
 mongodb_host = localhost
 #mongodb_replica_set = localhost:27017,localhost:27018,localhost:27019
 mongodb_database = graylog2
 mongodb_port = 27017

...</pre>
<p>Ici nous n&#8217;avons modifier que le nom d&#8217;utilisateur et le mot de passe mais adapter donc les différentes options à vos besoins.</p>
<p>Nous pouvons maintenant tester notre installation en mode debug pour vérifier qu&#8217;aucune erreur n&#8217;est arrivée.</p>
<pre class="brush: bash; title: ; notranslate"># cd /opt/graylog2-server
 # java -jar graylog2-server.jar --debug</pre>
<p>Si aucune erreur ne survient vous pouvez arreter le service via un <strong>[CTRL]</strong>+<strong>[C]</strong>.</p>
<p>Comme pour elasticsearch, nous allons créer un script LSB de démarrage. Le script utilisé est disponible <a href="https://gist.github.com/1659948">ici</a>.</p>
<pre class="brush: bash; title: ; notranslate"># vim /etc/init.d/graylog2-server

...

#! /bin/sh
 ### BEGIN INIT INFO
 # Provides:          Graylog2
 # Required-Start:    $all
 # Required-Stop:     $all
 # Default-Start:     2 3 4 5
 # Default-Stop:      0 1 6
 # Short-Description: Starts Graylog2
 # Description:       Starts Graylog2 using start-stop-daemon
 ### END INIT INFO

GL_HOME=/opt/graylog2-server
 GL_JAR=$GL_HOME/graylog2-server.jar
 NAME=graylog2
 DESC=graylog2
 PID_FILE=/var/run/graylog2.pid
 CONFIG_FILE=/etc/graylog2.conf

test -f $GL_JAR || exit 0

set -e

case &quot;$1&quot; in
 start)
 echo -n &quot;Starting $DESC... &quot;
 /usr/bin/java -jar &quot;$GL_JAR&quot; -f &quot;$CONFIG_FILE&quot; &amp;
 echo &quot;started (`cat &quot;$PID_FILE&quot;`).&quot;
 ;;
 stop)
 PID=`cat &quot;$PID_FILE&quot;`
 echo -n &quot;Stopping $DESC ($PID)...&quot;
 kill $PID
 echo stopped.
 ;;
 restart|force-reload)
 ${0} stop
 sleep 0.5
 ${0} start
 ;;
 *)
 N=/etc/init.d/$NAME
 echo &quot;Usage: $N {start|stop|restart|force-reload}&quot; &gt;&amp;2
 exit 1
 ;;
 esac

exit 0
 ...

# chmod +x /etc/init.d/graylog2-server

# update-rc.d graylog2-server defaults</pre>
<p>Nous pouvons maintenant démarrer graylog2-server</p>
<pre class="brush: bash; title: ; notranslate"># /etc/init.d/graylog2-server start</pre>
<h1>Installation d&#8217;un client RSyslog</h1>
<p>Nous allons maintenant configurer RSyslog sur un des serveurs dont nous souhaitons centraliser les logs.</p>
<p>Tout d&#8217;abord installons RSyslog, si ce n&#8217;est déjà fait !</p>
<pre class="brush: bash; title: ; notranslate"># aptitude install rsyslog</pre>
<p>Nous souhaitons centraliser tout les logs de notre serveur nous allons donc tous les rediriger vers notre serveur graylog2. Pour cela éditer le fichier <em>/etc/rsyslog.conf</em> et ajouter la ligne suivante</p>
<pre class="brush: bash; title: ; notranslate"># vim /etc/rsyslog.conf

...

*.* @&lt;ip-server-graylog2&gt;:514

...</pre>
<p>Redémarrer rsyslog</p>
<pre class="brush: bash; title: ; notranslate"># /etc/init.d/rsyslog restart</pre>
<p>Et c&#8217;est tout ! Tout les logs du serveurs serons maintenant envoyés chez graylog2 !</p>
<p>Attention néanmoins. Les applications n&#8217;utilisant pas le protocole syslog pour journaliser leurs informations ne sont pas pris en compte par RSyslog.</p>
<h1>Graylog2-web-interface</h1>
<p>C&#8217;est bien beau me direz vous, mais on en fait quoi de nos logs ? Et bien on les lit !! Pour cela graylog2 propose un service web développé en ruby. Nous allons voir son installation.</p>
<p>Tout d&#8217;abord installons les outils de base de ruby, à savoir l&#8217;interpréteur ruby lui même mais aussi l&#8217;installeur gem et le &laquo;&nbsp;constructeur&nbsp;&raquo; rake.</p>
<pre class="brush: bash; title: ; notranslate"># aptitude install ruby rubygems rake</pre>
<p>Puis installons le gestionnaire de dépendance <em>bundler</em> via gem</p>
<pre class="brush: bash; title: ; notranslate"># gem install bundler --no-ri --no-rdoc</pre>
<p>Sous Debian les binaires sont disponibles dans le dossier <em>/var/lib/gems/&lt;version&gt;/bin</em>. Nous allons ajouter ce chemin dans notre variable PATH</p>
<pre class="brush: bash; title: ; notranslate"># vim /etc/profile.d/gems_bin.sh

...

#!/bin/bash

export PATH=$PATH:/var/lib/gems/1.8/bin

...

# chmod +x /etc/profile.d/gems_bin.sh

# source /etc/profile.d/gems_bin.sh</pre>
<p>Nous pouvons maintenant télécharger et installer les (nombreuses) dépendances de graylog2-web-interface. La version ici installée est la 0.9.6, vérifier si une nouvelle version n&#8217;est pas disponible.</p>
<pre class="brush: bash; title: ; notranslate"># cd /opt

# wget https://github.com/downloads/Graylog2/graylog2-web-interface/graylog2-web-interface-0.9.6.tar.gz

# ln -s graylog2-web-interface-0.9.6 graylog2-web-interface

# cd /opt/graylog-web-interface

#  bundle install</pre>
<p>Les fichiers de configuration du serveurs sont disponibles dans le dossier <em>config/*.yml</em>. Editons <em>indexer.yml</em> et <em>mongoid.yml</em> pour les adapter à nos besoins.</p>
<pre class="brush: bash; title: ; notranslate"># vim config/mongoid.yml

...

production:
 host: localhost
 port: 27017
 username: graylog
 password: mystrongpassword
 database: graylog2

...</pre>
<p>Nous pouvons maintenant tester notre serveur en l’exécutant dans le shell courant.</p>
<pre class="brush: bash; title: ; notranslate"># &lt;code&gt;script/rails server -e production</pre>
<p>&nbsp;</p>
<p>&#8230; Will continue &#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://romain.therrat.fr/graylog2-installer-graylog2-sur-debian/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>[vim] Insérer une espace fine insécable.</title>
		<link>http://romain.therrat.fr/vim-inserer-une-espace-fine-insecable/</link>
		<comments>http://romain.therrat.fr/vim-inserer-une-espace-fine-insecable/#comments</comments>
		<pubDate>Fri, 17 Feb 2012 22:29:16 +0000</pubDate>
		<dc:creator>lermit</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://romain.therrat.fr/?p=451</guid>
		<description><![CDATA[Dans certain cas de rédaction de document vous avez besoin d’insérer dans vim des espaces fines insécables. Pour cela rien de plus &#171;&#160;simple&#171;&#160;. Passer en mode insertion, faite [CTRL]+K puis presser le N (majuscule) puis le S (majuscule). Votre espace fine insécable apparaîtra !!]]></description>
			<content:encoded><![CDATA[<p>Dans certain cas de rédaction de document vous avez besoin d’insérer dans vim des espaces fines insécables.</p>
<p>Pour cela rien de plus &laquo;&nbsp;<em>simple</em>&laquo;&nbsp;.</p>
<p>Passer en mode insertion, faite [CTRL]+K puis presser le N (majuscule) puis le S (majuscule). Votre espace fine insécable apparaîtra !!</p>
]]></content:encoded>
			<wfw:commentRss>http://romain.therrat.fr/vim-inserer-une-espace-fine-insecable/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Vim] La correction grammaticale !</title>
		<link>http://romain.therrat.fr/vim-la-correction-grammaticale/</link>
		<comments>http://romain.therrat.fr/vim-la-correction-grammaticale/#comments</comments>
		<pubDate>Thu, 29 Dec 2011 23:53:55 +0000</pubDate>
		<dc:creator>lermit</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Installation]]></category>
		<category><![CDATA[Plug-In]]></category>
		<category><![CDATA[vim]]></category>

		<guid isPermaLink="false">http://romain.therrat.fr/?p=444</guid>
		<description><![CDATA[Comme vous le savez surement Vim est doté d’un excellent système de correction syntaxique qui vous corrigera sans problème un "Caffé" en "Café" mais qu’en est-il de la correction grammaticale ?
Nous allons ici découvrir un outil fort intéressent nommé LanguageTool et son extension Vim ! <a href="http://romain.therrat.fr/vim-la-correction-grammaticale/">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<h1>Introduction</h1>
<h2>Préambule</h2>
<p>Comme vous le savez surement Vim est doté d’un excellent système de correction syntaxique qui vous corrigera sans problème un &laquo;&nbsp;Caffé&nbsp;&raquo; en &laquo;&nbsp;Café&nbsp;&raquo; mais qu’en est-il de la correction grammaticale ?<br />
Nous allons ici découvrir un outil fort intéressent nommé LanguageTool et son extension Vim !</p>
<h2>Qu’est ce que LanguageTool</h2>
<p>LanguageTool est un correcteur grammatical. C’est-à-dire qu’il corrigera vos erreurs d’accord, de pluriel, etc. Le produit est à l’origine disponible pour OpenOffice et à l’instar de ce dernier LanguageTool est écrit en Java. Ceci permet donc de l’exécuter partout et non plus seulement dans OpenOffice.</p>
<h1>Installation</h1>
<h2>Installation de LanguageTool</h2>
<p>La première chose à faire est de télécharger LanguageTool sur votre Ordinateur. Pour cela le plus simple est de se rendre sur le site de LanguageTool — http://www.languagetool.org/ — et récupérer le lien vers la dernière version. À l’heure où j’écris ces lignes la version courante est la 1.5. Le fichier que nous allons télécharger est au format OXT qui correspond au format d’extension d’OpenOffice. Prenez soin d’adapter les lignes suivantes à votre version de LanguageTool.</p>
<blockquote><p>$ mkdir -p ~/software/languagetool/1.5<br />
$ cd ~/software/languagetool/1.5<br />
$ wget http://www.languagetool.org/download/LanguageTool-1.5.oxt</p></blockquote>
<p>Les fichiers OXT sont en réalité des archives ZIP que nous pouvons facilement décompresser à l’aide de la commande unzip. Pour cela procédons comme suit.</p>
<blockquote><p>$ unzip LanguageTool-1.5.oxt</p></blockquote>
<p>Nous avons donc maintenant une liste de fichiers et de dossier assez importante dont le fichier LanguageTool.jar. Ce fichier est la version compilée — appelée bytecode— du correcteur, c’est donc celui ci que Vim exécutera pour faire fonctionner la correction grammaticale.<br />
Nous allons maintenant installer l’extension Vim pour utiliser notre correction grammaticale.</p>
<h2>Installation de l’extension Vim</h2>
<p>Il existe une extension Vim maintenue par Dominique Pellé et disponible sur le site de Vim — http://www.vim.org/scripts/script.php? script_id=3223. Nous allons télécharger la dernière version de l’extension qui à l’heure d’aujourd’hui est la 1.14. Comme toujours les fichiers Vim se trouve dans le dossier caché .vim à la racine de notre dossier personnel.</p>
<blockquote><p>$ cd ~/.vim<br />
$ wget &laquo;&nbsp;http://www.vim.org/scripts/download_script.php?src_id=15306&#8243; -O LanguageTool.zip</p></blockquote>
<p>Attention: Ce lien télécharge la version 1.14 qui n’est peut-être pas la dernière version.<br />
L’extension Vim est au format ZIP nous la décompressons donc.</p>
<blockquote><p>$ unzip LanguageTool.zip</p></blockquote>
<p>Et supprimons l’archive</p>
<blockquote><p>$ rm LanguageTool.zip</p></blockquote>
<p>Il ne nous reste plus qu’à configurer Vim pour qu’il utilise notre extension correctement!</p>
<h1>Configuration</h1>
<p>Nous allons configurer Vim pour qu’il utilise LanguageTool. La configuration de Vim se trouve dans le fichier caché .vimrc à la racine de votre dossier personnel. Éditez-le.</p>
<blockquote><p>$ vim ~/.vimrc</p></blockquote>
<p>Il nous faudra tout d’abord spécifier à l’extension Vim l’endroit où trouver le fichier JAR de correction grammaticale. Ceci se fait à l’aide de la variable ’g:languagetool_jar’. Dans notre cas le fichier jar se trouve dans le dossier software -&gt;languagetool -&gt;1.5 dans notre dossier personnel nous ajouterons donc cette ligne à notre fichier .vimrc.</p>
<blockquote><p>let g:languagetool_jar=$HOME .<br />
&#8216;/software/languagetool/1.5/LanguageTool.jar&#8217;</p></blockquote>
<p>Enfin par défaut la correction grammaticale est anglaise. Pour modifier ce comportement vous avez deux solutions. Soit, modifier la langue du document en cours d’exécution</p>
<blockquote><p>:setlocal spell spelllang=fr</p></blockquote>
<p>Soit, modifier la configuration par défaut pour tous les documents. Cette configuration peut déjà avoir été effectué si vous utilisez la correction syntaxique de Vim. Pour cela éditer le fichier vimrc et ajouter la ligne suivante.</p>
<blockquote><p>setlocal spell spelllang=fr</p></blockquote>
<h1>Utilisation</h1>
<p>L’extension Vim pour LanguageTool ajoute deux nouvelles commandes, LanguageToolCheck et LanguageToolClear. La commande LanguageToolCheck permet d’activer la correction grammaticale. Le document courant sera parcouru par LanguageTool et l’écran de Vim sera découpé en deux pour vous afficher la liste des erreurs grammaticales trouvées dans le document. La commande LanguageToolClear, elle, permet de fermer la correction grammaticale.<br />
Lors de l’exécution de LanguageToolCheck, LanguageTool vous donnera des informations comme celle ci</p>
<blockquote><p>Error: 1/37 (FRENCH_WHITESPACE) @ 1L 192C<br />
Message: Point d&#8217;interrogation est &#8230;<br />
Context: &#8230;de la correction grammaticale ? Nous &#8230;<br />
Correction: ?</p></blockquote>
<p>La première ligne vous informera du type d’erreur que vous rencontrez (ici un problème d’espace) et de la ligne où se produit l’erreur — Ici la ligne 1 — ainsi que le caractère sur la ligne. Il vous est ensuite présenté la raison de l’erreur et le contexte de l’erreur, c’est-à-dire le texte où se trouve l’erreur. Enfin LanguageTool vous propose une correction pour le problème que vous pouvez utiliser si vous le souhaitez !</p>
<h1>Conclusion</h1>
<p>Nous avons vu ici qu’il était très simple d’utiliser la correction grammaticale de LanguageTool dans Vim ce qui prouve encore une fois que tout est possible avec Vim. Si ce n’est pas déjà fait vous pouvez accompagner cette correction avec la correction syntaxique de Vim qui est inclus dans le cœur de Vim. En espérant que cet article vous a aidé, n’hésitez pas à me faire vos retours et n’oubliez pas : Vim c’est la vie !</p>
<p>Cet article est aussi disponible au format <a title="La correction grammaticale dans Vim - format Tex" href="http://romain.therrat.fr/wp-content/uploads/2011/12/article.tex" target="_blank">tex</a> ou <a title="La correction grammaticale dans Vim - Format PDF" href="http://48053hpv100171.ikoula.com/romain.therrat.fr/wp-content/uploads/2011/12/article.pdf" target="_blank">PDF</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://romain.therrat.fr/vim-la-correction-grammaticale/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>[CISCO] Configuration de DHCP via la ligne de commande IOS</title>
		<link>http://romain.therrat.fr/cisco-configuration-de-dhcp-via-la-ligne-de-commande-ios/</link>
		<comments>http://romain.therrat.fr/cisco-configuration-de-dhcp-via-la-ligne-de-commande-ios/#comments</comments>
		<pubDate>Mon, 26 Dec 2011 14:13:46 +0000</pubDate>
		<dc:creator>lermit</dc:creator>
				<category><![CDATA[Autre]]></category>
		<category><![CDATA[CISCO]]></category>
		<category><![CDATA[DHCP]]></category>
		<category><![CDATA[Ligne de commande]]></category>
		<category><![CDATA[Réseau]]></category>

		<guid isPermaLink="false">http://romain.therrat.fr/?p=433</guid>
		<description><![CDATA[Le protocole DHCP est un protocole d'auto configuration de réseau. Il permet à des machines arrivant sur un réseau qu'elles ne connaissent pas de s'adapter à sa configuration.

Ces dernières obtiendront plusieurs informations allons de leur adresse IP jusqu’à leurs serveurs DNS, NTP ou WINS.

Chaque configuration offerte par le protocole DHCP à un client à une durée de vie que nous appelons un bail (ou lease en anglais). <a href="http://romain.therrat.fr/cisco-configuration-de-dhcp-via-la-ligne-de-commande-ios/">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Je vais vous présenter ici la méthode à employer pour configurer un service DHCP sur un router CISCO.</p>
<p>Nous verrons dans un premier temps l’intérêt du DHCP puis la configuration. Nous verrons ensuite quelque commande d&#8217;administration du service DHCP.</p>
<h1>Qu&#8217;est ce que le DHCP</h1>
<p>Le protocole DHCP est un protocole d&#8217;auto configuration de réseau. Il permet à des machines arrivant sur un réseau quelle ne connaisse pas de s&#8217;adapter à sa configuration.</p>
<p>Ces dernières obtiendront plusieurs informations allons de leur adresse IP jusqu’à leurs serveurs DNS, NTP ou WINS.</p>
<p>Chaque configuration offerte par le protocole DHCP à un client à une durée de vie que nous appelons un bail (ou lease en anglais).</p>
<p>En ce qui concerne l&#8217;adressage réseau, vous voudrez surement configurer le DHCP pour votre réseau privé. Il existe trois classes de réseau privé : A, B et C. Chaque classe a une plage d&#8217;adresse IP réservée que vous pouvez utiliser comme bon vous semble et un masque de sous réseau que vous pouvez découper. Voici ces spécificités</p>
<p>- Classe A : Adresse 10.0.0.0/8 c&#8217;est à dire des adresse 10.0.0.1 à 10.255.255.254 soit environ 16 millions d&#8217;hôtes</p>
<p>- Classe B : Adresse 172.16.0.0/12 c&#8217;est à dire de 172.16.0.1 à 172.31.255.255 soit environ 1 millions d&#8217;hôtes</p>
<p>- Classe C : Adresse 192.168.0.0/16 c&#8217;est à dire de 192.168.0.1 à 192.168.255.254 soit environ 65 mille hôtes.</p>
<p>Il est à noter que en classe B vous devez utiliser au plus un masque de 16 bit et en classe C un masque de 24 bit. De ce fait vous préférerez surement pour votre réseau domestique des IP de classe C avec un masque de 24 bit vous permettant d&#8217;avoir jusqu’à 254 hôtes.</p>
<p>Nous présenterons dans cette article la mise en place d&#8217;un réseau privé de classe C 192.168.42.0/24 c&#8217;est à dire des adresse de 192.168.42.1 à 192.168.42.254</p>
<p><strong>Note</strong> : Nous partons du principe que vos interfaces sont déjà configurées</p>
<h1>Configuration du service DHCP</h1>
<p>Pour configurer un service DHCP il vous faudra tout d&#8217;abord créer un groupe DHCP. Les routeurs CISCO pouvant délivrer des adresses via DHCP sur plusieurs interfaces et via plusieurs configurations, les configurations sont regroupées par groupe.</p>
<blockquote><p>Pour créer un groupe nommé dhcp-private-pool il vous faudra procéder comme suit</p>
<p>&gt; en</p>
<p># conf t</p>
<p>(config) # ip dhcp pool dhcp-private-pool</p></blockquote>
<p>Vous entrez à ce moment là dans la configuration du groupe. Le nom du prompt de votre shell devrait contenir &#8216;dhcp-config&#8217; comme suit</p>
<blockquote><p>(dhcp-config) #</p></blockquote>
<p>Spécifier maintenant l&#8217;adressage souhaité. Ici nous utilisons le réseau 192.168.42.0/24</p>
<blockquote><p>(dhcp-config) # network 192.168.42.0/24</p></blockquote>
<p>Spécifier ensuite les noms des serveurs DNS que vous voulez voir utilisés par vos clients. Nous utilisons dans cet exemple les serveurs DNS d&#8217;<a title="OpenDNS is the leading provider of Internet security and DNS services" href="http://www.opendns.com">OpenDNS</a> (208.67.222.222 et 208.67.220.220)</p>
<blockquote><p>(dhcp-config) # dns-server208.67.222.222 208.67.220.220</p></blockquote>
<p>Vous pouvez éventuellement configurer un nom de domaine associé à votre configuration DHCP (ici therrat.fr)</p>
<blockquote><p>(dhcp-config) # domain-name therrat.fr</p></blockquote>
<p>Ou un serveur WINS (ici 192.168.42.2)</p>
<blockquote><p>(dhcp-config) # netbios-name-server 192.168.42.2</p></blockquote>
<p>Un des points importants pour que vos clients puissent avoir accès à d&#8217;autre réseau que votre réseau privé (comme internet par exemple) est la route par défaut. Il y a fort à parier que la route par défaut que vous souhaiter utiliser soit l&#8217;adresse IP (privée) de votre routeur. Dans notre exemple l&#8217;adresse du routeur est 192.168.42.1</p>
<blockquote><p>(dhcp-config) # default-router 192.168.42.1</p></blockquote>
<p>Enfin il nous reste plus qu&#8217;a configurer la durée de rétention des baux DHCP. Ce chiffre est à adapter suivant le nombre de poste différent qui viennent à se connecter sur votre réseau et la durée de ces connexions. Dans notre cas de réseau privé domestique un bail de sept jours nous semble amplement suffisant.</p>
<blockquote><p>(dhcp-config) # lease 7</p></blockquote>
<p>Sortir de la configuration, tester le bon fonctionnement de votre DHCP en connectant un nouvel appareil et sauvegarder votre configuration.</p>
<blockquote><p>(dhcp-config) # exit</p>
<p>(config) # exit</p>
<p>&#8230;. Tester votre DHCP &#8230;.</p>
<p># copy running-config startup-config</p></blockquote>
<p>Votre DHCP est configuré et près à être utilisé</p>
<h1>Configuration Avancée</h1>
<h2>Exclure des IP</h2>
<p>Vous pouvez empêcher des adresses IP d&#8217;être délivrées par le serveur DHCP car par exemple ces adresses sont configurées statiquement sur les postes. C&#8217;est le cas de notre routeur. Celui ci a l&#8217;adresse 192.168.42.1 et le serveur DHCP ne devrait jamais donner cette adresse à quiconque. Nous allons donc exclure cette adresse. Pour cela voici la commande à entrer en mode config.</p>
<blockquote><p>(config) # ip dhcp excluded-address 192.168.42.1</p></blockquote>
<h2>Fixer une adresse IP en fonction de l&#8217;adresse MAC</h2>
<p>Il est parfois important de pouvoir toujours renvoyer la même adresse IP à un client qui vient à ce connecter de temps à autre. Ceci est rendu possible par le fait que chaque carte réseau à un identifiant unique. Cet identifiant se nome l&#8217;adresse MAC. Nous allons donc vérifier sur notre routeur l&#8217;adresse MAC de notre client pour lui donner la même adresse IP quoi qu&#8217;il arrive !</p>
<p>Pour créer une configuration statique nous devons créer un groupe DHCP pour notre client. Nous créons ici le groupe dhcp-private-pool-romain. L&#8217;adresse MAC de notre client est 12:34:56:78:9A:BC et nous souhaitons lui assigner l&#8217;adresse IP 192.168.42.42 avec un masque de 255.255.255.0 (24 bits)</p>
<blockquote><p>(config) # ip dhcp pool dhcp-private-pool-romain</p>
<p>(dhcp-config) # host 192.168.42.42 !/24</p>
<p>(dhcp-config) # client-identifier 1234.5678.9ABC</p>
<p>(dhcp-config) # exit</p></blockquote>
<p>Vous remarquerez que l&#8217;adresse MAC doit s&#8217;écrire sur la forme XXXX.XXXX.XXXX</p>
<h1>Administration du service DHCP</h1>
<p>Voici quelques commandes pour l&#8217;administration de tous les jours de votre service DHCP</p>
<h2>Voir les baux DHCP</h2>
<p>Nous pouvons voir la liste de tous les baux DHCP via la commande suivante</p>
<blockquote><p># show ip dhcp binding</p></blockquote>
<p>Mais si vous avez beaucoup de machine le résultat de cette commande deviendra vite illisible ! Vous pouvez donc optionnellement spécifier l&#8217;adresse IP pour laquelle vous voulez voir le bail.</p>
<blockquote><p># show ip dhcp binding 192.168.42.42</p></blockquote>
<p>Vous retrouverez dans les résultats de la commande l&#8217;adresse IP du client, son adresse MAC ainsi que la durée de validité de son bail (ou &#8216;<em>infinite</em>&#8216; pour une configuration DHCP statique).</p>
<h2>Supprimer un bail DHCP</h2>
<p>Vous pouvez à tout moment supprimer un bail DHCP (pour régler un conflit ou changer l&#8217;adresse IP d&#8217;un client par exemple). Pour cela, exécuter la commande suivante en remplaçant l&#8217;adresse IP par celle de vos besoins.</p>
<blockquote><p># clear ip dhcp binding 192.168.&#8217;2.13</p></blockquote>
<p>Vous pouvez aussi spécifier un astérisque (*) pour supprimer tous les baux DHCP.</p>
<h2>Voir des statistiques</h2>
<p>Il existe une liste de statistiques du service DHCP. Pour l&#8217;afficher :</p>
<blockquote><p># show ip dhcp server statistics</p></blockquote>
<p>Vous pourrez avec cette commande découvrir ce qu&#8217;il se passe sur votre réseau et adapter vos configurations.</p>
<h2>Supprimer les statistiques</h2>
<p>Pour remettre à zéro les statistiques</p>
<blockquote><p># clear ip dhcp server statistics</p></blockquote>
<h1>Conclusion</h1>
<p>Vous êtes maintenant pleinement opérationnel pour gérer un service DHCP sur votre routeur CISCO alors profitez en ! N&#8217;hésiter pas à fouiller les possibilités de l&#8217;IOS (le vrai) avec le point d&#8217;interrogation (?) et à me faire vos retours d’expériences pour compléter cet article !</p>
]]></content:encoded>
			<wfw:commentRss>http://romain.therrat.fr/cisco-configuration-de-dhcp-via-la-ligne-de-commande-ios/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[CISCO] Remettre à zéro un routeur via la ligne de commande IOS</title>
		<link>http://romain.therrat.fr/cisco-remettre-a-zero-un-routeur-via-la-ligne-de-commande-ios/</link>
		<comments>http://romain.therrat.fr/cisco-remettre-a-zero-un-routeur-via-la-ligne-de-commande-ios/#comments</comments>
		<pubDate>Mon, 26 Dec 2011 10:35:52 +0000</pubDate>
		<dc:creator>lermit</dc:creator>
				<category><![CDATA[Autre]]></category>
		<category><![CDATA[CISCO]]></category>
		<category><![CDATA[Ligne de commande]]></category>
		<category><![CDATA[Réseau]]></category>

		<guid isPermaLink="false">http://romain.therrat.fr/?p=426</guid>
		<description><![CDATA[Les routeurs de la firme CISCO stockent leur configuration à deux endroits sur le routeur. Le startup-config Le runing-config Comme les noms l&#8217;expliquent assez bien. La configuration dite de &#171;&#160;startup-config&#160;&#187; est la configuration qui sera utilisée au démarrage du router. &#8230; <a href="http://romain.therrat.fr/cisco-remettre-a-zero-un-routeur-via-la-ligne-de-commande-ios/">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Les routeurs de la firme CISCO stockent leur configuration à deux endroits sur le routeur.</p>
<ul>
<li>Le startup-config</li>
<li>Le runing-config</li>
</ul>
<p>Comme les noms l&#8217;expliquent assez bien. La configuration dite de &laquo;&nbsp;startup-config&nbsp;&raquo; est la configuration qui sera utilisée au démarrage du router. Celle ci sera copiée dans la configuration dite de &laquo;&nbsp;running-config&nbsp;&raquo; qui est celle utilisée par le routeur en fonctionnement.</p>
<p>La meilleure méthode pour remettre à zéro un routeur est donc de supprimer le &laquo;&nbsp;startup-config&nbsp;&raquo; et de redémarrer le routeur !</p>
<p>&nbsp;</p>
<p>Pour cela connecter vous sur votre routeur, passer en mode privilégier et utiliser la commande <strong>erase</strong></p>
<blockquote><p>&gt; en</p>
<p># erase startup-config</p>
<p># reload</p></blockquote>
<p>Votre routeur est maintenant comme neuf !</p>
]]></content:encoded>
			<wfw:commentRss>http://romain.therrat.fr/cisco-remettre-a-zero-un-routeur-via-la-ligne-de-commande-ios/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Android] Mettre à jour son Samsung sous GNU/Linux avec Heimdall</title>
		<link>http://romain.therrat.fr/android-mettre-a-jour-son-samsung-sous-gnulinux-avec-heimdall/</link>
		<comments>http://romain.therrat.fr/android-mettre-a-jour-son-samsung-sous-gnulinux-avec-heimdall/#comments</comments>
		<pubDate>Sun, 25 Dec 2011 23:20:33 +0000</pubDate>
		<dc:creator>lermit</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Installation]]></category>
		<category><![CDATA[Ligne de commande]]></category>
		<category><![CDATA[Upgrade]]></category>
		<category><![CDATA[USB]]></category>

		<guid isPermaLink="false">http://romain.therrat.fr/?p=416</guid>
		<description><![CDATA[En tant que fervent utilisateur de GNU/Linux vous avez il y a plus ou moins longtemps fait l’acquisition d'un Smartphone Android. Comme vous êtes un geek accompli vous souhaitez aujourd'hui mettre à jour votre téléphone pour bénéficier des dernières nouveautés d'Android. Après quelques recherches sur le web vous découvrirez bien vite un produit nommé ondin. Enfer et damnation, ce produit ne fonctionne que pour Windows ! Qu'à cela ne tienne nous allons découvrir une solution équivalente pour GNU/Linux : heimdall. <a href="http://romain.therrat.fr/android-mettre-a-jour-son-samsung-sous-gnulinux-avec-heimdall/">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>En tant que fervent utilisateur de GNU/Linux vous avez il y a plus ou moins longtemps fait l’acquisition d&#8217;un Smartphone Android. Comme vous êtes un geek accompli vous souhaitez aujourd&#8217;hui mettre à jour votre téléphone pour bénéficier des dernières nouveautés d&#8217;Android. Après quelques recherches sur le web vous découvrirez bien vite un produit nommé <strong>ondin</strong>. Enfer et damnation, ce produit ne fonctionne que pour Windows ! Qu&#8217;à cela ne tienne nous allons découvrir une solution équivalente pour GNU/Linux : <strong>heimdall.</strong></p>
<h1>Un équivalent à Ondin pour GNU/Linux</h1>
<p>Ondin est dans la mythologie germaine un génie des eaux qui a donné sont nom à un syndrome respiratoire, à un pratique sexuel&#8230; mais surtout à un logiciel !</p>
<p>Ondin est un produit de Samsung^w de développeurs indépendants qui vous permet de mettre à jour le  système d&#8217;exploitation de votre téléphone Samsung. Ce produit permet de gérer les différents fichiers du système Android allant du partitionnement (organisation des données sur le téléphone), du système en lui même jusqu&#8217;au modules de gestion de la connectivité (Téléphone et internet EDGE/3G).</p>
<p>Ce produit bien que pleinement fonctionnel sous Windows n&#8217;a pas de version pour GNU/Linux aussi Benjamin Dobell a pris la très bonne initiative de ré-implémenter les fonctionnalités de Ondin dans une application multiplateforme et qui plus est <strong>libre</strong>! Le nom de cette application est <strong>heimdall</strong>. Ce nom est lui aussi tiré de la mythologie et est considéré comme un dieu du feu, nous noterons aussi non sans interrogation qu&#8217;il est le fils de 9 (oui oui neuf !) mères ! De plus il est le fils adoptif d&#8217;<strong>ondin</strong> !</p>
<p>D&#8217;après la documentation Heimdall semble fonctionner sur les Samsung Captivate, Vibrant, Fascinate, Mesmerize, Epic 4G, Galaxy S 4G, Infuse 4G, GT-I9000T, Galaxy Tab, Galaxy S II et GT-I9000. Pour les possesseurs de Samsung Galaxy S votre nom de code est la plupart du temps GT-I9000 donc votre téléphone est supporté !</p>
<h1>Installation de heimdall</h1>
<p>En nous rendant sur le site de heimdall nous découvrirons qu&#8217;il existe plusieurs paquets de l&#8217;application. Des paquets sont disponibles pour Windows, Mac OS et Debian. Pour les autres distributions il conviendra de compiler les sources de l&#8217;application.</p>
<p>Rendez vous donc sur le github de heimdall pour voir les différents fichiers disponibles en téléchargement : <a href="https://github.com/Benjamin-Dobell/Heimdall/downloads">https://github.com/Benjamin-Dobell/Heimdall/downloads</a></p>
<p>Vous avez du constater qu&#8217;il existe trois paquets différents. En voici une description :</p>
<ul>
<li>heimdall : Ce paquet est le programme <strong>heimdall</strong> en ligne de commande. C&#8217;est celui ci que nous allons détailler ici.</li>
<li>heimdall-frontend : Ce paquet est une interface graphique pour le paquet heimdall. Nous ne détaillerons pas son utilisation ici.</li>
<li>heimdall-suite : Ce paquet contient les deux précédents.</li>
</ul>
<h2>Prérequis</h2>
<p>Note : Sous gentoo il existe un ebuild dans l&#8217;overlay poly-c, vous pouvez donc l&#8217;utiliser avec Layman. Nous détaillerons néanmoins la procédure de compilation pour les autres systèmes (RHEL, Suse, Mandriva, etc &#8230;).</p>
<p>Note : La compilation d&#8217;une application nécessite les outils de compilation standard. Nous ne détaillons pas ici la procédure d&#8217;installation de ceux ci.</p>
<p>Heimdall dépend de la librairie USB qui est disponible sur toutes les distributions. Installer là avec les sources à l&#8217;aide de votre gestionnaire de paquet favori (apt, yum, urpmi, &#8230;).</p>
<p>Sous Debian</p>
<blockquote><p># apt-get install libusb-dev</p></blockquote>
<p>Sous mandriva</p>
<blockquote><p># urpmi libusb-devel</p></blockquote>
<p>Sous Centos ou RedHat</p>
<blockquote><p># yum install libusb-devel</p></blockquote>
<p>Sous Suse (OpenSuse, SLES ou SLED)</p>
<blockquote><p># zypper install libusb-dev</p></blockquote>
<p>Nous pouvons maintenant commencer la compilation de <strong>heimdall</strong>.</p>
<h2>Compilation</h2>
<p>Nous stockerons les sources dans notre dossier personnel. Pour cela nous créons un dossier réservé à <strong>heimdall</strong> (Ceci doit être adapté à votre goût !)</p>
<blockquote><p>$ mkdir -p ~/software/heimdall</p></blockquote>
<p>Et nous nous rendons dans ce nouveau dossier</p>
<blockquote><p>$ cd ~/software/heimdall</p></blockquote>
<p>Nous récupérons ensuite les sources de la dernière version stable. Penser à adapter le numéro de version !</p>
<blockquote><p>$ wget -O heimdall-v1.3.1.tar.gz https://nodeload.github.com/Benjamin-Dobell/Heimdall/tarball/v1.3.1</p></blockquote>
<p>Décompressez l&#8217;archive</p>
<blockquote><p>$ tar xvf heimdall-v1.3.1.tar.gz</p></blockquote>
<p>Et accéder aux sources</p>
<blockquote><p>$ cd Benjamin-Dobell-Heimdall-*</p></blockquote>
<p>Nous allons dans un premier temps compilez la bibliothèque de gestion des fichiers <strong>PIT</strong>. Les fichiers <strong>PIT</strong> sont les fichiers de partitionnement du téléphone.</p>
<blockquote><p>$ cd libpit</p>
<p>$ ./configure</p>
<p>$ make</p></blockquote>
<p>Il n&#8217;est pas nécessaire d&#8217;effectuer un make install c&#8217;est le la compilation de heimdall qui s&#8217;en chargera.</p>
<p>Nous allons d’ailleurs compiler heimdall.</p>
<blockquote><p>$ cd ../heimdall</p>
<p>$ ./configure</p>
<p>$ make</p></blockquote>
<p>Il ne nous reste qu&#8217;à installer heimdall ! Pour cela connecter vous en root (avec la commande su ou sudo).</p>
<blockquote><p># make install</p></blockquote>
<p>Heimdall est maintenant installé dans /usr/local/bin/heimdall</p>
<h1>Préparation du firmware</h1>
<p>Dans l&#8217;archive de votre nouveau système Android vous retrouverez trois fichier tar et un fichier <strong>pit</strong>.</p>
<p>Comme dit précédemment le fichier <strong>PIT</strong> est un fichier binaire qui configurera le partitionnement de votre téléphone. Pour plus d&#8217;information référer vous à cet <a href="http://forum.xda-developers.com/showthread.php?t=999097">article[en]</a>.</p>
<p>Les autres fichiers sont des archives qui contiennent des fichiers. Nous allons les décompresser.</p>
<blockquote><p>tar xvf CODE*.tar</p>
<p>tar xvf *CSC*.tar</p>
<p>tar xvf MODEM*.tar</p></blockquote>
<p>Les fichiers décompressés et intéressants sont les suivants</p>
<ul>
<li>factoryfs.rfs : image de la partition système qui contiendra les applications de base</li>
<li>cache.rfs : image de la partition de cache</li>
<li>dbdata.rfs : image de la partition de la base de données du système</li>
<li>boot.bin : application importante qui sera lancé au démarrage du système</li>
<li> Sb1.bin : deuxième application lancé par le système qui va configurer le téléphone</li>
<li>param.lfs : fichier contenant les images (JPEG) du système</li>
<li>zImage : L&#8217;image du noyau Linux</li>
<li>modem.bin : Les drivers de votre puce GSM.</li>
</ul>
<p>Pour plus d&#8217;information sur le démarrage du téléphone aller voir <a href="http://tjworld.net/wiki/Android/HTC/Vision/BootProcess">ce site[en]</a></p>
<h1>Installation du firmware via Heimdall</h1>
<p>Nous partons du principe que vous avez déjà téléchargé le firmware pour votre téléphone. Nous détaillerons ici l&#8217;utilisation de heimdall pour l&#8217;installer sur votre téléphone.</p>
<p>La procédure de mise à jour de votre téléphone supprimera des données (comme les SMS, les contacts ou les sauvegarde de angry bird !). Penser à sauvegarder vos données. Je vous conseille la lecture des paragraphes 1.3 (sur la garantie et les risques) et la deuxième partie du paragraphe 1.4 (sur la sauvegarde de vos données) sur <a href="http://wiki.frandroid.com/wiki/Flasher_son_Samsung_Galaxy_Spica_via_Odin#-_La_garantie_et_les_risques">ce site</a>.</p>
<p>Nous allons donc télécharger tous ces fichiers sur notre téléphone. Pour cela nous devons mettre notre téléphone en mode téléchargement.</p>
<h2>Passer le téléphone en mode téléchargement</h2>
<p>Quand un téléphone Android passe en mode téléchargement il écoute sur sont port USB et attend qu&#8217;on lui envois des fichiers. Ces fichiers sont dans notre cas les fichiers du système Android.</p>
<p>Pour passer un Samsung Galaxy S en mode téléchargement il vous faudra tout d&#8217;abord éteindre le téléphone. Maintenez ensuite les touches volume bas, home et démarrage appuyé jusqu&#8217;a ce que le téléphone démarre. Vous verrez alors un jolie Droid pelleter !</p>
<p><div id="attachment_419" class="wp-caption alignnone" style="width: 235px"><a href="http://romain.therrat.fr/wp-content/uploads/2011/12/2011-12-25+23.50.50.jpg"><img class="size-full wp-image-419" title="Activation du mode téléchargement" src="http://romain.therrat.fr/wp-content/uploads/2011/12/2011-12-25+23.50.50-e1335987564698.jpg" alt="Activation du mode téléchargement" width="225" height="300" /></a><p class="wp-caption-text">Activation du mode téléchargement d&#39;un samsung galaxy S.</p></div></p>
<p>Connecter votre téléphone en USB. Vous pouvez vérifier qu&#8217;il est bien reconnu dans vos logs</p>
<p>$ tail -f /var/log/messages</p>
<p>Dec 25 22:58:37 localhost kernel: usb 2-3: new high speed USB device number 3 using ehci_hcd<br />
Dec 25 22:58:38 localhost kernel: usb 2-3: New USB device found, idVendor=04e8, idProduct=6601<br />
Dec 25 22:58:38 localhost kernel: usb 2-3: New USB device strings: Mfr=1, Product=2, SerialNumber=0<br />
Dec 25 22:58:38 localhost kernel: usb 2-3: Product: Gadget Serial<br />
Dec 25 22:58:38 localhost kernel: usb 2-3: Manufacturer: SAMSUNG<br />
Dec 25 22:58:38 localhost kernel: cdc_acm 2-3:2.0: This device cannot do calls on its own. It is not a modem.<br />
Dec 25 22:58:38 localhost kernel: cdc_acm 2-3:2.0: ttyACM0: USB ACM device<br />
Dec 25 22:58:38 localhost mtp-probe: checking bus 2, device 3: &laquo;&nbsp;/sys/devices/pci0000:00/0000:00:1d.7/usb2/2-3&#8243;<br />
Dec 25 22:58:38 localhost mtp-probe: bus: 2, device: 3 was not an MTP device</p>
<h2>Envoi des fichiers</h2>
<p>Nous n&#8217;avons maintenant plus qu&#8217;a envoyer les données avec <strong>heimdall</strong> sur notre téléphone. La commande suivante devrait faire l&#8217;affaire</p>
<p>$ heimdall flash &#8211;repartition &#8211;pit s1_odin_20100512.pit &#8211;factoryfs factoryfs.rfs &#8211;cache cache.rfs &#8211;dbdata dbdata.rfs &#8211;primary-boot boot.bin &#8211;secondary-boot Sbl.bin &#8211;param param.lfs &#8211;kernel zImage &#8211;modem modem.bin</p>
<p>Une barre de progression devrait apparaître tandis que les fichiers sont envoyés.  Le téléphone redémarrera et appliquera automatiquement les mises à jour pour enfin redémarrer et vous redonner la main. Le premier démarrage peu être un peu long (30 secondes)</p>
<p><div id="attachment_421" class="wp-caption alignnone" style="width: 235px"><a href="http://romain.therrat.fr/wp-content/uploads/2011/12/2011-12-26+00.04.471.jpg"><img class="size-full wp-image-421" title="Envoi des fichiers" src="http://romain.therrat.fr/wp-content/uploads/2011/12/2011-12-26+00.04.471-e1335987640267.jpg" alt="Envoi des fhcier" width="225" height="300" /></a><p class="wp-caption-text">Ecran du téléphone pendant l&#39;envoi des fichiers</p></div></p>
<h1></h1>
<h1>Conclusion</h1>
<p>Votre téléphone est maintenant près à être utilisé ! Alors amusez vous bien !</p>
]]></content:encoded>
			<wfw:commentRss>http://romain.therrat.fr/android-mettre-a-jour-son-samsung-sous-gnulinux-avec-heimdall/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Travailler sur les validateurs start_date end_date symfony</title>
		<link>http://romain.therrat.fr/travailler-sur-les-validateurs-start_date-end_date-symfony/</link>
		<comments>http://romain.therrat.fr/travailler-sur-les-validateurs-start_date-end_date-symfony/#comments</comments>
		<pubDate>Tue, 11 Oct 2011 08:19:34 +0000</pubDate>
		<dc:creator>pouch</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[end_date]]></category>
		<category><![CDATA[start_date]]></category>
		<category><![CDATA[validateurs symfony]]></category>

		<guid isPermaLink="false">http://romain.therrat.fr/?p=408</guid>
		<description><![CDATA[Bonjour, Voilà j&#8217;écris cet article pour partager une solution sur un formulaire symfony qui contient un widget start_date et end_date utilisant sfWidgetFormI18nDate. Le problème était de pouvoir, en fonction de la start_date, définir une end_date minimale dans un validateur. La &#8230; <a href="http://romain.therrat.fr/travailler-sur-les-validateurs-start_date-end_date-symfony/">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Bonjour,</p>
<p>Voilà j&#8217;écris cet article pour partager une solution sur un formulaire symfony qui contient un widget start_date et end_date utilisant sfWidgetFormI18nDate.</p>
<p>Le problème était de pouvoir, en fonction de la start_date, définir une end_date minimale dans un validateur.</p>
<p>La solution était pour ce formulaire de surcharger la méthode doBind pour récupérer les valeurs du start_date et définir le minimum pour le end_date.</p>
<p>Voici le code pour la solution :</p>
<table id="post6286811" width="100%" border="0" cellspacing="0" cellpadding="6" align="center">
<tbody>
<tr valign="top">
<td id="td_post_6286811">
<div id="post_message_6286811">
<div>
<table cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top">
<pre>// on récupère d'abord la valeur de la start date dans une variable $date
$date = strtotime($values['start_date']['day']."/".$values['start_date']['month']."/".$values['start_date']['year']);
// Ensuite on ajoute la valeur minimale que l'on veut pour le end date
$date = strtotime("+ 5 month", $date);

// Enfin on met en place le validateur pour cette end date
$this-&gt;validatorSchema['end_date'] = new sfValidatorDate(array("min" =&gt; $date), array("min" =&gt; "La date doit être supérieure à %min%"));</pre>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</td>
</tr>
</tbody>
</table>
<p>Voilà j&#8217;espère que cette solution pourra aider du monde <img src='http://romain.therrat.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Merci à Lermit et Yochima pour leur aide.</p>
]]></content:encoded>
			<wfw:commentRss>http://romain.therrat.fr/travailler-sur-les-validateurs-start_date-end_date-symfony/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>[Gentoo] Installer Google Music Manager pour music.google.com sous gentoo.</title>
		<link>http://romain.therrat.fr/gentoo-installer-google-music-manager-pour-music-google-com-sous-gentoo/</link>
		<comments>http://romain.therrat.fr/gentoo-installer-google-music-manager-pour-music-google-com-sous-gentoo/#comments</comments>
		<pubDate>Sun, 07 Aug 2011 22:11:54 +0000</pubDate>
		<dc:creator>lermit</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Installation]]></category>

		<guid isPermaLink="false">http://romain.therrat.fr/?p=401</guid>
		<description><![CDATA[Si vous faites partie comme moi des chanceux a avoir accès à music.google.com et que vous utiliser gentoo comme OS favorit vous aurez surement remarqué que le Google Music Manager n'est disponible qu'au format deb et rpm ... autrement dit impossible de compiler le logiciel pour uploader ses chansons. Même si les chansons gratuite sont sympa, il n'en reste pas moins que votre coté fan inconditionnel de Patrick Sebastien est frustré.

Nous allons donc voir comment installer le Google Music Manager sur gentoo. <a href="http://romain.therrat.fr/gentoo-installer-google-music-manager-pour-music-google-com-sous-gentoo/">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Si vous faites partie comme moi des chanceux a avoir accès à music.google.com et que vous utiliser gentoo comme OS favorit vous aurez surement remarqué que le Google Music Manager n&#8217;est disponible qu&#8217;au format deb et rpm &#8230; autrement dit impossible de compiler le logiciel pour uploader ses chansons. Même si les chansons gratuite sont sympa, il n&#8217;en reste pas moins que votre coté fan inconditionnel de Patrick Sebastien est frustré.</p>
<p>Nous allons donc voir comment installer le Google Music Manager sur gentoo.</p>
<h1>Compilation d&#8217;alien</h1>
<p>Nous allons dans un premier temps compiler un logiciel nommé alien. Ce soft est principalement connu pour convertir des RPM (format de paquet de la <a href="http://fr.wikipedia.org/wiki/Linux_Standard_Base">LSB</a>) en deb (format de paquet Debian et &laquo;&nbsp;non standard&nbsp;&raquo;) mais il permet aussi de convertir des paquet deb en tar.gz !!</p>
<p>Aller assez parler, compilation.</p>
<p># emerge alien</p>
<h1>Téléchargement du deb</h1>
<p>Nous allons maintenant télécharger le paquet deb proposé par google. Pour cela rendez vous sur http://music.google.com/, cliquer sur &laquo;&nbsp;<em>add music</em>&nbsp;&raquo; et selection le paquet deb correspondant à votre architecture (32 ou 64bit).</p>
<p>Pour les faignants voici les liens pour la version beta courante</p>
<p>32bits :</p>
<blockquote><p>$ wget http://dl.google.com/linux/direct/google-musicmanager-beta_current_i386.deb</p></blockquote>
<p>64 bits</p>
<blockquote><p>$ wget http://dl.google.com/linux/direct/google-musicmanager-beta_current_amd64.deb</p></blockquote>
<h1>Extraction du contenu et installation</h1>
<p>Nous allons maintenant convertir le deb en tar.gz. Pour cela nous utilisons la commande alien comme suit.</p>
<p>$ alien &#8211;to-tgz google-musicmanager-beta_current_*.deb</p>
<p>Ceci créra dans le dossier courant une archive compressé portant un nom s&#8217;apparentant à &laquo;&nbsp;<em>google-musicmanager-beta-<strong>&lt;version&gt;</strong>.tgz</em>&laquo;&nbsp;. Décompression le.</p>
<p>$ tar xvf google-musicmanager-beta-*.tgz</p>
<p>3 dossiers on été créé dans le dossier courant : opt, usr et etc.</p>
<p>Ces trois dossiers contiennent la version compilé du logiciel, il suffit de déplacer ces fichiers dans les dossiers équivalents de notre système et le logiciel fonctionnera à merveille !</p>
<blockquote><p># mkdir -p /opt/google</p>
<p># mv opt/google/ /opt/google</p>
<p># mv usr/bin/ /usr/bin</p>
<p># mv etc/cron.daily/ /etc/cron.daily</p></blockquote>
<h1>Lancement du logiciel</h1>
<p>Nous avons copier un lien symbolique nommé <em>google-musicmanager</em> pointant sur <em>/opt/google/musicmanager/google-musicmanager</em> dans <em>/usr/bin</em> qui doit téhoriquement faire partie des chemins contenus dans votre variable PATH. Donc,moyennant un rechargement du shell pour certain shell, vous n&#8217;avez qu&#8217;a exécuter la commande google-musicmanager pour lancer le Google Music Manager.</p>
<blockquote><p>$ google-musicmanager</p></blockquote>
<p>Ceci va vous faire apparaître une jolie fenêtre vous permettant d&#8217;uploader vos musiques ! Je vous laisse lire, cliquer sur suivant et le tour sera joué !</p>
<h1>Conclusion</h1>
<p>Bien qu&#8217;il soit regrettable que Google ne propose pas ses sources de l&#8217;application nous pouvons tout de même faire fonctionner le Google Music Manager et profiter du service proposé par Google. Alors profitons en !</p>
]]></content:encoded>
			<wfw:commentRss>http://romain.therrat.fr/gentoo-installer-google-music-manager-pour-music-google-com-sous-gentoo/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>[Gnome] Disque USB : Not Authorized</title>
		<link>http://romain.therrat.fr/gnome-disque-usb-not-authorized/</link>
		<comments>http://romain.therrat.fr/gnome-disque-usb-not-authorized/#comments</comments>
		<pubDate>Thu, 23 Jun 2011 11:52:27 +0000</pubDate>
		<dc:creator>lermit</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Erreur]]></category>
		<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[Gnome]]></category>

		<guid isPermaLink="false">http://romain.therrat.fr/?p=396</guid>
		<description><![CDATA[Aujourd&#8217;hui je me suis confronté à un petit problème avec ma Gentoo. Mes disques USB ne pouvait pas être monté par mes utilisateurs. Le montage des partitions par un utilisateur non root nécéssite deux choses - Faire partie du groupe &#8230; <a href="http://romain.therrat.fr/gnome-disque-usb-not-authorized/">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Aujourd&#8217;hui je me suis confronté à un petit problème avec ma Gentoo.</p>
<p>Mes disques USB ne pouvait pas être monté par mes utilisateurs. Le montage des partitions par un utilisateur non root nécéssite deux choses</p>
<p>- Faire partie du groupe plugdev.</p>
<blockquote><p># vim /etc/group</p>
<p>&#8230;</p>
<p>plugdev:x:196:haldeamon,romain</p>
<p>&#8230;.</p></blockquote>
<p>- Modifier les configuration de polkit pour autoriser les utilisateurs à monter les partition et à les démonter.</p>
<p>Editer le fichier /usr/share/polkit-1/actions/org.freedesktop.udisks.policy</p>
<blockquote><p># vim /usr/share/polkit-1/actions/org.freedesktop.udisks.policy</p>
<p>&#8230;.</p>
<p>&lt;action id=&nbsp;&raquo;org.freedesktop.udisks.filesystem-mount&nbsp;&raquo;&gt;</p>
<p>&lt;description&gt;Mount a device&lt;/description&gt;</p>
<p>&lt;message&gt;Authentication is required to mount the device&lt;/message&gt;</p>
<p>&lt;defaults&gt;</p>
<p>&lt;allow_any&gt;yes&lt;/allow_any&gt;</p>
<p>&lt;allow_inactive&gt;no&lt;/allow_inactive&gt;</p>
<p>&lt;allow_active&gt;yes&lt;/allow_active&gt;</p>
<p>&lt;/defaults&gt;</p>
<p>&lt;/action&gt;</p>
<p>&#8230;</p>
<p>&lt;action id=&nbsp;&raquo;org.freedesktop.udisks.filesystem-unmount-others&nbsp;&raquo;&gt;</p>
<p>&lt;description&gt;Unmount a device mounted by another user&lt;/description&gt;</p>
<p>&lt;message&gt;Authentication is required to unmount devices mounted by another user&lt;/message&gt;</p>
<p>&lt;defaults&gt;</p>
<p>&lt;allow_any&gt;yes&lt;/allow_any&gt;</p>
<p>&lt;allow_inactive&gt;no&lt;/allow_inactive&gt;</p>
<p>&lt;allow_active&gt;auth_admin&lt;/allow_active&gt;</p>
<p>&lt;/defaults&gt;</p>
<p>&lt;/action&gt;</p></blockquote>
<p>Un petit redémarrage de service et le tour est joué !</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://romain.therrat.fr/gnome-disque-usb-not-authorized/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

