Erro no Homebrew no OS X. Interpretador inválido: Muitos níveis de links simbólicos. Erro indefinido: 0

1

Estou procurando uma resposta para esse problema há algumas semanas e, embora tenha visto problemas semelhantes, nenhum que eu tenha encontrado foi exatamente igual ao erro que estou tendo. Eu tentei desinstalar e reinstalar o Homebrew sem sucesso. Eu não sou o usuário mais experiente no mundo do bash scripting e da linha de comando em geral, então seja gentil comigo.

Estou executando o Mac OS X 10.10.1 Yosemite.

De qualquer forma, sempre que eu tento executar um comando brew de qualquer tipo, recebo o seguinte erro -

PJs-iMac:~ peterjohnjoseph$ brew doctor
/usr/local/bin/brew: /usr/local/Library/brew.rb: /System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby: bad interpreter: Too many levels of symbolic links
/usr/local/bin/brew: line 28: /usr/local/Library/brew.rb: Undefined error: 0

Meu script usr / local / bin / brew é assim -

    #!/bin/sh

chdir () {
  cd "$@" >/dev/null
}

BREW_FILE_DIRECTORY=$(chdir "${0%/*}" && pwd -P)
export HOMEBREW_BREW_FILE="$BREW_FILE_DIRECTORY/${0##*/}"

BREW_SYMLINK=$(readlink "$0")
if [ -n "$BREW_SYMLINK" ]
then
    BREW_SYMLINK_DIRECTORY=$(dirname "$BREW_SYMLINK")
    BREW_FILE_DIRECTORY=$(chdir "$BREW_FILE_DIRECTORY" &&
                          chdir "$BREW_SYMLINK_DIRECTORY" && pwd -P)
fi

BREW_LIBRARY_DIRECTORY=$(chdir "$BREW_FILE_DIRECTORY"/../Library && pwd -P)

# Users may have these set, pointing the system Ruby
# at non-system gem paths
unset GEM_HOME
unset GEM_PATH

BREW_SYSTEM=$(uname -s | tr "[:upper:]" "[:lower:]")
if [ "$BREW_SYSTEM" = "darwin" ]
then
    exec "$BREW_LIBRARY_DIRECTORY/brew.rb" "$@"
else
    exec ruby -W0 "$BREW_LIBRARY_DIRECTORY/brew.rb" "$@"
fi

A outra coisa é encontrar algo que não parece certo para mim (mas posso estar errado) em /System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby pastas.

Primeiro, quando se clica em ruby.framework / Versions, o conteúdo é um alias para 1.8 (é suposto estar lá, se 2.0 é o padrão instalado com os x 10.10? O alias também diz que não pode encontrar o original item), uma pasta 2.0, e um alias "Current" que quando clicado diz que o item original não pode ser encontrado também. Dentro da pasta 2.0, o alias "Current" também não pode encontrar o item original.

Algum deste fora, e poderia ter alguma coisa a ver com o motivo de eu estar recebendo o erro Homebrew? Isso pode ser extremamente simples e eu só tenho que excluir uma linha de um arquivo, ou poderia ser maior e envolver os possíveis problemas que encontrei acima. Qualquer ajuda seria muito apreciada. Eu tenho algumas coisas que preciso instalar esta semana, então estou tentando de tudo para resolver e resolver isso. Eu lhe darei todas as informações necessárias para ajudá-lo a me ajudar.

Obrigado, P.J.

Edit: 09/01/15 às 1:29 em resposta a David X-

Obrigado David, eu ficaria feliz em postar os resultados. Obrigado por tentar qualquer coisa. -

PJs-iMac:~ peterjohnjoseph$ ls -l /usr/local/Library/brew.rb
-rwxr-xr-x  1 peterjohnjoseph  admin  5284 Jan  9 10:06 /usr/local/Library/brew.rb

PJs-iMac:~ peterjohnjoseph$ ls -l /System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby
ls: /System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby: Too many levels of symbolic links

PJs-iMac:~ peterjohnjoseph$ head -1 /usr/local/Library/brew.rb
#!/System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby -W0

PJs-iMac:~ peterjohnjoseph$ ls -ld /System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby
ls: /System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby: Too many levels of symbolic links

PJs-iMac:~ peterjohnjoseph$ ls -l /System/Library/Frameworks/Ruby.framework/Versions/
total 16
lrwxr-xr-x  1 root  wheel    7 Dec 30 08:44 1.8 -> Current
drwxr-xr-x  8 root  wheel  272 Dec 30 08:46 2.0
lrwxr-xr-x  1 root  wheel    3 Dec 25 01:21 Current -> 1.8

Estou assumindo que isso significa que Ruby.framework / Versions / Current / usr / bin / ruby é o que está causando isso. Eu não sei se isso é algo que você ou qualquer outra pessoa pode trabalhar, mas como eu disse, qualquer coisa é apreciada.

Eu não sei se isso ajuda, mas como eu estava dizendo anteriormente, a pasta /System/Library/Frameworks/Ruby.framework/Versions/ contém apenas 3 itens; um alias para 1,8 (que afirma que o original não pode ser encontrado), uma pasta para 2.0 e um apelido para "atual" (que também diz que o original não pode ser encontrado ao tentar mostrar original).

Obrigado novamente.

    
por Peter John Joseph 09.01.2015 / 18:19

1 resposta

0

['Oficial' resposta para resumir alguns erros de depuração nos comentários da questão]

Descobriu-se que /System/Library/Frameworks/Ruby.framework/Versions/Current , que deveria ter sido um link simbólico para a versão mais recente ( 2.0 ), era um link simbólico para 1.8 , que por algum motivo era um link simbólico para Current , causando um loop infinito tentando resolver o symlink em vez de um erro mais útil "1.8 está faltando ou quebrado".

A solução foi corrigir Current para apontar novamente para 2.0 :

$ cd /System/Library/Frameworks/Ruby.framework/Versions/
$ ln -sfT 2.0 Current
    
por 09.01.2015 / 22:20

Tags