Excluir coisas de $ PATH

3

Eu brinquei com meu $ PATH e agora ele não está funcionando corretamente. Então eu pensei, bem, apenas remova as últimas coisas que eu adicionei. No entanto, não consigo descobrir como . Eu adicionei coisas assim

export MAGICK_HOME="/Library/ImageMagick-6.7.5/"
export PATH="$MAGICK_HOME/bin:$PATH"
export DYLD_LIBRARY_PATH="$MAGICK_HOME/lib/"

Eu não tenho os arquivos ~ / .bash_login ou ~ / .profile ou / etc / environment. Não consigo encontrar as strings mencionadas em / etc / path ou / etc / bashrc. Eu não sei um comando exceto export, que manipula o $ PATH.

Como me livrar dessas cordas? (E, se é óbvio para você, o que eu estraguei?)

albifante
fonte
Como você os adicionou se não em ~ / .bash_login ou ~ / .profile?
Marcar Mark
Qual é o valor atual de $ PATH ( echo $PATH)?
nohillside
@Mark como disse, adicionou-os usando exportação no terminal.
albifant
@patrix echo $ PATH: /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/texbin:$HOME/ImageMagick-6.7.5/ bin: $ MAGICK_HOME / bin: $ PATH
albifant

Respostas:

5

Se você acabou de digitar as exportações para o terminal, conforme mencionado acima, as variáveis ​​no ambiente durarão apenas até você sair da sessão de terminal. Então, simplesmente digitando exit e reabrindo outro terminal, você removerá qualquer configuração que tenha aplicado com as exportações observadas em sua pergunta.

export MAGICK_HOME="/Library/ImageMagick-6.7.5/"
export PATH="$MAGICK_HOME/bin:$PATH"
export DYLD_LIBRARY_PATH="$MAGICK_HOME/lib/"

Além disso, você pode desabilitar variáveis ​​do ambiente usando o comando unset.

Por exemplo:

unset MAGICK_HOME # will remove MAGICK_HOME from the environment. 

Você pode fazer isso para os outros também, mas se você fizer isso para o PATH, você perderá seu caminho até fechar esta sessão de terminal e reabrir uma nova janela, etc.

Como experimento, tente digitar:

env | grep MAGICK_HOME

Você deve ver MAGICK_HOME = / Library / ImageMagick-6.7.5 / ecoado de volta se ainda estiver no ambiente. Se não for, então as configurações já foram perdidas por um fechamento do Windows. etc digite novamente a exportação de MAGICK_HOME e tente o comando acima novamente.

então

exit

e, finalmente, abra novamente uma nova janela de terminal e digite:

env | grep MAGICK_HOME 

Suas configurações devem ter ido para MAGICK_HOME. O mesmo vale para a modificação feita em todas as outras variáveis ​​de ambiente configuradas com o comando de exportação diretamente em uma sessão de terminal. Eles apenas retornarão a seus valores padrão se você não os tiver configurado em um arquivo de chamada de inicialização, conforme necessário para que as variáveis ​​de ambiente do shell tenham um local mais permanente em seu ambiente de shell.

MrDaniel
fonte
Apenas uma continuação. O DYLD_LIBRARY_PATHnão deve ser definido para as bibliotecas do ImageMagick de qualquer maneira. Isso pode ter atrapalhado mais coisas do que resolvido. Esse ENV deve ser anexado. Além disso, sua suposição sobre a configuração do usuário $ PATH usando o prompt, em vez de codificá-lo em um arquivo de configuração de inicialização, parece estar correta.
Ismail
Certo. Essa teria sido a resposta correta. Neste caso particular, o problema estava sentado em frente ao Mac. Eu tinha definido as variáveis ​​em /etc/launchd.conf e esqueci disso. Eu os encontrei usando "grep" MAGICK_HOME "-R." Etc. Limpando o arquivo e reinicializando, resolvi o problema para mim.
albifant
1

Para remover um elemento de caminho em um shell em execução, você pode executar o seguinte script:

x=
for p in $(echo -e ${PATH//:/\\n}); do
    if [[ $p != /PATH/TO/REMOVE ]]; then
        x=${x:+$x:}$p
    fi
done
PATH=$x

substituindo /PATH/TO/REMOVEpelo PATH que você deseja remover.

nohillside
fonte
0

Dê uma olhada em /etc/paths.d. Como o Snow Leopard é a maneira "preferida" de adicionar coisas ao seu caminho de shell, é adicionar um pequeno arquivo de texto em /etc/paths.d.

Por exemplo, eu tenho o MacGPG2 instalado e eis que:

$>ls /etc/paths.d
50-X11  MacGPG2  TeX  TeXbin  git

$>cat MacGPG2 
/usr/local/MacGPG2/bin

$>echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/git/bin:/usr/local/MacGPG2/bin:/usr/texbin:/opt/local/bin:/opt/local/sbin

Remover os arquivos de texto de /etc/paths.d parece ser a primeira porta de chamada a ser removida do $ PATH

user1256923
fonte
Obrigado, eu não sabia disso. Em /etc/paths.d são arquivos (como um novo recentemente para TeX), mas não os que eu quero remover :(
albifant