Por que o bash às vezes acha que meu $ HOME não é o diretório correto?

4

Como o título diz, parece que o bash às vezes identifica incorretamente o meu $ HOME. Isso surgiu após uma série aparentemente única de eventos que agora vou reproduzir em amplas pinceladas.

  • Execução do OS X 10.6 com conta local normal
  • O trabalho liga minha conta ao Active Directory
  • Muito tempo passa sem problemas
  • Configure o rvm para gerenciar as instalações do Ruby (isso se torna importante mais tarde)
  • Atualizado para o OS X 10.7 há alguns dias
  • Após a instalação bem-sucedida, tentou efetuar login, foi apresentada a caixa de diálogo "Deve redefinir a senha", que nunca permitiu que uma senha fosse redefinida. Simplesmente sacudiria a caixa depois que a nova senha fosse digitada.
  • Muito googling foi feito.
  • Muito mais do googling foi feito.
  • O juramento foi feito.
  • Conectado como root, criado uma nova conta, definido como administrador, excluído / Usuários / [nova conta], renomeado / Usuários / [conta antiga] para / Usuários / [nova conta]
  • Saiu da raiz, fez login na nova conta sem problemas

Depois que o OS X solicitou a senha da minha conta algumas vezes para atualizar o Keychain e outras coisas no nível do sistema, ele voltou ao normal.

Terminal aberto, cd para a pasta do projeto, tentou "servidor rails" e foi apresentado com:

/usr/local/lib/ruby/1.9.1/rubygems/dependency.rb:247:in to_specs': Could not find rails (>= 0) amongst [] (Gem::LoadError) from /usr/local/lib/ruby/1.9.1/rubygems/dependency.rb:256:into_spec' from /usr/local/lib/ruby/1.9.1/rubygems.rb:1210:in gem' from /usr/local/bin/rails:18:in'

Executei alguns exercícios, decidi rm -rf ~ / .rvm e reinstalei. A execução de um --trace no instalador do rvm mostra que ele morre nesta linha:

mkdir: /Users/[old account]: Permission denied

Deslocando de volta pelo log --trace, vejo muitas outras menções de / Users / [conta antiga]. Quando inspecionar o script de instalação, a linha ofensiva está olhando para "$ {HOME} /. Rvm" enquanto tenta executar o mkdir. Para minha confusão, também vejo menções de / Users / [new account] no log.

Eu tentei exportar uma nova HOME no meu .bash_profile sem sorte.

Alguém pode adivinhar por que / Users / [conta antiga] ainda estaria funcionando?

    
por Adam Yanalunas 19.03.2012 / 02:35

2 respostas

2

Acabei resolvendo esse problema, embora não seja a solução mais elegante.

Como o rvm não rodava em nada, um rvm implode não era uma opção. Em vez disso, corri apenas rm -rf ~/.rvm e reinstalei o rvm.

Pode não estar relacionado, mas eu também tive que baixar o osx-gcc-installer e definir export CC=/usr/bin/gcc-4.2 antes que as construções de rvm e ruby se comportem corretamente. O uso do with-gcc=clang não forneceu construções úteis.

    
por 20.03.2012 / 21:27
0

Algo está atingindo sua variável $ HOME.

Adicione isto ao seu arquivo .bashrc

 declare -x -r HOME=/correct/home/path
    
por 21.03.2012 / 01:45