6 votes

Les chemins bash_profile d'OS X Mavericks ne fonctionnent pas.

Je dois créer un nouveau chemin dans OS X Mavericks.

Pour ce faire, j'ai édité .bash_profile:

export LC_ALL="en_US.UTF-8"
export PGHOST=localhost

export PATH=$PATH:/usr/local/heroku/bin
export PATH=$PATH:/Applications/Postgres93.app/Contents/MacOS/bin

Mais ça ne fonctionne pas. Quand je tape echo $PATH, le résultat est:

/usr/local/heroku/bin:/usr/local/rvm/gems/ruby-2.0.0-p0/bin:/usr/local/rvm/gems/ruby-2.0.0-p0@global/bin:/usr/local/rvm/rubies/ruby-2.0.0-p0/bin:/usr/local/rvm/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/Users/nicolas/.rvm/bin:/usr/local/rvm/bin

Voici le contenu de mon fichier .bashrc:

PATH=$PATH:$HOME/.rvm/bin # Ajouter RVM au PATH pour le scripting
PATH=$PATH:/usr/local/rvm/bin # Ajouter RVM au PATH pour le scripting

Je n'ai pas (ou ne trouve pas) de fichier .profile.

Qu'est-ce que je fais de travers?

5voto

Artem Tikhomirov Points 4501

Après avoir édité le fichier de connexion, vous devez soit exécuter la commande source sur le fichier de connexion, soit créer une nouvelle session terminal avant que les variables d'environnement mises à jour ne soient disponibles.

Par exemple :

source .bash_profile

Je préfère utiliser cette méthode d'ajout au chemin. De cette façon, si le fichier est exécuté plusieurs fois, $PATH n'ajoute pas des chemins redondants.

##
# DELUXE-HOME-BIN-INSERT
# (ne supprimez pas ce commentaire)
##
echo $PATH | grep -q -s "${HOME}/bin"
if [ $? -eq 1 ] ; then
    PATH=$PATH:/bin
    export PATH
fi

5voto

royatl Points 142

J'ai réussi à ajouter un chemin sur Mavericks en suivant les étapes suivantes :

sudo vi /etc/paths

Cela ouvre le fichier appelé paths qui contient tous les chemins locaux, etc. À la fin de ce fichier, j'ai ajouté le chemin que je voulais en utilisant l'éditeur vi comme indiqué dans la commande ci-dessus. J'ai simplement ajouté une ligne telle que /Applications/blabla/my_bin.

Il vous demandera votre mot de passe et une fois cela fait, c'est terminé. Cela a fonctionné pour moi, j'espère que cela fonctionnera aussi pour vous.

3voto

Travis Reeder Points 171

Ajoutez ceci à votre fichier .zshrc :

if [ -f ~/.bash_profile ]; then . ~/.bash_profile; fi

Cela chargera votre .bash_profile lors du chargement de zsh car il ne le charge pas par défaut.

0voto

Sheehan Alam Points 13754

À part le fait que vous pouvez simplement créer un fichier .profile, ajouter des choses au chemin, depuis Snow Leopard ou Lion (probablement SL) se fait en ajoutant des choses à paths.d.

ls /etc/path*
/etc/paths

/etc/paths.d:
40-XQuartz  MacGPG2     TeX         julia

c'est-à-dire aller à /etc/paths.d/

touch un fichier appelé whatever_program_I_want_to_add_to_the_path, puis éditez-le pour ajouter le chemin du programme :

cat /etc/paths.d/julia
/usr/local/julia
cat /etc/paths.d/TeX
/usr/texbin

Fermez le terminal et redémarrez-le.

-2voto

bronson Points 219

Si vous essayez de définir des chemins/variables/complétions/etc à l'aide de la substitution de processus sur Mavericks, comme ceci:

. <(npm completion)

Cela ne fonctionnera pas: https://lists.gnu.org/archive/html/bug-bash/2006-01/msg00018.html Bash refuse de sourcer à partir de /dev/fds.

Essentiellement, le bash de Mavericks est beaucoup trop ancien. Soit installez et configurez votre compte pour utiliser un bash plus récent, soit réécrivez votre script pour utiliser des fichiers temporaires ou des processus nommés. Voici un exemple moche d'une réécriture: commit des dotfiles

(ajouté pour les autres personnes qui arrivent sur cette page via une recherche Google)

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X