<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>gentoo on head /dev/log</title>
    <link>https://www.lamy.im/tags/gentoo/</link>
    <description>Recent content in gentoo on head /dev/log</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Sun, 10 Mar 2019 21:21:07 +0000</lastBuildDate><atom:link href="https://www.lamy.im/tags/gentoo/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>gcc compilation  failure (Value too large for defined data type)</title>
      <link>https://www.lamy.im/posts/gcc-compilation-failure-value-too-large-for-defined-data-type/</link>
      <pubDate>Sun, 10 Mar 2019 21:21:07 +0000</pubDate>
      
      <guid>https://www.lamy.im/posts/gcc-compilation-failure-value-too-large-for-defined-data-type/</guid>
      <description>I just reinstalled some of my servers with my beloved combo : gentoo &amp;amp; XFS &amp;lt;3
When I was trying to upgrade my gcc version from 7.3 to 8.2 I got the following error :
&amp;lt;pre class=&amp;#34;wp-block-code&amp;#34;&amp;gt;``` checking for uintptr_t... * /var/tmp/portage/sys-apps/sandbox-2.13/work/sandbox-2.13/libsandbox/libsandbox.c:check_syscall():968: failure (Value too large for defined data type): * ISE: fopen_wr(conftest.val) abs_path: (null) res_path: /var/tmp/portage/sys-devel/gcc-8.2.0-r6/work/build/x86_64-pc-linux-gnu/32/libatomic/conftest.val configure: error: Could not determine word size. I finally found in that very old gentoo forum post and bug report that XFS is the rootcause.</description>
      <content>&lt;p&gt;I just reinstalled some of my servers with my beloved combo : gentoo &amp;amp; XFS &amp;lt;3&lt;/p&gt;
&lt;p&gt;When I was trying to upgrade my gcc version from 7.3 to 8.2 I got the following error :&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&amp;lt;pre class=&amp;#34;wp-block-code&amp;#34;&amp;gt;```
checking for uintptr_t...  * /var/tmp/portage/sys-apps/sandbox-2.13/work/sandbox-2.13/libsandbox/libsandbox.c:check_syscall():968: failure (Value too large for defined data type):
 * ISE: fopen_wr(conftest.val)
        abs_path: (null)
        res_path: /var/tmp/portage/sys-devel/gcc-8.2.0-r6/work/build/x86_64-pc-linux-gnu/32/libatomic/conftest.val
configure: error: Could not determine word size.
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;I finally found in that very old &lt;a href=&#34;https://forums.gentoo.org/viewtopic-p-7440348.html&#34;&gt;gentoo forum post&lt;/a&gt; and &lt;a href=&#34;https://bugs.gentoo.org/471024&#34;&gt;bug report&lt;/a&gt; that XFS is the rootcause. So I decided to move my ‘/var/tmp/portage’ from XFS to tmpfs by adding the following to /etc/fstab. Size may be adapted but 2G is not enough to compile GCC successfully.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&amp;lt;pre class=&amp;#34;wp-block-preformatted&amp;#34;&amp;gt;tmpfs /var/tmp/portage tmpfs size=4G,uid=portage,gid=portage,mode=775,noatime        0 0
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Then I resumed the compilation, it worked like a charm and I was able to set my new GCC version as default one.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ emerge --resume
$ gcc-config -l
[1] x86_64-pc-linux-gnu-7.3.0 *
[2] x86_64-pc-linux-gnu-8.2.0 
$ gcc-config 2
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Again, gentoo documentation and resources was awesome 🙂&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Active version of CPython 3 is not supported by dev-python/dbus-python-1.1.1</title>
      <link>https://www.lamy.im/posts/active-version-of-cpython-3-is-not-supported-by-dev-pythondbus-python-1-1-1/</link>
      <pubDate>Wed, 25 Jul 2012 20:52:10 +0000</pubDate>
      
      <guid>https://www.lamy.im/posts/active-version-of-cpython-3-is-not-supported-by-dev-pythondbus-python-1-1-1/</guid>
      <description>Il y a quelques jours, je me suis fait agresser par ma gentoo a la mise à jour de dev-python/dbus-python:
&amp;gt;&amp;gt;&amp;gt; Emerging (1 of 1) dev-python/dbus-python-1.1.1 * dbus-python-1.1.1.tar.gz SHA256 SHA512 WHIRLPOOL size ;-) ... [ ok ] * ERROR: dev-python/dbus-python-1.1.1 failed (setup phase): * Active version of CPython 3 is not supported by dev-python/dbus-python-1.1.1 * Il suffit de :
eselect python update --python2 eselect python update --python3 pour utiliser la dernière version de python sur chaque branche.</description>
      <content>&lt;p&gt;Il y a quelques jours, je me suis fait agresser par ma gentoo a la mise à jour de dev-python/dbus-python:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt; Emerging (1 of 1) dev-python/dbus-python-1.1.1
 * dbus-python-1.1.1.tar.gz SHA256 SHA512 WHIRLPOOL size ;-) ...                        [ ok ]
 * ERROR: dev-python/dbus-python-1.1.1 failed (setup phase):
 *   Active version of CPython 3 is not supported by dev-python/dbus-python-1.1.1
 *
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Il suffit de :&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;eselect python update --python2
eselect python update --python3 
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;pour utiliser la dernière version de python sur chaque branche. Ensuite, on peut recompiler dev-python/dbus-python :-)&lt;/p&gt;
&lt;p&gt;Solution trouvée sur le &lt;a href=&#34;http://forums.gentoo.org/viewtopic-t-923884-start-0.html&#34;&gt;forum gentoo&lt;/a&gt;, toujours aussi actif.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Gentoo à 10 ans!</title>
      <link>https://www.lamy.im/posts/gentoo-a-10-ans/</link>
      <pubDate>Mon, 05 Oct 2009 19:30:38 +0000</pubDate>
      
      <guid>https://www.lamy.im/posts/gentoo-a-10-ans/</guid>
      <description>Hier, Gentoo fêtait ses 10ans!
Les profils 10.0 sont sortis en desktop, server etc.
Pour moi ça fait 6 ans d’utilisation de Gentoo… 6ans de compilation, d’expérimentations, de serveur X qui ne démarre plus, de chroot pour remettre la machine en état, une migration de pam vers shadow qui donne des suées, 6 ans de partage sur irc, d’énervement parfois, de contentement d’avoir trouvé une solution souvent 🙂
J’en profite pour adresser 6 ans de merci à la communauté Gentoo!</description>
      <content>&lt;p&gt;Hier, Gentoo fêtait ses 10ans!&lt;/p&gt;
