<?xml version="1.0"?>
<rss xmlns:php="http://php.net/xsl" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Profile.d et ses alternatives - Chicoree</title><link>http://www.chicoree.fr/w/Profile.d_et_ses_alternatives</link><atom:link href="http://www.chicoree.fr/w/Profile.d_et_ses_alternatives?action=toFeed" rel="self" type="application/rss+xml"/><description><![CDATA[
Le répertoire /etc/profile.d est un répertoire qui contient des fragments (snippets) de scripts d'initialisation. L'objectif de ce dossier est d'avoir une approche plus modulaire qu'en allant modifier directement des scripts d'initialisation monolithiques.
Mais toutes les distributions ne disposent pas de ce mécanisme. Debian, en particulier prévient dans son manifeste contre la création automatique de ce dossier – et plus généralement contre la nécessité d'utiliser des scripts d'initialisation pour les packages. Pourquoi? Parce que rien ne garantit le shell utilisé par l'utilisateur pour se connecter. Rien ne garantit même qu'il utilise un shell! La philosophie de Debian consiste donc à dire que dans ces conditions, un logiciel ne doit pas reposer sur des scripts d'initialisation pour son fonctionnement[1]. C'est d'ailleurs un des rôles des mainteneurs de s'assurer que les logiciels debianisés remplacent ce mécanisme par un quelconque autre pour s'assurer que les logiciels fonctionnent avec des valeurs par défaut satisfaisantes.
Ce point de vue se défend. En particulier pour l'éditeur d'une distribution. Par contre, du point de vue de l'administrateur, les choses peuvent parfois être un peu nuancées. En effet, en tant qu'administrateur, vous savez quels shells de connexion sont utilisés pas vos utilisateurs. Par ailleurs, vous serez sans doute aussi amené à installer des logiciels manuellement. Et, à moins de débianiser vous même ces logiciels, un jour ou l'autre vous allez vous retrouvez dans l'obligation de devoir mettre en place des scripts d'initialisation. Voici donc comment ajouter et utiliser le dossier /etc/profile.d sur les distributions qui n'en disposent pas.
]]></description><item><title>1 Créer profile.d</title><link>http://www.chicoree.fr/w/Profile.d_et_ses_alternatives#Cr.C3.A9er_profile.d</link><description><![CDATA[<p>Après cette mise au point, il est temps de rentrer dans le vif du sujet. Commençons par créer le répertoire <tt>profile.d</tt>:
</p>]]></description></item><item><title>1.1 bash.bashrc</title><link>http://www.chicoree.fr/w/Profile.d_et_ses_alternatives#bash.bashrc</link><description><![CDATA[<p>Si vous – ou vos utilisateurs – utilisez le shell Bash (ou compatible), ajoutez les lignes suivantes au script <tt>/etc/bash.bashrc</tt>:
</p>]]></description></item><item><title>1.2 csh.cshrc</title><link>http://www.chicoree.fr/w/Profile.d_et_ses_alternatives#csh.cshrc</link><description><![CDATA[<p>Si vous – ou vos utilisateurs – utilisez le C shell (<tt>csh</tt> ou <tt>tcsh</tt>), ajoutez les lignes suivantes au script <tt>/etc/csh.cshrc</tt>:
</p>]]></description></item><item><title>2 Utilisation</title><link>http://www.chicoree.fr/w/Profile.d_et_ses_alternatives#Utilisation</link><description><![CDATA[<p>Voilà, en fait tout ce que nous avons fait, c'est de nous assurer qu'à l'ouverture d'un shell, les scripts adaptés au shell en question et situés dans <tt>/etc/profile.d</tt> soient exécutés. Reste à créer ces scripts. Ici, à nouveau, il faudra en faire un par shell utilisé! Comme quoi, la philosophie de Debian "zéro script d'initialisation" se tient finalement...
</p>]]></description></item><item><title>2.1 bash</title><link>http://www.chicoree.fr/w/Profile.d_et_ses_alternatives#bash</link><description><![CDATA[<p>Créez le fichier <tt>/etc/profile.d/local-demo.<span>sh</span></tt>:
</p>]]></description></item><item><title>2.2 csh, tcsh</title><link>http://www.chicoree.fr/w/Profile.d_et_ses_alternatives#csh.2C_tcsh</link><description><![CDATA[<p>Créez le fichier <tt>/etc/profile.d/local-demo.<span>csh</span></tt>:
</p>]]></description></item><item><title>3 Les alternatives</title><link>http://www.chicoree.fr/w/Profile.d_et_ses_alternatives#Les_alternatives</link><description><![CDATA[<p>Une remarque pour terminer: tous les scripts dont nous venons de parler ne sont exécutés qu'au démarrage d'un shell interactif. Autrement dit quand un utilisateur <b>se connecte</b>. Ils ne permettent pas d'initialiser l'environnement <b>au démarrage</b> de la machine.
</p>]]></description></item><item><title>3.1 /etc/environment</title><link>http://www.chicoree.fr/w/Profile.d_et_ses_alternatives#.2Fetc.2Fenvironment</link><description><![CDATA[<p>Une remarque pour terminer: tous les scripts dont nous venons de parler ne sont exécutés qu'au démarrage d'un shell interactif. Autrement dit quand un utilisateur <b>se connecte</b>. Ils ne permettent pas d'initialiser l'environnement <b>au démarrage</b> de la machine.
</p>]]></description></item><item><title>3.2 Liens symboliques</title><link>http://www.chicoree.fr/w/Profile.d_et_ses_alternatives#Liens_symboliques</link><description><![CDATA[<p>Si tout ce que vous avez à faire est de modifier le PATH pour rendre les exécutables facilement accessibles, il est aussi possible de rajouter des liens symboliques à partir de <tt>/usr/local/bin</tt> vers les exécutables à rendre disponibles. Par exemple, en supposant que je veuille rendre accessible les exécutables de <tt>/opt/scala/bin</tt> <i>sans</i> modifier la variable d'environnement PATH, je pourrai utiliser ceci:
</p>]]></description></item><item><title>3.3 Scripts intermédiaires</title><link>http://www.chicoree.fr/w/Profile.d_et_ses_alternatives#Scripts_interm.C3.A9diaires</link><description><![CDATA[<p>Finalement, vous avez toujours la possibilité de remplacer chaque exécutable par un script qui initialise l'environnement avant de lancer le programme réel.
</p>]]></description></item><item><title>4 Références</title><link>http://www.chicoree.fr/w/Profile.d_et_ses_alternatives#R.C3.A9f.C3.A9rences</link><description/></item></channel></rss>
