<?xml 
version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="https://blog.roxing.net/spip.php?page=backend.xslt" ?>
<rss version="2.0" 
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:atom="http://www.w3.org/2005/Atom"
>

<channel xml:lang="fr">
	<title>blog.roxing.net</title>
	<link>http://blog.roxing.net/</link>
	<description>weblog roxing.net - astuces spip, php, bash, linux &amp; more</description>
	<language>fr</language>
	<generator>SPIP - www.spip.net</generator>
	<atom:link href="https://blog.roxing.net/spip.php?id_mot=54&amp;page=backend" rel="self" type="application/rss+xml" />

	<image>
		<title>blog.roxing.net</title>
		<url>https://blog.roxing.net/local/cache-vignettes/L144xH37/siteon0-6ddb5.png?1727125340</url>
		<link>http://blog.roxing.net/</link>
		<height>37</height>
		<width>144</width>
	</image>



<item xml:lang="fr">
		<title>Installer spip-cli dans devilbox</title>
		<link>https://blog.roxing.net/installer-spip-cli-dans-devilbox</link>
		<guid isPermaLink="true">https://blog.roxing.net/installer-spip-cli-dans-devilbox</guid>
		<dc:date>2024-10-03T13:49:01Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>placido</dc:creator>


		<dc:subject>spip</dc:subject>
		<dc:subject>linux</dc:subject>
		<dc:subject>devilbox</dc:subject>

		<description>