&lt;p&gt;Les profils 10.0 sont sortis en &lt;em&gt;desktop&lt;/em&gt;, &lt;em&gt;server&lt;/em&gt; etc.&lt;/p&gt;
&lt;p&gt;Pour moi ça fait 6 ans d’utilisation de Gentoo… 6ans de compilation, d’expérimentations, de serveur X qui ne démarre plus, de chroot pour remettre la machine en état, une migration de pam vers shadow qui donne des suées, 6 ans de partage sur irc, d’énervement parfois, de contentement d’avoir trouvé une solution souvent 🙂&lt;/p&gt;
&lt;p&gt;J’en profite pour adresser 6 ans de merci à la communauté Gentoo!&lt;/p&gt;
&lt;p&gt;thank you guys !&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>emerge world sur gentoo millésime</title>
      <link>https://www.lamy.im/posts/emerge-world-sur-gentoo-millesime/</link>
      <pubDate>Mon, 18 May 2009 19:32:45 +0000</pubDate>
      
      <guid>https://www.lamy.im/posts/emerge-world-sur-gentoo-millesime/</guid>
      <description>Il y à quelques jours j’ai entrepris de réutiliser ma machine de stockage. Une gentoo laissée à l’abandon depuis plusieurs mois (année?) m’y attendait.
A ma grande suprise la mise à jour s’est très bien passée… sauf pour xorg. Comme à l’acoutumée les grosses mises à jour de xorg se font dans la douleur.
Depuis xorg 1.5 la gestion du couple clavier/souris est laissée à HAL par defaut. C’est la raison pour laquelle malgrès mon xorg.</description>
      <content>&lt;p&gt;Il y à quelques jours j’ai entrepris de réutiliser ma machine de stockage. Une gentoo laissée à l’abandon depuis plusieurs mois (année?) m’y attendait.&lt;/p&gt;
&lt;p&gt;A ma grande suprise la mise à jour s’est très bien passée… sauf pour xorg. Comme à l’acoutumée les grosses mises à jour de xorg se font dans la douleur.&lt;/p&gt;
&lt;p&gt;Depuis xorg 1.5 la gestion du couple clavier/souris est laissée à HAL par defaut. C’est la raison pour laquelle malgrès mon xorg.conf, X s’obstinait à mapper mon clavier en qwerty ce qui ne m&amp;rsquo;arrange pas vraiment.&lt;/p&gt;
&lt;p&gt;HAL n’a pas inventé la poudre, il faut donc lui signifier la configuration voulue pour le clavier.&lt;br&gt;
&lt;code&gt;cp /usr/share/hal/fdi/policy/10osvendor/10-keymap.fdi /etc/hal/fdi/policy/&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Ensuite, éditer la ligne du input.xkb.layout et mettre la valeur souhaitée.&lt;/p&gt;
&lt;p&gt;restart de HAL, X and voila 🙂&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>MediaTomb comme serveur DLNA pour la ps3</title>
      <link>https://www.lamy.im/posts/mediatomb-serveur-dlna-ps3/</link>
      <pubDate>Sat, 02 May 2009 13:42:33 +0000</pubDate>
      
      <guid>https://www.lamy.im/posts/mediatomb-serveur-dlna-ps3/</guid>
      <description>Installer linux sur sa ps3 pour émuler de vieilles consoles et lires des fichiers exotiques c’est bien, utiliser ses fonctions DLNA pour acceder à toute sa mediathèque c’est mieux 🙂
J’ai installé MediaTomb sous gentoo, un simple emerge mediatomb suffit, suivi d’un rc-update add mediatomb default pour ne plus avoir à y penser.
L’interface d’admin est accesible sur http://localhost:49142 par defaut.
Il suffit ensuite d’ajouter les repertoires que l’on veut a la DB de MediaTomb et le tour est joué.</description>
      <content>&lt;p&gt;Installer linux sur sa ps3 pour émuler de vieilles consoles et lires des fichiers exotiques c’est bien, utiliser ses fonctions DLNA pour acceder à toute sa mediathèque c’est mieux 🙂&lt;/p&gt;
&lt;p&gt;J’ai installé MediaTomb sous gentoo, un simple &lt;em&gt;emerge mediatomb&lt;/em&gt; suffit, suivi d’un &lt;em&gt;rc-update add mediatomb default&lt;/em&gt; pour ne plus avoir à y penser.&lt;/p&gt;
&lt;p&gt;L’interface d’admin est accesible sur &lt;em&gt;http://localhost:49142&lt;/em&gt; par defaut.&lt;/p&gt;
&lt;p&gt;Il suffit ensuite d’ajouter les repertoires que l’on veut a la DB de MediaTomb et le tour est joué. musique, videos et photos sont directement accessible depuis le ps3!&lt;/p&gt;
&lt;p&gt;Pour le firmware 2.7 de la playstation, il y à une petite finesse expliquée dans &lt;a href=&#34;http://mediatomb.cc/dokuwiki/faq:faq#ps3_won_t_play_.avi_files_anymore_after_updating_to_2.70&#34; title=&#34;FAQ de MediaTomb&#34;&gt;la FAQ&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Attention nénmoins a la consomation mémoire lors d’ajout de répertoire chargés en vidéos.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>ebuild pour tinyproxy 1.7.0</title>
      <link>https://www.lamy.im/posts/ebuild-pour-tinyproxy-170/</link>
      <pubDate>Sun, 14 Dec 2008 04:29:13 +0000</pubDate>
      
      <guid>https://www.lamy.im/posts/ebuild-pour-tinyproxy-170/</guid>
      <description>J’ai voulu testé tinyproxy 1.7.0 qui intègre la fonction de reverse proxy. Cette version n’est pas dans portage donc j’ai mis à jour l’ebuild de la version 1.6 pour installer proprement cette version de dev..
Cet ebuild est à placer dans un overlay. La création d’un overlay est expliquée dans un précédent billet.</description>
      <content>&lt;p&gt;J’ai voulu testé tinyproxy 1.7.0 qui intègre la fonction de reverse proxy. Cette version n’est pas dans portage donc j’ai mis à jour  l’ebuild de la version 1.6 pour installer proprement cette version de dev..&lt;/p&gt;
&lt;p&gt;Cet ebuild est à placer dans un overlay. &lt;a href=&#34;https://www.lamy.im/mod_security-sur-gentoo/&#34;&gt;La création d’un overlay est expliquée dans un précédent billet&lt;/a&gt;.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>sys-libs/ss (is blocking sys-libs/e2fsprogs-libs-1.41.2)</title>
      <link>https://www.lamy.im/posts/sys-libsss-is-blocking-sys-libse2fsprogs-libs-1412/</link>
      <pubDate>Wed, 29 Oct 2008 01:06:51 +0000</pubDate>
      
      <guid>https://www.lamy.im/posts/sys-libsss-is-blocking-sys-libse2fsprogs-libs-1412/</guid>
      <description>Enfer et damnation !
