Pergunta

Usei o Property List Editor incluído nas Ferramentas de desenvolvedor do Mac OS X para definir uma variável de ambiente DYLD_LIBRARY_PATH_64-bit para o valor path/to/dylib no arquivo ~/.MacOSX/environment.plist.Salvei este arquivo e efetuei logout.

Ao fazer login novamente, o console exibiu várias mensagens de “dyld:aviso, variável de ambiente desconhecida:DYLD_LIBRARY_PATH_64 bits." Removi a entrada de Environment.plist com o Property List Editor, salvei o arquivo e efetuei logout.

Efetuei login novamente e a mensagem de aviso persiste.A página do Dyld Man exibe uma lista de constantes que parecem semelhantes à minha variável ambiental rebelde, pois todas elas começam com "Dyld_". Um arquivo de origem, dyld.cpp, mostra um else depois de uma longa linha de constantes dyld, com código para imprimir a mesma mensagem de aviso.Talvez eu tenha voado muito perto do sol com a nomenclatura das variáveis ​​ambientais.Achei que estávamos livres!

Tentei update_dyld_shared_cache sem sucesso.Talvez esteja faltando algumas bandeiras importantes?

Eu adicionei "setenv DYLD_LIBRARY_PATH_64-bit path/to/dylib" ao /etc/launchd.conf em uma tentativa de adicionar uma variável ambiental (aparentemente malformada) aos meus caminhos, esperando que, se ela aparecesse, eu pudesse excluí-la - sem sucesso .

Na linha de comando, a exportação não mostra DYLD_LIBRARY_PATH_64 bits.Aqui está um exemplo de saída:

$ unset $DYLD_LIBRARY_PATH_64-bit 
-bash: unset: -b: invalid option

$ echo $DYLD_LIBRARY_PATH_64-bit
-bit

$ unset DYLD_LIBRARY_PATH_64-bit
-bash: unset: `DYLD_LIBRARY_PATH_64-bit': not a valid identifier

A moral da história é nunca usar o Property List Editor, pelo menos com caminhos de biblioteca dinâmicos.Bem, não - a moral da história é nunca usar o travessão no final dos nomes das variáveis ​​ambientais, uma vez que elas parecem bandeiras.

Dito isso, você tem alguma recomendação para se livrar dessa variável ambiental mascarada e para limpar meu console de avisos repetidos de dyld?

Obrigado!

Foi útil?

Solução

Aqui está uma maneira de resolver uma variável de ambiente invisível definida inadvertidamente pelo Editor de lista de propriedades:reformatar a máquina.Limpe.Limpe com fogo.

Uma lição preocupante para todos nós e especialmente para mim.Não use o traço em suas variáveis ​​de ambiente ao usar o Property List Editor, para não ser invadido por dyld:mensagens de aviso para todos os dias da sua máquina.Ai da placa-mãe, pois sua CPU não tem produtividade e, em vez disso, ela fica reduzida a imprimir mensagens no arquivo 2 (erro padrão).

Não, sério:O Property List Editor permitirá que você especifique variáveis ​​ambientais falsas que o Bash nunca deixaria você escapar.No sentido de “o usuário deve saber o que está fazendo”, o Mac OS X se torna semelhante ao UNIX.

Outras dicas

Na verdade, se você definir qualquer env var que comece com DYLD_ que não esteja no lista de maçãs você recebe uma mensagem irritante.

Espero que haja uma bandeira para desligar isso

O que funcionou para mim em um problema semelhante com uma variável de caminho da biblioteca DYLD que não desaparecia em um Mac:

Use o unset comando, e para garantir, depois que eu unset isso eu exported isso de novo...

ou sejaalgo como

$ unset DYLD_LIBRARY_FALLBACK_PATH    
$ export DYLD_LIBRARY_FALLBACK_PATH
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top