Eu tentaria essa abordagem para rastrear a origem de /opt/texbin em sua variável PATH:
-
Para obter uma lista de arquivos, que são realmente lidos (por exemplo, um arquivo não padrão pode ser originado por outro arquivo!), você pode invocar
zshcom a opçãoSOURCE_TRACEativado:$ zsh -o sourcetrace +/etc/zshenv:1> <sourcetrace> +/home/user/.zshrc:1> <sourcetrace> +/home/user/.zcompdump:1> <sourcetrace> +/home/user/.zshrc-last:1> <sourcetrace> -
Verifique estes arquivos, onde a variável PATH entra em ação:
$ grep -ie "path.*=" files_from_step_1A insensibilidade a maiúsculas e minúsculas é crucial, pois
zshusa a matriz$path, que é convertida automaticamente na lista separada por cólon do tipo bash$PATHe vice-versa. -
Se ainda não tiver sorte, tente incluir uma mensagem de depuração em
/etc/zshenv, em que os comandos são lidos pela primeira vez em:print -l $pathIsso lhe dará uma boa lista da variável PATH, que o zsh herda de seu processo pai (gerenciador de exibição, processo init, etc.). *
-
Se o caminho for realmente herdado do processo inicial, é crucial saber quais processos são relevantes:
$ pstree -apH $$Isso produz uma árvore de processos, onde o processo do shell (pid in
$$) é destacado. Verifique também os arquivos de configuração para esses processos e tenha em mente que-
source /some/fileou. /some filetambém pode alterar o PATH - se você editar, por exemplo,
/etc/profileno seu console atual, efetue logoff e efetue login novamente, o processo pai (gerenciador de logon X) ainda pode ter o ambiente antigo. +
-
* Como você escreveu, o PATH já contém /opt/texbin antes de /etc/zshenv ser lido, verificado por set -x em /etc/zshenv . Eu não recebo saída com essa técnica, mas com a minha etapa 3, incluí os outros passos na minha resposta também.
+ Sofri muito mal devido a esse comportamento há algum tempo ...