4 votos

tmux siempre modifica mi PATH de zsh

Me gustaría usar tmux dentro de mi iTerm2.

y tengo lo siguiente en mi archivo ~/.tmux.conf.

set-option -g default-shell /bin/zsh

set-option -g default-command "/bin/zsh -c 'which reattach-to-user-namespace >/dev/null && exec reattach-to-user-namespace /bin/zsh -l || exec /bin/zsh -l'"

En mi iTerm2, también puse /bin/zsh como mi shell por defecto. La salida de echo $PATH dentro de iTerm2 pero fuera de tmux es lo siguiente:

/Users/alex/.pyenv/plugins/pyenv-virtualenv/shims
/Users/alex/.pyenv/shims
/Users/alex/tools/gradle-2.13/bin
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin
/Users/alex/.pyenv/bin
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin

pero dentro de tmux, echo $PATH imprime lo siguiente:

/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
/opt/X11/bin
/Users/alex/.pyenv/plugins/pyenv-virtualenv/shims
/Users/alex/.pyenv/shims
/Users/alex/tools/gradle-2.13/bin
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin
/Users/alex/.pyenv/bin

Parece que tmux ha puesto el /usr/local/bin etc delante de mi configuración PATH, lo que hace que pyenv no pueda encontrar el Python correcto.

Mi ~/.zshenv es :

alias vim="nvim"
PATH="/usr/local/bin:$PATH"

export PYENV_ROOT="$HOME/.pyenv"
PATH="$PYENV_ROOT/bin:$PATH"

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home
PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export GRADLE_HOME=/Users/alex/tools/gradle-2.13
export PATH=$GRADLE_HOME/bin:$PATH

export HOMEBREW_GITHUB_API_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxx

eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

y mi ~/.zhrc es :

export ZSH=$HOME/.oh-my-zsh
ZSH_THEME="robbyrussell"
plugins=(git)

source $ZSH/oh-my-zsh.sh

export LANG=en_US.UTF-8

if [[ -n $SSH_CONNECTION ]]; then
  export EDITOR='vim'
else
  export EDITOR='nvim'
fi

¿Qué es lo que falla aquí?

¿Me he perdido algo durante el arranque de tmux?

5voto

Alex Puntos 191

Después de buscar en Google, he encontrado esto:

https://coderwall.com/p/4l16zq/pyenv-inside-tmux-with-zsh-on-a-mac http://pgib.me/blog/2013/10/11/macosx-tmux-zsh-rbenv/

Y el arreglo para mí es que (/etc/zprofile):

# system-wide environment settings for zsh(1)
if [ -x /usr/libexec/path_helper ]; then
  if [ -z "$TMUX" ]; then
    eval `/usr/libexec/path_helper -s`
  fi
fi

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X