&lt;p&gt;Dans le host de devilbox : bash nano autostart/install-spip-cli.sh &lt;br class='autobr' /&gt;
puis dans le fichier bash # !/usr/bin/env bash #
&lt;br class='autobr' /&gt;
SPIP_CLI_PATH='/opt/spip-cli/'
&lt;br class='autobr' /&gt;
if [ -d &#034;$SPIP_CLI_PATH&#034; ] ; then &gt;&amp;amp ;2 echo &#034;[Warning], $SPIP_CLI_PATH existe d&#233;j&#224;, on sort&#034; exit 0 fi
&lt;br class='autobr' /&gt;
mkdir -p $SPIP_CLI_PATH cd $SPIP_CLI_PATH git clone https://git.spip.net/spip-contrib-outils/spip-cli.git . composer install &#8212;no-dev cd bin ln -s $(pwd)/spip /usr/local/bin/ ln -s $(pwd)/spipmu (&#8230;)&lt;/p&gt;


-
&lt;a href="https://blog.roxing.net/billets" rel="directory"&gt;billets&lt;/a&gt;

/ 
&lt;a href="https://blog.roxing.net/spip-49" rel="tag"&gt;spip&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/gnu-linux" rel="tag"&gt;linux&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/devilbox" rel="tag"&gt;devilbox&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;Dans le host de devilbox :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;nano autostart/install-spip-cli.sh &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;puis dans le fichier&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;#!/usr/bin/env bash # SPIP_CLI_PATH='/opt/spip-cli/' if [ -d &#034;${SPIP_CLI_PATH}&#034; ]; then &gt;&amp;2 echo &#034;[Warning], ${SPIP_CLI_PATH} existe d&#233;j&#224;, on sort&#034; exit 0 fi mkdir -p ${SPIP_CLI_PATH} cd ${SPIP_CLI_PATH} git clone https://git.spip.net/spip-contrib-outils/spip-cli.git . composer install --no-dev cd bin ln -s $(pwd)/spip /usr/local/bin/ ln -s $(pwd)/spipmu /usr/local/bin/ ln -s $(pwd)/spip_console_autocomplete /etc/bash_completion.d/spip &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Bonus :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;nano autostart/install-spip-dump.sh &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Puis :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;bash&#034; class='spip_code spip_code_block language-bash' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;#!/usr/bin/env bash # SPIP_DUMP_PATH='/opt/spip-dump/' if [ -d &#034;${SPIP_DUMP_PATH}&#034; ]; then &gt;&amp;2 echo &#034;[Warning], ${SPIP_DUMP_PATH} existe d&#233;j&#224;, on sort&#034; exit 0 fi echo 'installation des scripts spip-dump' mkdir -p ${SPIP_DUMP_PATH} cd ${SPIP_DUMP_PATH} curl -fsSL -o spip-import-dump-from-connect.sh https://git.spip.net/-/snippets/12/raw/main/import-dump-from-connect.sh?inline=false curl -fsSL -o spip-export-dump-from-connect.sh https://git.spip.net/-/snippets/11/raw/main/export-dump-from-connect.sh?inline=false chmod +x *.sh ln -s $(pwd)/spip* /usr/local/bin/ &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>[rsync] Exclure un pattern de la synchro par d&#233;faut</title>
		<link>https://blog.roxing.net/rsync-exclure-un-pattern-de-la-synchro-par-defaut</link>
		<guid isPermaLink="true">https://blog.roxing.net/rsync-exclure-un-pattern-de-la-synchro-par-defaut</guid>
		<dc:date>2020-04-14T13:23:33Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>placido</dc:creator>


		<dc:subject>bash</dc:subject>
		<dc:subject>linux</dc:subject>
		<dc:subject>rsync</dc:subject>

		<description>
&lt;p&gt;rsync n'a pas de fichier de configuration g&#233;n&#233;ral pour exclure un format de fichiers lors de la synchronation. Pour se dispenser de pr&#233;ciser la r&#232;gle &#8212;exclude=&#034;truc&#034; &#224; chaque fois, on a recours &#224; un wrapper dans /bin/rsync.
&lt;br class='autobr' /&gt;
# !/bin/sh # RSYNC wrapper to exclude files by default # https://unix.stackexchange.com/questions/21701/how-can-i-exclude-files-by-default-with-rsync
&lt;br class='autobr' /&gt;
# Set path to the rsync binary RSYNC=/usr/bin/rsync
&lt;br class='autobr' /&gt;
# Look for these exclude files (&#8230;)&lt;/p&gt;


-
&lt;a href="https://blog.roxing.net/signets" rel="directory"&gt;signets&lt;/a&gt;

/ 
&lt;a href="https://blog.roxing.net/bash" rel="tag"&gt;bash&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/gnu-linux" rel="tag"&gt;linux&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/rsync" rel="tag"&gt;rsync&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;&lt;strong&gt;rsync&lt;/strong&gt; n'a pas de fichier de configuration g&#233;n&#233;ral pour exclure un format de fichiers lors de la synchronation. Pour se dispenser de pr&#233;ciser la r&#232;gle &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;--exclude=&#034;truc&#034;&lt;/code&gt; &#224; chaque fois, on a recours &#224; un wrapper dans &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;~/bin/rsync&lt;/code&gt;.&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='19' class='spip_cadre spip_cadre_block' dir='ltr'&gt;#!/bin/sh # RSYNC wrapper to exclude files by default # https://unix.stackexchange.com/questions/21701/how-can-i-exclude-files-by-default-with-rsync # Set path to the rsync binary RSYNC=/usr/bin/rsync # Look for these exclude files IGNORE_FILES=(~/.rsyncignore ./.gitignore ./.rsyncignore) EXCLUDE_FROM=&#034;&#034; for f in ${IGNORE_FILES[@]}; do if [[ -e $f ]]; then EXCLUDE_FROM=&#034;$EXCLUDE_FROM --exclude-from=$f &#034; fi done $RSYNC $EXCLUDE_FROM &#034;$@&#034;&lt;/textarea&gt;
&lt;p&gt;Puis dans un fichier /.rsyncignore&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='6' class='spip_cadre spip_cadre_block' dir='ltr'&gt;# .rsyncignore error_log .DS* cache/* local/* tmp/*&lt;/textarea&gt;&lt;/div&gt;
		&lt;div class="hyperlien"&gt;Voir en ligne : &lt;a href="https://unix.stackexchange.com/questions/21701/how-can-i-exclude-files-by-default-with-rsync" class="spip_out"&gt;Unix &amp; Linux Stack Exchange&lt;/a&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Debian9 - Installation apache2 mariadb phpmyadmin &amp; php7 </title>
		<link>https://blog.roxing.net/debian9-installation-apache2-mariadb-phpmyadmin</link>
		<guid isPermaLink="true">https://blog.roxing.net/debian9-installation-apache2-mariadb-phpmyadmin</guid>
		<dc:date>2017-12-04T21:20:52Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Pierrox</dc:creator>


		<dc:subject>mysql</dc:subject>
		<dc:subject>debian</dc:subject>
		<dc:subject>linux</dc:subject>
		<dc:subject>howto</dc:subject>
		<dc:subject>debian stretch</dc:subject>
		<dc:subject>phpmyadmin</dc:subject>

		<description>&lt;p&gt;Comment installer un serveur http sur Debian 9 avec une base de donn&#233;es MySQL et son interface phpmyadmin en 30 secondes :&lt;&lt;/p&gt;

-
&lt;a href="https://blog.roxing.net/administration-systeme" rel="directory"&gt;administration syst&#232;me&lt;/a&gt;

/ 
&lt;a href="https://blog.roxing.net/mysql" rel="tag"&gt;mysql&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/debian" rel="tag"&gt;debian&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/gnu-linux" rel="tag"&gt;linux&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/howto" rel="tag"&gt;howto&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/debian-stretch" rel="tag"&gt;debian stretch&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/phpmyadmin" rel="tag"&gt;phpmyadmin&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;apt install apache2 php7.0 logrotate mariadb-server phpmyadmin&lt;/textarea&gt;
&lt;p&gt;A l'installation de phpmyadmin laisser le champ vide pour configurer automatiquement les identifiants de connexion &#224; la base de donn&#233;es.&lt;/p&gt;
&lt;p&gt;[x] Cocher red&#233;marrer apache2 pour prendre en compte la configuration ;&lt;/p&gt;
&lt;p&gt;Puis ajouter &#034;root&#034; en superadmin de phpmyadmin&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='4' class='spip_cadre spip_cadre_block' dir='ltr'&gt;mysql -uroot mysql -e &#034;SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MonPassRootIci'); update user set plugin='' where user='root'; flush privileges;&#034;&lt;/textarea&gt;
&lt;p&gt;Se connecter sur &lt;a href=&#034;http://localhost/phpmyadmin&#034; class=&#034;spip_url spip_out auto&#034; rel=&#034;nofollow external&#034;&gt;http://localhost/phpmyadmin&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Compresser, d&#233;couper et envoyer des fichiers volumineux sous Linux</title>
		<link>https://blog.roxing.net/linux-compresser-decouper-et-envoyer-des-fichiers</link>
		<guid isPermaLink="true">https://blog.roxing.net/linux-compresser-decouper-et-envoyer-des-fichiers</guid>
		<dc:date>2016-11-22T09:59:03Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Pierrox</dc:creator>


		<dc:subject>bash</dc:subject>
		<dc:subject>sauvegarde</dc:subject>
		<dc:subject>linux</dc:subject>
		<dc:subject>xz-utils</dc:subject>
		<dc:subject>compression</dc:subject>
		<dc:subject>tmux</dc:subject>
		<dc:subject>split</dc:subject>
		<dc:subject>tar</dc:subject>

		<description>&lt;p&gt;Envoyer des fichier volumineux au travers d'une petite connexion internet peu s'av&#233;rer compliqu&#233;. Cet article liste les quelques outils n&#233;cessaires et les commandes utiles &#224; l'accomplissement de cette t&#226;che.&lt;/p&gt;

-
&lt;a href="https://blog.roxing.net/administration-systeme" rel="directory"&gt;administration syst&#232;me&lt;/a&gt;

/ 
&lt;a href="https://blog.roxing.net/bash" rel="tag"&gt;bash&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/sauvegarde" rel="tag"&gt;sauvegarde&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/gnu-linux" rel="tag"&gt;linux&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/xz-utils" rel="tag"&gt;xz-utils&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/compression" rel="tag"&gt;compression&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/tmux" rel="tag"&gt;tmux&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/split" rel="tag"&gt;split&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/tar" rel="tag"&gt;tar&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;Xz - Compresser un fichier &lt;/h2&gt;
&lt;p&gt;Xz est un outil de compression tr&#232;s performant. Pour compresser un gros fichier avec le taux de compression maximal on utilise simplement :&lt;/p&gt;
&lt;p&gt;&lt;code class='bash spip_code spip_code_inline' dir='ltr'&gt;xz -9 gros_fichier&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Le fichier de sortie sera nomm&#233; gros_fichier.xz&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Split - D&#233;couper un fichier en plusieurs fichiers de taille d&#233;finie &lt;/h2&gt;
&lt;p&gt;D&#233;couper le fichier en plusieurs fragments de 1GB (-b bytes) et ajouter un suffixe num&#233;rique aux fichiers de sortie (-d )&lt;/p&gt;
&lt;p&gt;&lt;code class='bash spip_code spip_code_inline' dir='ltr'&gt;split -b 1024M -d gros_fichier.xz gros_fichier.xz_part&lt;/code&gt;&lt;br class='autobr' /&gt;
donnera :&lt;/p&gt;
&lt;p&gt;gros_fichier.xz_part01&lt;br class='manualbr' /&gt;gros_fichier.xz_part02&lt;br class='manualbr' /&gt;gros_fichier.xz_part03&lt;br class='manualbr' /&gt;...&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt; Combiner tar + xz-utils + split &lt;/h2&gt;
&lt;p&gt;A titre d'exemple, le m&#234;me r&#233;sultat que pr&#233;c&#233;dement, en utilisant conjointement tar et split :&lt;/p&gt;
&lt;p&gt;&lt;code class='bash spip_code spip_code_inline' dir='ltr'&gt;tar -Jcvf - un_repertoire_ou_fichier | split -d -b 1024MB - gros_fichier.tar.xz. &lt;/code&gt;&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt; Tmux - Envoyer les fichiers en t&#226;che de fond &lt;/h2&gt;
&lt;p&gt;Pour envoyer les fichiers vers un serveur, j'utilise scp avec une clef ssh et comme je ne veux pas saturer la connexion j'utilise l'option -l (limit). Dans l'exemple ci-dessous, -l 512 correspond &#224; environ 50ko/s.&lt;/p&gt;
&lt;p&gt;&lt;code class='bash spip_code spip_code_inline' dir='ltr'&gt;scp -i ~/.ssh/ma_clef -l 512 gros_fichier.xz_part* user@host:/home/bob/incoming&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;C'est bien joli, mais si je fais des transferts &#224; distance, j'aimerais bien lancer la commande en t&#226;che de fond, surtout si l'upload est tr&#232;s long. &lt;br class='autobr' /&gt;
Pour ce faire, j'utilise tmux qui permet d'utiliser plusieurs terminaux virtuel que l'on peu d&#233;tacher ou rattacher au terminal facilement.&lt;/p&gt;
&lt;p&gt;&lt;code class='bash spip_code spip_code_inline' dir='ltr'&gt;tmux new-session -d -s upload 'scp -i ~/.ssh/ma_clef -l 512 gros_fichier.xz_part* user@host:/home/bob/incoming 2&gt; errors.log'&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Rattacher le terminal pour voir l'upload en cours : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;tmux attach&lt;/code&gt;&lt;br class='manualbr' /&gt;D&#233;tacher le terminal avec la combinaison de touches &lt;kbd&gt;ctrl&lt;/kbd&gt; + &lt;kbd&gt;b&lt;/kbd&gt; puis &lt;kbd&gt;d&lt;/kbd&gt;&lt;br class='autobr' /&gt;
Gr&#226;ce &#224; tmux, je peux me d&#233;connecter du shell distant et revenir plus tard... &lt;br class='autobr' /&gt;
Un simple &lt;samp&gt;tmux a&lt;/samp&gt; me permettra de consulter l'&#233;tat d'avancement de l'upload.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt; Cat - R&#233;assembler les fichiers d&#233;coup&#233;s &lt;/h2&gt;
&lt;p&gt;Une fois les fichiers transf&#233;r&#233;s, je les r&#233;assemble avec un simple cat&lt;/p&gt;
&lt;p&gt;&lt;code class='bash spip_code spip_code_inline' dir='ltr'&gt;cat gros_fichier.xz_part* &gt; gros_fichier.xz&lt;/code&gt;&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt; D&#233;compression d'un xz ou d'un tar.xz &lt;/h2&gt;
&lt;p&gt;Avec tar (-x xtract) :&lt;br class='manualbr' /&gt;&lt;samp&gt;tar -Jxvf gros_fichier.tar.xz&lt;/samp&gt;&lt;/p&gt;
&lt;p&gt;Avec xz-utils (-d)&lt;br class='manualbr' /&gt;&lt;samp&gt;xz -d gros_fichier.xz&lt;/samp&gt;&lt;/p&gt;
&lt;p&gt;Voil&#224;.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>KeePassX, Openbox et clavier fr_FR</title>
		<link>https://blog.roxing.net/keepassx-openbox-et-clavier-fr</link>
		<guid isPermaLink="true">https://blog.roxing.net/keepassx-openbox-et-clavier-fr</guid>
		<dc:date>2016-08-13T11:32:06Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>placido</dc:creator>


		<dc:subject>bash</dc:subject>
		<dc:subject>linux</dc:subject>
		<dc:subject>astuce</dc:subject>
		<dc:subject>openbox</dc:subject>
		<dc:subject>keyboard</dc:subject>
		<dc:subject>keepassx</dc:subject>

		<description>
&lt;p&gt;Pour une obscure raison, la fonctionnalit&#233; Auto-Type de KeePassX (v 0.4.3), utilise une disposition de clavier diff&#233;rente que celle d&#233;finie par le syst&#232;me.
&lt;br class='autobr' /&gt;
$ localectl status System Locale : LANG=fr_FR.UTF-8 VC Keymap : n/a X11 Layout : fr X11 Model : pc105 X11 Variant : latin9 X11 Options : terminate:ctrl_alt_bksp &lt;br class='autobr' /&gt;
Du coup, la saisie auto d'un mot de passe azerty donne qwerty. &lt;br class='autobr' /&gt;
Solution : rajouter cette ligne dans /.config/openbox/autostart :
&lt;br class='autobr' /&gt;
setxkbmap fr &amp;&lt;/p&gt;


-
&lt;a href="https://blog.roxing.net/signets" rel="directory"&gt;signets&lt;/a&gt;

/ 
&lt;a href="https://blog.roxing.net/bash" rel="tag"&gt;bash&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/gnu-linux" rel="tag"&gt;linux&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/astuce" rel="tag"&gt;astuce&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/openbox-85" rel="tag"&gt;openbox&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/keyboard" rel="tag"&gt;keyboard&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/keepassx" rel="tag"&gt;keepassx&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;Pour une obscure raison, la fonctionnalit&#233; &lt;strong&gt;Auto-Type &lt;/strong&gt; de KeePassX (v 0.4.3), utilise une disposition de clavier diff&#233;rente que celle d&#233;finie par le syst&#232;me.&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='7' class='spip_cadre spip_cadre_block' dir='ltr'&gt;$ localectl status System Locale: LANG=fr_FR.UTF-8 VC Keymap: n/a X11 Layout: fr X11 Model: pc105 X11 Variant: latin9 X11 Options: terminate:ctrl_alt_bksp&lt;/textarea&gt;
&lt;p&gt;Du coup, la saisie auto d'un mot de passe &lt;kbd&gt;a&lt;/kbd&gt;&lt;kbd&gt;z&lt;/kbd&gt;&lt;kbd&gt;e&lt;/kbd&gt;&lt;kbd&gt;r&lt;/kbd&gt;&lt;kbd&gt;t&lt;/kbd&gt;&lt;kbd&gt;y&lt;/kbd&gt; donne &lt;kbd&gt;q&lt;/kbd&gt;&lt;kbd&gt;w&lt;/kbd&gt;&lt;kbd&gt;e&lt;/kbd&gt;&lt;kbd&gt;r&lt;/kbd&gt;&lt;kbd&gt;t&lt;/kbd&gt;&lt;kbd&gt;y&lt;/kbd&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt; : rajouter cette ligne dans &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;~/.config/openbox/autostart&lt;/code&gt; :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;setxkbmap fr &amp;&lt;/textarea&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>[Debian] Java JRE 8 - Installation et Mises &#224; jour</title>
		<link>https://blog.roxing.net/debian-java-jre-installation</link>
		<guid isPermaLink="true">https://blog.roxing.net/debian-java-jre-installation</guid>
		<dc:date>2016-04-07T05:00:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Pierrox</dc:creator>


		<dc:subject>debian</dc:subject>
		<dc:subject>linux</dc:subject>
		<dc:subject>firefox</dc:subject>
		<dc:subject>java</dc:subject>
		<dc:subject>oracle</dc:subject>
		<dc:subject>java-package</dc:subject>
		<dc:subject>plugin java jre</dc:subject>
		<dc:subject>java jdk</dc:subject>
		<dc:subject>howto</dc:subject>

		<description>&lt;p&gt;Installation simplifi&#233;e et mise &#224; jour de environnement d'ex&#233;cution Java d'Oracle &#169; sur Debian GNU/Linux et le plugin java embarqu&#233; dans les navigateurs.&lt;/p&gt;

-
&lt;a href="https://blog.roxing.net/administration-systeme" rel="directory"&gt;administration syst&#232;me&lt;/a&gt;

/ 
&lt;a href="https://blog.roxing.net/debian" rel="tag"&gt;debian&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/gnu-linux" rel="tag"&gt;linux&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/firefox" rel="tag"&gt;firefox&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/java" rel="tag"&gt;java&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/oracle" rel="tag"&gt;oracle&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/java-package" rel="tag"&gt;java-package&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/plugin-java-jre" rel="tag"&gt;plugin java jre&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/java-jdk" rel="tag"&gt;java jdk&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/howto" rel="tag"&gt;howto&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt; Installation de java-package &lt;/h2&gt;
&lt;p&gt;java-package est un script permettant de g&#233;n&#233;rer un paquet # !Debian afin de faciliter l'installation et la mise &#224; jour de l'&lt;a href=&#034;https://fr.wikipedia.org/wiki/Environnement_d%27ex%C3%A9cution_Java&#034; class=&#034;spip_glossaire&#034; rel=&#034;external&#034;&gt;Environnement d'ex&#233;cution Java&lt;/a&gt; (&lt;abbr title=&#034;Java Runtime Environment&#034;&gt;JRE&lt;/abbr&gt;).&lt;/p&gt;
&lt;p&gt;R&#233;cup&#233;rer java-package et les outils n&#233;cessaires &#224; la g&#233;n&#233;ration du paquet :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='bash spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;apt-get install java-package build-essential java-common&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 class=&#034;spip&#034;&gt;R&#233;cup&#233;rer l'archive sur le site d'Oracle &#169;&lt;/h2&gt;
&lt;p&gt;Rendez vous sur le site &lt;a href=&#034;http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;d'Oracle&#169;&lt;/a&gt; afin de t&#233;l&#233;charger les archives.&lt;/p&gt;
&lt;div class=&#034;attention&#034;&gt;
Bien r&#233;cup&#233;rer les archives en &lt;strong&gt;tar.gz&lt;/strong&gt; sinon le script de g&#233;n&#233;ration du paquet ne &lt;strong&gt;fonctionnera pas&lt;/strong&gt; ! &lt;/div&gt;
&lt;p&gt;On peux &#233;galement r&#233;cup&#233;rer les archives via WGET ou CURL (Et passer outre l'acceptation de la licence...)&lt;/p&gt;
&lt;p&gt;Exemple de commande &lt;a href=&#034;https://fr.wikipedia.org/wiki/CURL&#034; class=&#034;spip_glossaire&#034; rel=&#034;external&#034;&gt;CURL&lt;/a&gt; pour r&#233;cup&#233;rer java 8.77 &lt;strong&gt;32BIT&lt;/strong&gt; via le terminal&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='bash spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;curl -v -j -k -L -H &#034;Cookie: oraclelicense=accept-securebackup-cookie&#034; http://download.oracle.com/otn-pub/java/jdk/8u77-b03/jre-8u77-linux-i586.tar.gz &gt; jre-8u77-linux-i586.tar.gz&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Exemple de Commande &lt;a href=&#034;https://fr.wikipedia.org/wiki/WGET&#034; class=&#034;spip_glossaire&#034; rel=&#034;external&#034;&gt;WGET&lt;/a&gt; pour r&#233;cup&#233;rer java 8.77 &lt;strong&gt;64BIT&lt;/strong&gt; via le terminal&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='bash spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt; wget --no-check-certificate --no-cookies --header &#034;Cookie: oraclelicense=accept-securebackup-cookie&#034; http://download.oracle.com/otn-pub/java/jdk/8u77-b03/jre-8u77-linux-x64.tar.gz&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 class=&#034;spip&#034;&gt;G&#233;n&#233;rer le paquet java JRE 8 pour votre distribution Debian&lt;/h2&gt;
&lt;p&gt;une fois l'archive t&#233;l&#233;charg&#233;e il suffit d'ex&#233;cuter le script &lt;strong&gt;make-jpkg&lt;/strong&gt; sous l'identifiant utilisateur :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='bash spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;fakeroot make-jpkg jre-8u77-linux-i586.tar.gz&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;qui devrait d&#233;marrer ainsi :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;Detected Debian build architecture: i386 Detected Debian GNU type: i586-linux-gnu Detected product: Java(TM) Runtime Environment (JRE) Standard Edition, Version 8 Update 77 Oracle(TM) Is this correct [Y/n]: y &lt;- Checking free diskspace: done. In the next step, the binary file will be extracted. Probably a license agreement will be displayed. Please read this agreement carefully. If you do not agree to the displayed license terms, the package will not be built. Press [Return] to continue: Testing extracted archive... okay.&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;.&lt;/p&gt;
&lt;p&gt;Une fois le script termin&#233; l'installation du nouveau paquet se fait via la commande dpkg :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre class='bash spip_code spip_code_block' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;dpkg -i oracle-java8-jre_8u77_i386.deb&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Et voil&#224; ! L'environnement d'ex&#233;cution java et d&#233;sormais op&#233;rationnel !&lt;/p&gt;&lt;/div&gt;
		&lt;div class="hyperlien"&gt;Voir en ligne : &lt;a href="http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html" class="spip_out"&gt;T&#233;l&#233;chagement Java sur le site d'Oracle&#169;.&lt;/a&gt;&lt;/div&gt;
		&lt;div class='rss_ps'&gt;&lt;p&gt;La proc&#233;dure reste la m&#234;me pour l'installation de &lt;a href=&#034;http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;Java SE Development Kit 8u77&lt;/a&gt; seul les liens et noms de fichiers sont &#224; remplacer.&lt;/p&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>LXC Debian Jessie </title>
		<link>https://blog.roxing.net/lxc-debian-jessie</link>
		<guid isPermaLink="true">https://blog.roxing.net/lxc-debian-jessie</guid>
		<dc:date>2015-09-05T21:54:48Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Pierrox</dc:creator>


		<dc:subject>bash</dc:subject>
		<dc:subject>linux</dc:subject>
		<dc:subject>LXC</dc:subject>
		<dc:subject>virtualisation</dc:subject>
		<dc:subject>Debian Jessie</dc:subject>
		<dc:subject>lxc nat</dc:subject>
		<dc:subject>howto</dc:subject>

		<description>&lt;p&gt;Installer et configurer LXC sur Debian Jessie en trois coups de cuiller &#224; pot&lt;/p&gt;

-
&lt;a href="https://blog.roxing.net/administration-systeme" rel="directory"&gt;administration syst&#232;me&lt;/a&gt;

/ 
&lt;a href="https://blog.roxing.net/bash" rel="tag"&gt;bash&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/gnu-linux" rel="tag"&gt;linux&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/lxc" rel="tag"&gt;LXC&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/virtualisation" rel="tag"&gt;virtualisation&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/debian-jessie" rel="tag"&gt;Debian Jessie&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/lxc-nat" rel="tag"&gt;lxc nat&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/howto" rel="tag"&gt;howto&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;h2 class=&#034;spip&#034;&gt;Installation de LXC&lt;/h2&gt;
&lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;apt-get install lxc lxctl&lt;/textarea&gt;
&lt;p&gt;&lt;strong&gt;Cr&#233;ation d'un container&lt;/strong&gt;&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;lxc-create -n NomContainer -t debian&lt;/textarea&gt;
&lt;p&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; -n nom du container &lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; -t template de l'OS &#224; utiliser&lt;/p&gt;
&lt;p&gt;Bien noter le mot de passe root qui s'affichera &#224; la fin de la cr&#233;ation du container lxc.&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;Configuration du r&#233;seau sur l'h&#244;te&lt;/h2&gt;
&lt;p&gt;Il y a plusieurs fa&#231;ons de configurer le r&#233;seau, pour ma part je pr&#233;f&#232;re cr&#233;er un (ou plusieurs) sous-r&#233;seaux pour mes containers qui seront &#034;natter&#034; par la machine h&#244;te.&lt;br class='autobr' /&gt;
Pour illustrer, on pourrait dire que les sous-r&#233;seaux sont cloisonn&#233;s &#224; l'int&#233;rieur de l'h&#244;te qui fera office de pare-feu vers l'ext&#233;rieur.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Autoriser &#034;l'ip forwarding&#034;&lt;/strong&gt;&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;nano /etc/sysctl.conf net.ipv4.ip_forward=1&lt;/textarea&gt;
&lt;p&gt;Recharger la configuration du syst&#232;me pour prendre en compte la modification.&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;sysctl -p&lt;/textarea&gt;
&lt;p&gt;&lt;strong&gt;Configurer l'interface qui servira de bridge&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;La paquet bridge-utils est n&#233;cessaire, il est normalement install&#233; en d&#233;pendance de lxc, au cas ou :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;apt-get install bridge-utils&lt;/textarea&gt;
&lt;p&gt;Param&#233;trage de /etc/network/interfaces&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='10' class='spip_cadre spip_cadre_block' dir='ltr'&gt;# The loopback network interface auto lo iface lo inet loopback # Configuration du Bridge pour le sous r&#233;seau virtualis&#233; auto br0 iface br0 inet static address 192.168.100.254 netmask 255.255.255.0 bridge_ports none&lt;/textarea&gt;
&lt;p&gt;Red&#233;marrer le service r&#233;seau afin de prendre en compte la nouvelle interface br0&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;service networking restart&lt;/textarea&gt;
&lt;p&gt;V&#233;rifier que l'interface r&#233;seau est bien pr&#233;sente :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;ifconfig&lt;/code&gt; devrait renvoyer quelque chose comme &#231;a&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='11' class='spip_cadre spip_cadre_block' dir='ltr'&gt;br0 Link encap:Ethernet HWaddr 22:ce:06:00:1d:7f inet adr:192.168.100.254 Bcast:192.168.100.255 Masque:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:24 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 lg file transmission:0 RX bytes:0 (0.0 B) TX bytes:3915 (3.8 KiB)&lt;/textarea&gt;
&lt;p&gt;&lt;strong&gt;Activer le partage de connexion internet pour les containers LXC :&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;On va donner l'acc&#232;s internet aux containers LXC &#224; travers wlan0 (On verra comment automatiser &#231;a sur un h&#244;te au profil itin&#233;rant qui se connecte sur des interfaces diverses et vari&#233;es : wlan0 eth0 usb0... )&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;iptables -t nat -F POSTROUTING iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE&lt;/textarea&gt;&lt;h2 class=&#034;spip&#034;&gt;Configuration du r&#233;seau sur les containers LXC&lt;/h2&gt;
&lt;p&gt;Attention ! il ne s'agit pas de param&#233;trer le r&#233;seau &#224; l'int&#233;rieur du container mais d'&#233;diter un fichier de configuration qui se chargera de configurer le r&#233;seau au d&#233;marrage de celui-ci.&lt;/p&gt;
&lt;p&gt;Par d&#233;faut, Debian installe les nouveaux containers dans &lt;strong&gt;/var/lib/lxc&lt;/strong&gt; ; ce dossier contient tous les containers cr&#233;&#233;s, qui eux-m&#234;me contiennent des fichiers de logs, de configs et le dossier &lt;strong&gt;rootfs&lt;/strong&gt; qui comme son nom l'indique, correspond &#224; la racine du syst&#232;me virtualis&#233; ( / ).&lt;/p&gt;
&lt;p&gt;Afin de configurer le r&#233;seau sur notre container LXC, nous allons &#233;diter son fichier de config &lt;strong&gt; /var/lib/lxc/NomContainer&lt;/strong&gt;&lt;br class='autobr' /&gt;
Extrait de la configuration r&#233;seau d'un container &lt;strong&gt;/var/lib/lxc/NomContainer/config&lt;/strong&gt;&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='7' class='spip_cadre spip_cadre_block' dir='ltr'&gt;lxc.network.type = veth lxc.network.name = veth0 lxc.network.flags = up lxc.network.link = br0 lxc.network.veth.pair = veth0 lxc.network.ipv4 = 192.168.100.1/24 lxc.network.ipv4.gateway = 192.168.100.254&lt;/textarea&gt;&lt;h2 class=&#034;spip&#034;&gt;D&#233;marrage du container et test du r&#233;seau&lt;/h2&gt;
&lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;lxc-start -n NomContainer -d&lt;/textarea&gt;
&lt;p&gt;&lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; -n nom du container &lt;br /&gt;&lt;span class=&#034;spip-puce ltr&#034;&gt;&lt;b&gt;&#8211;&lt;/b&gt;&lt;/span&gt; -d en mode daemon&lt;/p&gt;
&lt;p&gt;La commande pour contr&#244;ler si notre container LXC est bien d&#233;marr&#233; :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;lxc-ls -f&lt;/textarea&gt;
&lt;p&gt;Devrait retourner&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='4' class='spip_cadre spip_cadre_block' dir='ltr'&gt;NAME STATE IPV4 IPV6 AUTOSTART --------------------------------------------------------- NomContainer RUNNING 192.168.100.1 - NO&lt;/textarea&gt;
&lt;p&gt;Sur l'h&#244;te un petit ping 192.168.100.1 devrait retourner :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='3' class='spip_cadre spip_cadre_block' dir='ltr'&gt;PING 192.168.100.1 (192.168.100.1) 56(84) bytes of data. 64 bytes from 192.168.100.1: icmp_seq=1 ttl=64 time=0.087 ms&lt;/textarea&gt;
&lt;p&gt;On va se connecter directement au container LXC&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;lxc-console -n NomContainer&lt;/textarea&gt;
&lt;p&gt;Se connecter au container, j'esp&#232;re que vous avez bien not&#233; le mot de passe root lors de sa cr&#233;ation sinon vous pouvez toujours &lt;a href='https://blog.roxing.net/lxc-root-password' class=&#034;spip_in&#034;&gt;consulter l'article d&#233;di&#233; au changement de mot de passe root d'un container LXC&lt;/a&gt;.&lt;br class='autobr' /&gt;
Une fois connect&#233;, on va tester l'acc&#232;s internet en utilisant apt pour installer ping afin de &#034;pinguer&#034; la machine h&#244;te :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='11' class='spip_cadre spip_cadre_block' dir='ltr'&gt;root@NomContainer:~#apt-get install inetutils-ping Les NOUVEAUX paquets suivants seront install&#233;s&#160;: inetutils-ping (...) Param&#233;trage de inetutils-ping (2:1.9.2.39.3a460-3) .. root@NomContainer:~#ping 192.168.100.254 PING 192.168.100.254 (192.168.100.254): 56 data bytes 64 bytes from 192.168.100.254: icmp_seq=0 ttl=64 time=0,163 ms 64 bytes from 192.168.100.254: icmp_seq=1 ttl=64 time=0,163 ms&lt;/textarea&gt;
&lt;p&gt;Et voil&#224;, Juste &#231;a marche !&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_ps'&gt;&lt;p&gt;Pour quitter un container, utilisez la combinaison de touche &lt;kbd&gt;ctrl&lt;/kbd&gt;+&lt;kbd&gt;a&lt;/kbd&gt; puis &lt;kbd&gt;q&lt;/kbd&gt;&lt;/p&gt;&lt;/div&gt;
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>youtube-dl + vlcopen</title>
		<link>https://blog.roxing.net/youtube-dl-vlcopen</link>
		<guid isPermaLink="true">https://blog.roxing.net/youtube-dl-vlcopen</guid>
		<dc:date>2015-04-07T19:52:19Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>placido</dc:creator>


		<dc:subject>bash</dc:subject>
		<dc:subject>script</dc:subject>
		<dc:subject>linux</dc:subject>
		<dc:subject>vlc</dc:subject>
		<dc:subject>openbox</dc:subject>
		<dc:subject>youtube-dl</dc:subject>
		<dc:subject>youtube</dc:subject>

		<description>&lt;p&gt;S'affranchir efficacement de flash pour lire les vid&#233;os directement dans VLC&lt;/p&gt;

-
&lt;a href="https://blog.roxing.net/billets" rel="directory"&gt;billets&lt;/a&gt;

/ 
&lt;a href="https://blog.roxing.net/bash" rel="tag"&gt;bash&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/script-50" rel="tag"&gt;script&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/gnu-linux" rel="tag"&gt;linux&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/vlc" rel="tag"&gt;vlc&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/openbox-85" rel="tag"&gt;openbox&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/youtube-dl" rel="tag"&gt;youtube-dl&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/youtube" rel="tag"&gt;youtube&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;Vous le savez comme moi, flash c'est le mal. Et voici LA solution qui vous fera franchir le pas d'un bannissement (esp&#233;rons permanent) du vil greffon sans pour autant faire une croix sur les vid&#233;os des plateformes d'h&#233;bergement (youtube, dailymotion, vimeo, etc).&lt;/p&gt;
&lt;p&gt;Cela consiste en l'emploi coordonn&#233; de &lt;strong&gt;deux scripts&lt;/strong&gt; qui vont vous permettre de lire directement une vid&#233;o distante dans votre lecteur habituel (VLC, mplayer ou autre).&lt;/p&gt;
&lt;h2 class=&#034;spip&#034;&gt;1) Installation de youtube-dl&lt;/h2&gt;
&lt;p&gt;Sous GNU-Linux, la m&#233;thode que je trouve la plus simple est de passer par le gestionnaire d'environnement python pip.&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;sudo apt-get install python-pip
sudo pip install youtube-dl&lt;/textarea&gt;
&lt;p&gt;Veillez &#224; mettre &#224; jour l'application de temps en temps, car les plugins de gestion par plateforme sont nombreux et les modifications fr&#233;quentes.&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;sudo pip install -U youtube-dl&lt;/textarea&gt;&lt;h2 class=&#034;spip&#034;&gt;2) Lancement illico gr&#226;ce &#224; vlcopen.sh&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#034;https://github.com/rg3/youtube-dl&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;youtude-dl&lt;/a&gt; est un super logiciel, efficace dans bien des situations, mais son utilisation en ligne de commande s'av&#232;re &#224; la longue un peu r&#233;dhibitoire pour une utilisation en tant que simple utilisateur.&lt;/p&gt;
&lt;p&gt;D'o&#249; le recours &#224; un second script, mis &#224; disposition par &lt;a href=&#034;https://gist.github.com/swarminglogic/0cd2f6d55390243e693b&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;swarminglogic&lt;/a&gt;,qui va apporter un peu de souplesse d'utilisation et ouvrir la vid&#233;o encore plus vite que si vous y aviez acc&#233;d&#233;e directement depuis la page youtube, gr&#226;ce &#224; un raccourci clavier.&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='95' class='spip_cadre spip_cadre_block' dir='ltr'&gt;#!/bin/bash if [ $# -eq 1 ] ; then path=$1
else clipboard=$(xclip -selection clipboard -o) if [ $(&lt;&lt;&lt;$clipboard grep -P &#034;^http&#034;) ] ; then path=$clipboard else if [ -t 1 ] ; then echo &#034;Bad clipboard path: $clipboard&#034; &gt;&amp;2 else notify-send &#034;Bad clipboard path: $clipboard&#034; fi exit 1 fi
fi #$1 processid, $2 tempdir $3 logfile
function cleanup { echo &#034;-------------------------------------------&#034; echo &#034;Cleaning up&#034; kill -9 $1 &amp;&gt; /dev/null if [ -n &#034;$2&#034; ] ; then rm $2/* ; fi if [ -n &#034;$2&#034; ] ; then rmdir $2 ; fi if [ -n &#034;$3&#034; ] ; then rm $3 ; fi
} echo &#034;Opening $path&#034;
tmpvlcopen=/tmp/vlcopen/
[ ! -d $tmpvlcopen ] &amp;&amp; mkdir $tmpvlcopen
tmpdir=$(mktemp -d --tmpdir=$tmpvlcopen) # If the tmpdir path doesn't include &#034;/tmp/vlcopen&#034; something went bad!
if [ &#034;${tmpdir/$tmpvlcopen}&#034; = &#034;$tmpdir&#034; ] ; then echo &#034;Aborting: failed to create proper temporary directories&#034; &gt;&amp;2 exit 1
fi cd $tmpdir
echo &#034;Temporary directory: $tmpdir&#034;
echo &#034;Getting video: $path&#034;
downloadlog=$(tempfile)
(youtube-dl --restrict-filenames --no-part &#034;$path&#034; &amp;&gt; $downloadlog)&amp;
processId=$!
echo &#034;ProcessID: $processId&#034;
echo &#034;Waiting for file creation&#034; count=0
while [ $(ls -1 | wc -l) -eq 0 ] ; do # check if process is done. if ! kill -0 $processId &amp;&gt;/dev/null ; then if [ -t 1 ] ; then echo &#034;-------------------------------------------&#034;&gt;&amp;2 echo &#034;Error: youtube-dl finished without output.&#034; &gt;&amp;2 echo &#034;Error: Bad URL?&#034; &gt;&amp;2 echo &#034;---------------- Download Log -------------&#034;&gt;&amp;2 cat $downloadlog &gt;&amp;2 else notify-send &#034;Bad URL: $path $(cat $downloadlog)&#034; fi cleanup $processId &#034;$tmpdir&#034; &#034;$downloadlog&#034; exit 0 fi sleep 0.5 ((count++)) if [ $count -eq 20 ] ; then if [ -t 1 ] ; then echo &#034;Timed out&#034; &gt;&amp;2 else notify-send &#034;Timed out&#034; fi exit 0 fi
done sleep 0.1
echo &#034;Opening file: $(ls -1 | head -n 1)&#034;
vlc &#034;$(ls -1 | head -n 1)&#034; &amp;&gt;/dev/null
cleanup $processId &#034;$tmpdir&#034; &#034;$downloadlog&#034;&lt;/textarea&gt;
&lt;p&gt;Ce script se comporte comme une capsule pour youtube-dl. Il va analyser le contenu du presse-papier, et s'il d&#233;tecte une url prise en charge, va cr&#233;er un r&#233;pertoire temporaire, y t&#233;l&#233;charger la vid&#233;o, l'ouvrir avec VLC apr&#232;s quelques instants et supprimer automatiquement tous les fichiers temporaires &#224; la fermeture.&lt;/p&gt;
&lt;p&gt;Il suffit d'enregistrer le script (sous le nom vlcopen.sh par exemple) dans un r&#233;pertoire inclus dans votre &lt;i&gt;$PATH&lt;/i&gt;, le rendre ex&#233;cutable (&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;chmod +x vlcopen.sh&lt;/code&gt;) et d'associer un raccourci clavier &#224; son ex&#233;cution.&lt;/p&gt;
&lt;p&gt;Typiquement sous openbox, j'ai rajout&#233; une section comme suit &#224; mon rc.xml.&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='9' class='spip_cadre spip_cadre_block' dir='ltr'&gt;&lt;keybind key=&#034;W-y&#034;&gt; &lt;action name=&#034;Execute&#034;&gt; &lt;startupnotify&gt; &lt;enabled&gt;true&lt;/enabled&gt; &lt;name&gt;vlcopen&lt;/name&gt; &lt;/startupnotify&gt; &lt;command&gt;vlcopen.sh&lt;/command&gt; &lt;/action&gt;
&lt;/keybind&gt;&lt;/textarea&gt;
&lt;p&gt;D&#232;s lors, dans les faits, lorsque je veux regarder une vid&#233;o, je fais un&lt;i&gt; clic-droit &gt; copier l'url de la page&lt;/i&gt; soit sur la page courante, soit sur le lien &#224; analyser, puis &lt;kbd&gt;super&lt;/kbd&gt; + &lt;kbd&gt;y&lt;/kbd&gt; (oui j'ai choisi &lt;kbd&gt;y&lt;/kbd&gt; pour &#034;youtube&#034; mais &#224; vous d'adapter au besoin), et voil&#224; !&lt;/p&gt;
&lt;p&gt;Seul b&#233;mol, si la vid&#233;o est longue et que vous &#234;tes impatient, vous ne pourrez pas avancer directement la lecture &#224; un point qui n'a pas encore &#233;t&#233; t&#233;l&#233;charg&#233;.&lt;/p&gt;&lt;/div&gt;
		&lt;div class="hyperlien"&gt;Voir en ligne : &lt;a href="https://gist.github.com/swarminglogic/0cd2f6d55390243e693b" class="spip_out"&gt;github.com/swarminglogic&lt;/a&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>PCmanFM + sftp/smb/ssh</title>
		<link>https://blog.roxing.net/pcmanfm-sftp-smb-ssh</link>
		<guid isPermaLink="true">https://blog.roxing.net/pcmanfm-sftp-smb-ssh</guid>
		<dc:date>2015-03-19T03:30:55Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		


		<dc:subject>debian</dc:subject>
		<dc:subject>linux</dc:subject>

		<description>
&lt;p&gt;Si, comme moi, vous vous &#234;tes demand&#233; pourquoi votre navigateur de fichier l&#233;ger n'arrivait pas &#224; parcourir votre r&#233;seau sftp / smb / ssh / ftp dans votre environnement l&#233;ger (fluxbox) c'est certainement du &#224; votre fa&#231;on de lancer pcmanfm :)
&lt;br class='autobr' /&gt;
dbus-launch pcmanfm&lt;/p&gt;


-
&lt;a href="https://blog.roxing.net/billets" rel="directory"&gt;billets&lt;/a&gt;

/ 
&lt;a href="https://blog.roxing.net/debian" rel="tag"&gt;debian&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/gnu-linux" rel="tag"&gt;linux&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;Si, comme moi, vous vous &#234;tes demand&#233; pourquoi votre navigateur de fichier l&#233;ger n'arrivait pas &#224; parcourir votre r&#233;seau sftp / smb / ssh / ftp dans votre environnement l&#233;ger (fluxbox) c'est certainement du &#224; votre fa&#231;on de lancer pcmanfm :)&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='2' class='spip_cadre spip_cadre_block' dir='ltr'&gt;dbus-launch pcmanfm&lt;/textarea&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Synchroniser un clavier apple aluminium bluetooth en dual boot (OS X - Gnu/Linux)</title>
		<link>https://blog.roxing.net/synchroniser-un-clavier-apple-aluminium-bluetooth</link>
		<guid isPermaLink="true">https://blog.roxing.net/synchroniser-un-clavier-apple-aluminium-bluetooth</guid>
		<dc:date>2015-03-18T01:40:01Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>placido</dc:creator>


		<dc:subject>script</dc:subject>
		<dc:subject>linux</dc:subject>
		<dc:subject>OS-X</dc:subject>
		<dc:subject>sync</dc:subject>
		<dc:subject>bluetooth</dc:subject>

		<description>
&lt;p&gt;Dans le cadre d'une installation en dual boot MAC OS / Debian, il peut s'av&#233;rer fastidieux de synchroniser ses p&#233;riph&#233;riques bluetooth avec un identifiant commun entre les syst&#232;mes. &lt;br class='autobr' /&gt;
La marche &#224; suivre consiste &#224; op&#233;rer la synchronisation sous OS X, puis booter sous GNU/Linux, monter la partition OS X, par exemple :
&lt;br class='autobr' /&gt;
sudo mount -t hfsplus /dev/sda2 /media/OSX/ &lt;br class='autobr' /&gt;
Puis &#224; ex&#233;cuter ce script [1] :
&lt;br class='autobr' /&gt;
# !/bin/sh # sync-bt-os.sh cd /var/lib/bluetooth for i in * ; do cd &#034;$i&#034; plutil (&#8230;)&lt;/p&gt;


-
&lt;a href="https://blog.roxing.net/billets" rel="directory"&gt;billets&lt;/a&gt;

/ 
&lt;a href="https://blog.roxing.net/script-50" rel="tag"&gt;script&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/gnu-linux" rel="tag"&gt;linux&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/os-x" rel="tag"&gt;OS-X&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/sync" rel="tag"&gt;sync&lt;/a&gt;, 
&lt;a href="https://blog.roxing.net/bluetooth" rel="tag"&gt;bluetooth&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;Dans le cadre d'une installation en dual boot MAC OS / Debian, il peut s'av&#233;rer fastidieux de synchroniser ses p&#233;riph&#233;riques bluetooth avec un identifiant commun entre les syst&#232;mes.&lt;/p&gt;
&lt;p&gt;La marche &#224; suivre consiste &#224; op&#233;rer la synchronisation sous OS X, puis booter sous GNU/Linux, monter la partition OS X, par exemple :&lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;sudo mount -t hfsplus /dev/sda2 /media/OSX/&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Puis &#224; ex&#233;cuter ce script&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href=&#034;#nb2-1&#034; class=&#034;spip_note&#034; rel=&#034;appendix&#034; title=&#034;Il vous faudra probablement installer le paquet plutil, via apt par exemple.&#034; id=&#034;nh2-1&#034;&gt;1&lt;/a&gt;]&lt;/span&gt; :&lt;/p&gt; &lt;textarea readonly='readonly' cols='40' rows='18' class='spip_cadre spip_cadre_block' dir='ltr'&gt;#!/bin/sh # sync-bt-os.sh cd /var/lib/bluetooth for i in *; do cd &#034;$i&#034; plutil -i /media/OSX/private/var/root/Library/Preferences/blued.plist -o /dev/stdout | perl -0777 -MMIME::Base64 -ne 's|\s||g; $s = $_; while ($s =~ m|&lt;key&gt;(..-..-..-..-..-..)&lt;/key&gt;&lt;data&gt;(.*?)&lt;/data&gt;|g) { $mac = uc($1); $key = uc(unpack(&#034;H*&#034;,reverse decode_base64($2))); $mac =~ s/-/:/g; $pinlength = 6; $pinlength = 4 if $mac eq &#034;C4:2C:03:A0:C7:20&#034;; print &#034;$mac $key 0 $pinlength\n&#034;; }' | tee linkkeys cd .. done service bluetooth restart&lt;/textarea&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;div id=&#034;nb2-1&#034;&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href=&#034;#nh2-1&#034; class=&#034;spip_note&#034; title=&#034;Notes 2-1&#034; rev=&#034;appendix&#034;&gt;1&lt;/a&gt;] &lt;/span&gt;Il vous faudra probablement installer le paquet &lt;a href=&#034;https://packages.debian.org/wheezy/libplist-utils&#034; class=&#034;spip_out&#034; rel=&#034;external&#034;&gt;plutil&lt;/a&gt;, via apt par exemple.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>



</channel>

</rss>
