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
zsh
com a opçãoSOURCE_TRACE
ativado:$ 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_1
A insensibilidade a maiúsculas e minúsculas é crucial, pois
zsh
usa a matriz$path
, que é convertida automaticamente na lista separada por cólon do tipo bash$PATH
e 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 $path
Isso 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/file
ou. /some file
também pode alterar o PATH - se você editar, por exemplo,
/etc/profile
no 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 ...