Calculating world dependencies... done! [ebuild U ] sys-fs/e2fsprogs-1.41.2 [1.40.9] USE=&amp;#34;nls (-static%)&amp;#34; 4,263 kB [ebuild N ] sys-libs/e2fsprogs-libs-1.41.2 USE=&amp;#34;nls&amp;#34; 479 kB [blocks B ] sys-libs/ss (is blocking sys-libs/e2fsprogs-libs-1.41.2) [blocks B ] &amp;lt;sys-fs/e2fsprogs-1.41 (is blocking sys-libs/e2fsprogs-libs-1.41.2) [blocks B ] sys-libs/com_err (is blocking sys-libs/e2fsprogs-libs-1.41.2) [blocks B ] sys-libs/e2fsprogs-libs (is blocking sys-libs/ss-1.40.9, sys-libs/com_err-1.40.9) Portage a décidé de me faire mon vilain! Mieux vaut ne pas unmerger à la sauvage ces libs vitales pour le systeme.</description>
      <content>&lt;p&gt;Enfer et damnation !&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Calculating world dependencies... done!
[ebuild     U ] sys-fs/e2fsprogs-1.41.2 [1.40.9] USE=&amp;#34;nls (-static%)&amp;#34; 4,263 kB
[ebuild  N    ] sys-libs/e2fsprogs-libs-1.41.2  USE=&amp;#34;nls&amp;#34; 479 kB
[blocks B     ] sys-libs/ss (is blocking sys-libs/e2fsprogs-libs-1.41.2)
[blocks B     ] &amp;lt;sys-fs/e2fsprogs-1.41 (is blocking sys-libs/e2fsprogs-libs-1.41.2)
[blocks B     ] sys-libs/com_err (is blocking sys-libs/e2fsprogs-libs-1.41.2)
[blocks B     ] sys-libs/e2fsprogs-libs (is blocking sys-libs/ss-1.40.9, sys-libs/com_err-1.40.9)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Portage a décidé de me faire mon vilain!
Mieux vaut ne pas unmerger à la sauvage ces libs vitales pour le systeme.&lt;/p&gt;
&lt;p&gt;Dès lors, deux solutions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;contournement brutal voire commentaire 7 sur le &lt;a href=&#34;http://bugs.gentoo.org/show_bug.cgi?id=234907#c7&#34;&gt;bug ouvert chez gentoo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;attendre que la version 2.1.5 passe en stable dans le portage tree&lt;/li&gt;
&lt;/ul&gt;
</content>
    </item>
    
    <item>
      <title>Distcc sur gentoo</title>
      <link>https://www.lamy.im/posts/distcc-sur-gentoo/</link>
      <pubDate>Sat, 18 Oct 2008 02:22:35 +0000</pubDate>
      
      <guid>https://www.lamy.im/posts/distcc-sur-gentoo/</guid>
      <description>Introduction Distcc est très pratique voire indispensable sur des systèmes comme Gentoo où le temps passer à compiler peut être important. Distcc permet de faire de la compilation distribuée, c’est a dire que nous allons répartir les taches de compilations sur plusieurs machines afin d&amp;rsquo;en partager la peine 🙂
Prérequis Pour que Distcc fonctionne bien nous aurons besoin des memes versions de GCC partout.
Distcc est capable de faire de la crosscompilation mais on ne traitera pas ça ici.</description>
      <content>&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Distcc est très pratique voire indispensable sur des systèmes comme Gentoo où le temps passer à compiler peut être important. Distcc permet de faire de la compilation distribuée, c’est a dire que nous allons répartir les taches de compilations sur plusieurs machines afin d&amp;rsquo;en partager la peine 🙂&lt;/p&gt;
&lt;h2 id=&#34;prérequis&#34;&gt;Prérequis&lt;/h2&gt;
&lt;p&gt;Pour que Distcc fonctionne bien nous aurons besoin des memes versions de GCC partout.&lt;br&gt;
Distcc est capable de faire de la crosscompilation mais on ne traitera pas ça ici. Je suis sur x86 uniquement.&lt;/p&gt;
&lt;h2 id=&#34;installation-et-configuration&#34;&gt;Installation et configuration&lt;/h2&gt;
&lt;p&gt;Pour le monitoring on utilisera le USE &lt;em&gt;gtk&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;emerge -av distcc&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Si les machines utilisant distcc sont 10.0.0.1 et 10.0.0.2 La configuration suivante s’applique sur la machine 10.0.0.1 dans /etc/distcc/hosts&lt;/p&gt;
&lt;p&gt;&lt;code&gt;10.0.0.2 localhost&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;On fera l’inverse sur l’autre machine&lt;/p&gt;
&lt;p&gt;Dans le make.conf il faut dire à portage d’utiliser distcc:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;DISTCC_HOSTS=&amp;#34;10.0.0.2 localhost&amp;#34;
# on indique d&amp;#39;utiliser distcc, ici nous utilisons deja ccache donc on le met avant, c&amp;#39;est important
FEATURES=&amp;#34;ccache distcc&amp;#34;`

Ne pas oublier de mettre à jour le l’option -j pour GCC sur le paramètre MAKEOPTS.

On lance le service maintenant et pour les prochains boot.

`/etc/init.d/distcc start &amp;amp;&amp;amp; rc-update add distcc default`

Voila c’est fini o/  
Pour avoir un gain de temps vraiment réel il faut aussi utiliser ccache.
&lt;/code&gt;&lt;/pre&gt;</content>
    </item>
    
    <item>
      <title>syslog-ng, gentoo hardened et cron :)</title>
      <link>https://www.lamy.im/posts/syslog-ng-gentoo-hardened-et-cron/</link>
      <pubDate>Mon, 06 Oct 2008 21:51:13 +0000</pubDate>
      
      <guid>https://www.lamy.im/posts/syslog-ng-gentoo-hardened-et-cron/</guid>
      <description>Je me suis retrouvé sur Gentoo hardened avec quelque chose d’un peu gênant… les logs de vixie-cron dans le /var/log/message, le /var/log/debug et le /var/log/cron.log. Sympa, mais un poil redondant. Cela ne concerne que Gentoo hardened qui dispose d’un fichier de conf spécifique pour syslog-ng.
Pour que cron logue seulement dans son ficher, il suffit d’exclure les logs cron des fichiers debug et message:
filter f_messages { level(info..warn) and not facility(auth, authpriv, mail, news, cron); }; destination messages { file(« /var/log/messages »); }; log { source(src); filter(f\_messages); destination(messages); }; Même punition pour le fichier de debug and voila.</description>
      <content>&lt;p&gt;Je me suis retrouvé sur Gentoo hardened avec quelque chose d’un peu gênant… les logs de vixie-cron dans le /var/log/message, le /var/log/debug et le /var/log/cron.log. Sympa, mais un poil redondant. Cela ne concerne que Gentoo hardened qui dispose d’un fichier de conf spécifique pour syslog-ng.&lt;/p&gt;
&lt;p&gt;Pour que cron logue seulement dans son ficher, il suffit d’exclure les logs cron des fichiers debug et message:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;filter f_messages { level(info..warn)
and not facility(auth, authpriv, mail, news, cron); };
destination messages { file(« /var/log/messages »); };
log { source(src); filter(f\_messages); destination(messages); };
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Même punition pour le fichier de debug and voila.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>XFS mon amour :)</title>
      <link>https://www.lamy.im/posts/xfs-mon-amour/</link>
      <pubDate>Fri, 12 Sep 2008 09:05:37 +0000</pubDate>
      
      <guid>https://www.lamy.im/posts/xfs-mon-amour/</guid>
      <description>Ci dessous, un bloc note sur l’utilisation de XFS.
Vérification du Filesystem Pour verifier la consistence du Systeme de fichier, on utilise conjointement deux programmes xfs_check et xfs_repair.
xfs_check /dev/device xfs_repair -n /dev/device xfs_repair -n fait un test un peu plus complet que xfs_check
Réparation du Filesystem Pour réparer des inconsitences du FS on pourra utiliser xfs_repair et ceci toujours sur un device démonté 🙂
xfs_repair /dev/device
Fragmentation Au bout de quelques années d’utilisation il se peut qu’un système de fichiers se fragmente un peu, surtout si la partition est presque pleine et qu’il y a des mouvements de fichiers réguliers.</description>
      <content>&lt;p&gt;Ci dessous, un bloc note sur l’utilisation de XFS.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Vérification du Filesystem&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pour verifier la consistence du Systeme de fichier, on utilise conjointement deux programmes &lt;em&gt;xfs_check&lt;/em&gt; et &lt;em&gt;xfs_repair&lt;/em&gt;.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;xfs_check /dev/device
xfs_repair -n /dev/device
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;em&gt;xfs_repair -n&lt;/em&gt; fait un test un peu plus complet que &lt;em&gt;xfs_check&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Réparation du Filesystem&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pour réparer des inconsitences du FS on pourra utiliser &lt;em&gt;xfs_repair&lt;/em&gt; et ceci toujours sur un device démonté 🙂&lt;br&gt;
&lt;code&gt;xfs_repair /dev/device&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fragmentation&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Au bout de quelques années d’utilisation il se peut qu’un système de fichiers se fragmente un peu, surtout si la partition est presque pleine et qu’il y a des mouvements de fichiers réguliers.&lt;/p&gt;
&lt;p&gt;XFS intègre des outils pour défragmenter ses partitions à chaud.&lt;br&gt;
Cet outil magique se trouve dans le package &lt;em&gt;xfsdump&lt;/em&gt; dans lequel on trouvera aussi les outils de backup et restore.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;emerge -av xfsdump&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Nous allons ensuite verifier le taux de fractionnement de notre partition.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;xfs_db -r /dev/hda1
xfs_db&amp;gt; frag
actual 452654, ideal 450929, fragmentation factor 0.38%
xfs_db&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Visiblement L’utilisation de Gentoo en ~x86 sur mon portable pendant plusieurs années n’a pas fait suffisament souffir XFS 🙂&lt;/p&gt;
&lt;p&gt;Dans le cas ou nous aurions besoin de défragmenter on pourra utiliser la commande suivante:&lt;br&gt;
&lt;code&gt;xfs_fsr -v /dev/hda1&lt;/code&gt;&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Packaging Gentoo</title>
      <link>https://www.lamy.im/posts/packaging-gentoo/</link>
      <pubDate>Sat, 30 Aug 2008 00:46:36 +0000</pubDate>
      
      <guid>https://www.lamy.im/posts/packaging-gentoo/</guid>
      <description>Packaging Gentoo Portage et le système d’ebuild de Gentoo sont des outils très puissants et flexibles, mais un peu obscur à utiliser au départ pour qui veut faire son package. Voyons comment s’y prendre.
Première étape, il faut définir un overlay si ce n’est déjà fait. Pour rappel, l’overlay consiste en un dossier parallèle au dossier /usr/portage qui constitue en fait une extension de la base de données des paquets. Il est alors possible de rajouter ses propres paquets dans cet overlay, pour notamment y mettre des ebuilds de version de test ou tout simplement de logiciel non encore présent dans Portage.</description>
      <content>&lt;h1 id=&#34;packaging-gentoo&#34;&gt;Packaging Gentoo&lt;/h1&gt;
&lt;p&gt;Portage et le système d’ebuild de Gentoo sont des outils très puissants et flexibles, mais un peu obscur à utiliser au départ pour qui veut faire son package. Voyons comment s’y prendre.&lt;br&gt;
Première étape, il faut définir un overlay si ce n’est déjà fait. Pour rappel, l’overlay consiste en un dossier parallèle au dossier /usr/portage qui constitue en fait une extension de la base de données des paquets. Il est alors possible de rajouter ses propres paquets dans cet overlay, pour notamment y mettre des ebuilds de version de test ou tout simplement de logiciel non encore présent dans Portage.&lt;/p&gt;
&lt;h2 id=&#34;création-de-loverlay&#34;&gt;Création de l’overlay&lt;/h2&gt;
&lt;p&gt;Rien de plus simple :&lt;/p&gt;
&lt;p&gt;On créé un répertoire pour stocker l’overlay.&lt;br&gt;
&lt;code&gt;mkdir /usr/local/portage&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Ensuite il suffit d’éditer le fichier /etc/make.conf et d’y ajouter cette ligne.&lt;br&gt;
&lt;code&gt;PORTDIR_OVERLAY=&amp;quot;/usr/local/portage&amp;quot;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Voila, l’overlay est défini.&lt;/p&gt;
&lt;h2 id=&#34;création-dun-ebuild&#34;&gt;Création d’un ebuild&lt;/h2&gt;
&lt;p&gt;Avant toute chose, il faut savoir que votre ebuild doit avoir un nom précis, et être dans un dossier précis (on rapelle que l’overlay doit avoir la même structure que Portage).&lt;br&gt;
Votre ebuild doit donc être dans un de ces dossiers (que vous créerez dans le dossier de l’overlay pour l’occasion si ce n’est déjà fait) :&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;app-accessibility  
app-admin  
app-antivirus  
app-arch  
app-backup  
app-benchmarks  
app-cdr  
app-crypt  
app-dicts  
app-doc  
app-editors  
app-emacs  
app-emulation  
app-forensics  
app-i18n  
app-laptop  
app-misc  
app-mobilephone  
app-office  
app-pda  
app-portage  
app-shells  
app-text  
app-vim  
app-xemacs  
dev-ada  
dev-cpp  
dev-db  
dev-dotnet  
dev-embedded  
dev-games  
dev-haskell  
dev-java  
dev-lang  
dev-libs  
dev-lisp  
dev-ml  
dev-perl  
dev-php  
dev-php4  
dev-php5  
dev-python  
dev-ruby  
dev-scheme  
dev-tcltk  
dev-tex  
dev-tinyos  
dev-util  
games-action  
games-arcade  
games-board  
games-emulation  
games-engines  
games-fps  
games-kids  
games-misc  
games-mud  
games-puzzle  
games-roguelike  
games-rpg  
games-server  
games-simulation  
games-sports  
games-strategy  
games-util  
gnome-base  
gnome-extra  
gnustep-apps  
gnustep-base  
gnustep-libs  
kde-base  
kde-misc  
mail-client  
mail-filter  
mail-mta  
media-fonts  
media-gfx  
media-libs  
media-plugins  
media-radio  
media-sound  
media-tv  
media-video  
net-analyzer  
net-dialup  
net-dns  
net-firewall  
net-fs  
net-ftp  
net-im  
net-irc  
net-libs  
net-mail  
net-misc  
net-nds  
net-news  
net-nntp  
net-p2p  
net-print  
net-proxy  
net-wireless  
net-www  
net-zope  
perl-core  
rox-base  
rox-extra  
sci-astronomy  
sci-biology  
sci-calculators  
sci-chemistry  
sci-electronics  
sci-geosciences  
sci-libs  
sci-mathematics  
sci-misc  
sci-visualization  
sys-apps  
sys-auth  
sys-block  
sys-boot  
sys-cluster  
sys-devel  
sys-fs  
sys-kernel  
sys-libs  
sys-power  
sys-process  
www-apache  
www-apps  
www-client  
www-misc  
www-servers  
x11-apps  
x11-base  
x11-drivers  
x11-libs  
x11-misc  
x11-plugins  
x11-proto  
x11-terms  
x11-themes  
x11-wm  
xfce-base  
xfce-extra
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;L’ebuild basique : il télécharge, décompresse, configure, compile et installe une archive de source.&lt;br&gt;
L’ebuild est nommé de la manière suivante : nom_du_soft-version.ebuild et est stocké dans &lt;em&gt;/usr/local/portage/dossier-correspondant-au-type-de-l’application&lt;/em&gt; (voir juste au dessus)/nom_du_soft/&lt;/p&gt;
&lt;p&gt;N’oubliez pas de créer aussi le répertoire &lt;em&gt;/usr/local/portage/app-portage/clean-distfiles/files&lt;/em&gt; qui sert à stocker tous les digest&lt;/p&gt;
&lt;p&gt;Décortiquons l’ebuild d’aMule 2.1.0 par exemple. Il s’appelle logiquement amule-2.1.0-r1.ebuild.&lt;br&gt;
L’entête standard&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/net-p2p/amule/amule-2.1.0-r1.ebuild,v 1.1 2006/01/13 11:18:44 mkay Exp $
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;L’ebuild va utiliser des fonctions des ces classes&lt;br&gt;
&lt;code&gt;inherit eutils flag-o-matic wxwidgets&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Définition de quelques variables par praticité. Emerge définit un certains nombre de variables lui même, comme par exemple ${PV} qui donne directement la version du paquets selon le nom de l’ebuild. Pratique pour mettre à jour un paquet juste en renommant l’ebuild.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;MY_P=${P/m/M}
S=${WORKDIR}/${MY_P}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Le description du paquet.&lt;br&gt;
&lt;code&gt;DESCRIPTION=&amp;quot;aMule, the all-platform eMule p2p client&amp;quot;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;La homepage du paquet.&lt;br&gt;
&lt;code&gt;HOMEPAGE=&amp;quot;http://www.amule.org/&amp;quot;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;L’url de téléchargement. On remarque l’utilisation de variable, ce qui rend l’ebuild plus « dynamique ».&lt;br&gt;
&lt;code&gt;SRC_URI=&amp;quot;mirror://sourceforge/${PN}/${MY_P}.tar.bz2&amp;quot;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;La licence du soft.&lt;br&gt;
&lt;code&gt;LICENSE=&amp;quot;GPL-2&amp;quot;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Le slot d’installation. Cela permet d’installer parallèlement plusieurs versions du même paquets (surtout utiliser pour certaines librairies, ou pour les kernel).&lt;br&gt;
&lt;code&gt;SLOT=&amp;quot;0&amp;quot;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Les keywords du paquets.&lt;br&gt;
&lt;code&gt;KEYWORDS=&amp;quot;~alpha ~amd64 ~ppc ~ppc64 ~sparc ~x86&amp;quot;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Définit les flags USE auquels l’ebuild peut réagir.&lt;br&gt;
&lt;code&gt;IUSE=&amp;quot;amuled debug gtk nls remote stats unicode&amp;quot;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Définition des dépendances du paquets.&lt;/p&gt;
&lt;p&gt;aMule dépend donc de wxGTK, de zlib et ce, inconditionnellement. Par contre, il dépend de gd si le flag USE « stats » est utilisé. De même pour libpng avec le flag USE « remote ». Pour finir, aMule ne peut pas être installé en même temps que xmule (provoquera une erreur « ebuild blocked by another ».&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;DEPEND=&amp;#34;&amp;gt;=x11-libs/wxGTK-2.6.0
&amp;gt;=sys-libs/zlib-1.2.1
stats? ( &amp;gt;=media-libs/gd-2.0.26 )
remote? ( &amp;gt;=media-libs/libpng-1.2.0 )
!net-p2p/xmule&amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;L’étape de configuration. Elle est utilisée pour vérifier que les paramètres ne comporte pas d’erreur. La fonction « use » est utilisé pour savoir un flag USE est défini ou non.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;pkg_setup() {
		export WX_GTK_VER=&amp;#34;2.6&amp;#34;

		if ! use gtk &amp;amp;&amp;amp; ! use remote &amp;amp;&amp;amp; ! use amuled; then
				eerror &amp;#34;&amp;#34;
				eerror &amp;#34;You have to specify at least one of gtk, remote or amuled&amp;#34;
				eerror &amp;#34;USE flag to build amule.&amp;#34;
				eerror &amp;#34;&amp;#34;
				die &amp;#34;Invalid USE flag set&amp;#34;
		fi

		if use unicode &amp;amp;&amp;amp; use gtk; then
				einfo &amp;#34;wxGTK with gtk2 and unicode support will be used&amp;#34;
				need-wxwidgets unicode
		elif use gtk; then
				einfo &amp;#34;wxGTK with gtk2 support will be used&amp;#34;
				need-wxwidgets gtk2
		elif use unicode; then
				einfo &amp;#34;wxGTK with unicode and without X support will be used&amp;#34;
				need-wxwidgets base-unicode
		else
				einfo &amp;#34;wxGTK without X support will be used&amp;#34;
				need-wxwidgets base
		fi

		if use stats &amp;amp;&amp;amp; ! use gtk; then
				einfo &amp;#34;Note: You would need both the gtk and stats USE flags&amp;#34;
				einfo &amp;#34;to compile aMule Statistics GUI.&amp;#34;
				einfo &amp;#34;I will now compile console versions only.&amp;#34;
		fi

		if use stats &amp;amp;&amp;amp; ! built_with_use media-libs/gd jpeg; then
				die &amp;#34;media-libs/gd should be compiled with the jpeg use flag when you have the stats use flag set&amp;#34;
		fi
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;L’étape de configuration/compilation. De même que pour pkg_setup, on utilise la fonction « use » pour configurer dynamiquement les sources. Classiquement, on définit une variable locale (ici myconf) à laquelle on rajoute des arguments selon les flags USE utilisés. Pour configurer le paquet, on n’utilise pas directement ./configure, mais plutôt la fonction &lt;em&gt;econf&lt;/em&gt; et pour compiler non pas make mais &lt;em&gt;emake&lt;/em&gt;.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;src_compile() {
		local myconf=&amp;#34;&amp;#34;

		if use gtk ; then
				use stats &amp;amp;&amp;amp; myconf=&amp;#34;${myconf}
					--enable-wxcas
					--enable-alc&amp;#34;
				use remote &amp;amp;&amp;amp; myconf=&amp;#34;${myconf}
					--enable-amule-gui&amp;#34;
		else
				myconf=&amp;#34;
					--disable-monolithic
					--disable-amule-gui
					--disable-wxcas
					--disable-alc&amp;#34;
		fi

		econf 
				--with-wx-config=${WX_CONFIG} 
				--with-wxbase-config=${WX_CONFIG} 
				--enable-amulecmd 
				`use_enable debug` 
				`use_enable !debug optimize` 
				`use_enable amuled amule-daemon` 
				`use_enable nls` 
				`use_enable remote webserver` 
				`use_enable stats cas` 
				`use_enable stats alcc` 
				${myconf} || die

		# we filter ssp until bug #74457 is closed to build on hardened
		if has_hardened; then
				filter-flags -fstack-protector -fstack-protector-all
		fi
 		emake -j1 || die
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;L’étape d’installation des sources, utilisée notamment si des manipulations sont à faire après la compilation (ici par exemple, la création de nouveaux groupes ou d’utilisateurs).&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;src_install() {
 		make DESTDIR=${D} install || die

		if use amuled || use remote; then
			if ! id p2p &amp;gt;/dev/null; then
					enewgroup p2p
					enewuser p2p -1 -1 /home/p2p p2p
			fi
		fi

		if use amuled; then
				insinto /etc/conf.d; newins ${FILESDIR}/amuled.confd amuled
				exeinto /etc/init.d; newexe ${FILESDIR}/amuled.initd amuled
		fi

		if use remote; then
				insinto /etc/conf.d; newins ${FILESDIR}/amuleweb.confd amuleweb
				exeinto /etc/init.d; newexe ${FILESDIR}/amuleweb.initd amuleweb
		fi
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Comme on a pu le voir, certaines fonctions sont à la dispositions de l’utilisateur dans les ebuilds. Les plus courantes :&lt;/p&gt;
&lt;p&gt;– use : permet de vérifier la présence d’un flag USE.&lt;br&gt;
– einfo : affiche un message d’information.&lt;br&gt;
– eerror : affiche un message d’erreur et stoppe.&lt;br&gt;
– econf : configure les sources.&lt;br&gt;
– emake : compile les sources.&lt;/p&gt;
&lt;p&gt;Une fois l’ebuild créé, il doit être placé dans le bon répertoire. Ensuite, il faut créer le digest : &lt;em&gt;ebuild chemin_vers_l’ebuild digest&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Une fois ceci fait sans erreur, votre paquet est près à être emergé.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Plus d’infos ?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pour avoir plus d’informations sur la création d’ebuilds Gentoo, vous pouvez allez directement consulter la page de référence du &lt;a href=&#34;http://www.gentoo.org/proj/fr/devrel/handbook/handbook.xml?part=2&amp;amp;chap=1&#34; title=&#34;handbook gentoo&#34;&gt;handbook gentoo&lt;/a&gt;. Vous y retrouverez tout ce qui a été dit ici, mais aussi la liste complète des variables et des fonctions définies par emerge.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>emerge -sync, ne pas regénérer le cache</title>
      <link>https://www.lamy.im/posts/emerge-sync-ne-pas-regenerer-le-cache/</link>
      <pubDate>Sun, 24 Aug 2008 23:54:45 +0000</pubDate>
      
      <guid>https://www.lamy.im/posts/emerge-sync-ne-pas-regenerer-le-cache/</guid>
      <description>Un autre tip tiré de (bientôt) feu le wiki, merci trap :-)
On le sait, Portage est très bien mais le souci reste quand même la lenteur relative de emerge –sync. Une astuce pour gagner un peu de temps consiste à désactiver la régénération du cache à la fin du processus.
Marche à suivre:
Elle est très simple. Tout d’abord :
echo &amp;quot;portdbapi.auxdbmodule = cache.metadata_overlay.database&amp;quot; &amp;gt;&amp;gt; /etc/portage/modules
Rajouter ensuite FEATURES=&amp;quot;-metadata-transfer dans le fichier /etc/make.</description>
      <content>&lt;p&gt;Un autre tip tiré de (bientôt) feu le wiki, merci trap :-)&lt;/p&gt;
&lt;p&gt;On le sait, Portage est très bien mais le souci reste quand même la lenteur relative de &lt;em&gt;emerge –sync&lt;/em&gt;. Une astuce pour gagner un peu de temps consiste à désactiver la régénération du cache à la fin du processus.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Marche à suivre:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Elle est très simple. Tout d’abord :&lt;/p&gt;
&lt;p&gt;&lt;code&gt;echo &amp;quot;portdbapi.auxdbmodule = cache.metadata_overlay.database&amp;quot; &amp;gt;&amp;gt; /etc/portage/modules&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Rajouter ensuite &lt;code&gt;FEATURES=&amp;quot;-metadata-transfer&lt;/code&gt; dans le fichier &lt;em&gt;/etc/make.conf&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Et pour finir, on peut supprimer l’ancien cache :&lt;br&gt;
&lt;code&gt;rm -rf /var/cache/edb/dep/*&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Conclusion :&lt;/strong&gt;&lt;br&gt;
Voilà 5 minutes (voire plus) de gagnées pour la mise à jour. Alors la grande question reste pourquoi cela n’est pas le comportement par défaut de Portage ?&lt;br&gt;
Portage n’est pas encore capable de détecter si un eclass a été modifié entre temps et donc s’il faut régénerer le cache ou pas. Si vous ne faites aucune modification d’eclass (ce qui est assez probablement le cas), cette méthode ne pose aucun souci.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Nouvelles options de portage</title>
      <link>https://www.lamy.im/posts/nouvelles-options-de-portage/</link>
      <pubDate>Sun, 17 Aug 2008 00:10:05 +0000</pubDate>
      
      <guid>https://www.lamy.im/posts/nouvelles-options-de-portage/</guid>
      <description>Depuis portage-2.2_rc2, de nouvelles fonctions ont été intégrées.
–jobs JOBS
Specifies the number of packages to build simultaneously.
Also see the related –load-average option.
–keep-going
Continue as much as possible after an error. When an error
occurs, dependencies are recalculated for remaining packages
and any with unsatisfied dependencies are automatically
dropped. Also see the related –skipfirst option.
–load-average LOAD
Specifies that no new builds should be started if there are</description>
      <content>&lt;p&gt;Depuis portage-2.2_rc2, de nouvelles fonctions ont été intégrées.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;–jobs JOBS&lt;br&gt;
Specifies the number of packages to build simultaneously.&lt;br&gt;
Also see the related –load-average option.&lt;/p&gt;
&lt;p&gt;–keep-going&lt;br&gt;
Continue as much as possible after an error. When an error&lt;br&gt;
occurs, dependencies are recalculated for remaining packages&lt;br&gt;
and any with unsatisfied dependencies are automatically&lt;br&gt;
dropped. Also see the related –skipfirst option.&lt;/p&gt;
&lt;p&gt;–load-average LOAD&lt;br&gt;
Specifies that no new builds should be started if there are&lt;br&gt;
other builds running and the load average is at least LOAD (a&lt;br&gt;
floating-point number). This option is recommended for use in&lt;br&gt;
combination with –jobs in order to avoid excess load. See&lt;br&gt;
make(1) for information about analogous options that should&lt;br&gt;
be configured via MAKEOPTS in make.conf(5).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Ces options permettent de paralleliser les opérations et ainsi de tirer de parti des processeurs multi core. Les versions de portage intégrants ces fonctions ne sont disponibles qu’en ~arch pour le moment.&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>mod_security-2.5.6 sur gentoo</title>
      <link>https://www.lamy.im/posts/mod_security-256-sur-gentoo/</link>
      <pubDate>Tue, 12 Aug 2008 05:50:52 +0000</pubDate>
      
      <guid>https://www.lamy.im/posts/mod_security-256-sur-gentoo/</guid>
      <description>mod_security est un firewall applicatif sous forme de module pour apache.
Sous gentoo, portage n’intègre pas encore la version de maintenace 2.5.6 du module mais comme les ebuilds mod_security sont bien faits, on ne va pas se casser la tête pour la mise a jour.
Il faut faire un overlay si ce n’est pas déjà fait:
mkdir -p /usr/local/portage/www-apache/mod_security/files/2.1.2 echo &amp;#39;PORTDIR_OVERLAY=&amp;#34;/usr/local/portage&amp;#34;&amp;#39; &amp;gt;&amp;gt; /etc/make.conf Après on fait l’ebuild pour la version 2.</description>
      <content>&lt;p&gt;mod_security est un firewall applicatif sous forme de module pour apache.&lt;/p&gt;
&lt;p&gt;Sous gentoo, portage n’intègre pas encore la version de maintenace 2.5.6 du module mais comme les ebuilds mod_security sont bien faits, on ne va pas se casser la tête pour la mise a jour.&lt;/p&gt;
&lt;p&gt;Il faut faire un overlay si ce n’est pas déjà fait:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;mkdir -p /usr/local/portage/www-apache/mod_security/files/2.1.2
echo &amp;#39;PORTDIR_OVERLAY=&amp;#34;/usr/local/portage&amp;#34;&amp;#39; &amp;gt;&amp;gt; /etc/make.conf
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Après on fait l’ebuild pour la version 2.5.6&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;cp /usr/portage/www-apache/mod_security/mod_security-2.5.5.ebuild /usr/local/portage/www-apache/mod_security/mod_security-2.5.6.ebuild
cp /usr/portage/www-apache/mod_security/files/2.1.2/99_mod_security.conf /usr/local/portage/www-apache/mod_security/files/2.1.2/
ebuild mod_security-2.5.6.ebuild digest
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Et hop yapuka !&lt;/p&gt;
</content>
    </item>
    
    <item>
      <title>Gentoo cleaning</title>
      <link>https://www.lamy.im/posts/gentoo-cleaning/</link>
      <pubDate>Fri, 08 Aug 2008 15:39:37 +0000</pubDate>
      
      <guid>https://www.lamy.im/posts/gentoo-cleaning/</guid>
      <description>Je continue de migrer les pages du wiki. Celle la avait été pondue par Trapamoosch, merci à lui :-)
Avec le temps, il n’est pas rare de voir sa Gentoo s’encrasser : paquets inutiles, dépendances inutiles, fichier world contenant des entrées invalides… Un bon coup de ménage s’impose !
Prérequis Quelques outils sont nécessaires pour faire un bon nettoyage : gentoolkit et le script dep.
emerge -av app-portage/gentoolkit app-portage/udept
Vous devez aussi, par sécurité, faire une copie de secours de votre fichier world :</description>
      <content>&lt;p&gt;&lt;strong&gt;Je continue de migrer les pages du wiki. Celle la avait été pondue par Trapamoosch, merci à lui :-)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Avec le temps, il n’est pas rare de voir sa Gentoo s’encrasser : paquets inutiles, dépendances inutiles, fichier world contenant des entrées invalides… Un bon coup de ménage s’impose !&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Prérequis&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Quelques outils sont nécessaires pour faire un bon nettoyage : &lt;em&gt;gentoolkit&lt;/em&gt; et le script &lt;em&gt;dep&lt;/em&gt;.&lt;br&gt;
&lt;code&gt;emerge -av app-portage/gentoolkit app-portage/udept&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Vous devez aussi, par sécurité, faire une copie de secours de votre fichier world :&lt;br&gt;
&lt;code&gt;cp /var/cache/edb/world /var/cache/edb/world.bak&lt;/code&gt;&lt;br&gt;
ou (pour Portage à partir de la version 2.0.51)&lt;br&gt;
&lt;code&gt;cp /var/lib/portage/world /var/lib/portage/world.bak&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Pour gagner du temps, revoyez vos flags USE dès cette étape, cela vous évitera trop de recompilations plus tard.&lt;br&gt;
De même, désinstallez tous les softs dont vous ne voulez plus dès maintenant.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Nettoyage du fichier world&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Le fichier world (&lt;code&gt;/var/cache/edb/world&lt;/code&gt; ou &lt;code&gt;/var/lib/portage/world&lt;/code&gt; à partir de Portage 2.0.51) recense tous les paquets que l’utilisateur à volontairement installé, sans les dépendances (qui sont, elles, toujours calculées à la volée par emerge). Or, il n’est pas rare de recompiler un paquet soi-même en tapant juste &lt;em&gt;emerge le-paquet&lt;/em&gt;. Imaginez que vous compiliez un paquet A qui dépend d’un autre paquet B. La compilation de B échoue, pour une raison quelconque, vous arrangez ça et pour tester, vous lancer la commande : &lt;em&gt;emerge B&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Erreur !&lt;/strong&gt; Désormais, B ne sera plus considéré par emerge comme une dépendance mais bien comme un paquet à part entière que les scripts de nettoyage omettront alors de « nettoyer ».&lt;/p&gt;
&lt;p&gt;Dans notre cas, il aurait fallu taper &lt;code&gt;emerge --oneshot B&lt;/code&gt;, qui compile et installe le paquet mais sans l’inscrire dans le fichier world. Utlisez cette option pour toute recompilation de dépendances !&lt;/p&gt;
&lt;p&gt;Utiliser un utilitaire comme &lt;em&gt;regenworld&lt;/em&gt; (qui permet de reconstruire le fichier world s’il a été altéré ou détruit) peut aussi conduire à un fichier world contenant des redondances.&lt;/p&gt;
&lt;p&gt;La première étape du nettoyage va donc consister à nettoyer le fichiers world pour en retirer toutes les dépendances qui n’ont rien à faire là et qu’emerge peut très bien recalculer tout seul. Dans ce cas, on considèrera donc comme entrée inutile tout paquet qui a au moins une dépendance sur lui. Le script dep fait cela relativement bien : &lt;code&gt;dep -pw&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;– Utilisez toujours dep avec parcimonie, et toujours avec l’option -p (pretend)&lt;br&gt;
– dep est assez efficace, mais très lent. Soyez patients !&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;dep va alors lister tous les paquets inscrits dans votre fichier world, et vous indiquer ceux qu’il estime être redondants. Ils vous suffit ensuite de les retirer de votre fichier world, toujours en vérifiant bien que ce n’est pas un paquet que vous n’aimeriez pas voir être désinstallé sans votre avis.&lt;/p&gt;
&lt;p&gt;Exemple :&lt;/p&gt;
&lt;p&gt;Vous installez un paquet A volontairement.&lt;br&gt;
Vous installez un paquet B volontairement et qui dépend de A.&lt;br&gt;
dep va considérer A comme redondant car il y a un paquet qui le considère comme dépendance (paquet B), alors que vous l’avez réellement voulu.&lt;/p&gt;
&lt;p&gt;C’est le point faible qui fait que l’on ne peut pas laisser un nettoyeur de fichier world travailler automatiquement.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Désinstallation des paquets inutile&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Les dépendances inutiles:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Une fois le fichier world propre, il est temps de retirer toutes les dépendances inutiles. On définit une dépendance inutile comme un paquet installé non inscrit dans le fichier world et sur lequel aucun autre paquet n’a de dépendance. Pour cela, très simple et toujours avec le script dep : &lt;code&gt;dep -ps&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;dep est plus stable et surtout plus fiable que l’option –depclean d’emerge. Peut-être cela changera-t-il dans les prochaines versions de Portage.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Les slots inutiles:&lt;/strong&gt;&lt;br&gt;
Certaines librairies, comme gtk+ ou qt, utilisent le système de slot qui permet de faire cohabiter plusieurs versions en même temps. Avec le temps, certaines versions deviennent inutiles. Pour retrouver les paquets « slottés » inutiles, toujours dep : &lt;code&gt;dep -pP&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Dans les deux étapes précédentes, analysez bien la liste des paquets proposés pour la suppression afin de ne pas retirer des paquets voulus. Une fois ceci fait, désinstallez-les.&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fiabilisation du système&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Dans tous les cas, si vous désinstallez beaucoup de paquets d’un coup, il faut contrôler que vous n’avez pas cassé de dépendances : &lt;code&gt;emerge -NDua world &amp;amp;&amp;amp; revdep-rebuild -a&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Cela permettra de recompiler tous les paquets qui ont été touchés de près ou de loin par le remaniement du système. Une fois ceci fait, votre système doit être stable et sans problème.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Quelques gains de place&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Vous pouvez nettoyer votre dossier &lt;code&gt;/usr/portage/distfiles&lt;/code&gt; avec &lt;em&gt;eclean&lt;/em&gt;. Cet outil permet de retirer toutes les archives de sources qui n’ont plus d’intérêt. Il garde toutes les archives des paquets installés, pour que vous n’ayez pas à les retélécharger au cas où vous voudriez les recompiler. &lt;code&gt;eclean -d distfiles &amp;amp;&amp;amp; eclean -d packages&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Pensez que lorsque emerge désinstalle les sources d’un kernel, il ne retire pas tout. Pensez à nettoyer votre &lt;code&gt;/usr/src&lt;/code&gt; pour retirer tous les dossiers inutiles des versions de kernels que vous avez désinstallées.&lt;/p&gt;
&lt;p&gt;Vous pouvez aussi nettoyer le dossier &lt;code&gt;/lib/modules&lt;/code&gt; pour retirer tous les modules des versions de kernels que vous avez désinstallés.&lt;/p&gt;
&lt;p&gt;Il peut être utile également de vider de temps en temps les dossiers temporaires comme &lt;code&gt;/tmp&lt;/code&gt; et &lt;code&gt;/var/tmp&lt;/code&gt;.&lt;/p&gt;
</content>
    </item>
    
  </channel>
</rss>
