Я искал ответ на эту проблему уже несколько недель, и хотя я видел подобные проблемы, ни одна из найденных мной проблем не была похожа на ошибку, с которой я столкнулся. Я пытался удалить и переустановить Homebrew безрезультатно. Я не самый опытный пользователь в мире сценариев bash и командной строки в целом, поэтому будьте осторожны со мной.
Я использую Mac OS X 10.10.1 Yosemite.
В любом случае, когда я пытаюсь выполнить команду brew любого вида, я получаю следующую ошибку:
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
Мой скрипт usr/local/bin/brew выглядит так:
#!/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
Другое дело, что я нахожу что-то, что мне не кажется правильным (но я могу ошибаться) в папках /System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby.
Во-первых, при нажатии на ruby.framework/Versions содержимое является псевдонимом для 1.8 (это должно быть, если 2.0 установлено по умолчанию с os x 10.10? Псевдоним также говорит, что он не может найти исходный элемент), папку 2.0 и псевдоним "Текущий", который при щелчке говорит, что оригинальный элемент также не может быть найден. Внутри папки 2.0 псевдоним "Текущий" также не может найти оригинальный элемент.
Отключено ли это, и может ли это быть связано с тем, почему я получаю ошибку Homebrew? Это может быть очень просто, и мне просто нужно удалить строку из файла, или она может быть больше и включать потенциальные проблемы, которые я обнаружил выше. Любая помощь будет принята с благодарностью. У меня есть кое-что, что нужно установить на этой неделе, поэтому я стараюсь изо всех сил, чтобы понять и решить это. Я дам вам любую информацию, которая понадобится вам, чтобы помочь мне.
Спасибо пи
Изменить: 1/9/15 в 1:29 в ответ на Дэвида X-
Спасибо Дэвид, я был бы рад опубликовать результаты. Спасибо, что попробовали что-нибудь вообще. -
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
Я предполагаю, что это означает, что это вызвано Ruby.framework/Versions/Current/usr/bin/ruby. Я не знаю, можете ли вы с этим работать, или кто-то еще, но, как я уже сказал, все ценится вообще.
Я не знаю, помогает ли это, но, как я уже говорил ранее, папка /System/Library/Frameworks/Ruby.framework/Versions/ содержит только 3 элемента; псевдоним 1.8 (который утверждает, что оригинал не может быть найден), папка для 2.0 и псевдоним "Текущий" (который также говорит, что оригинал не может быть найден при попытке показать оригинал).
Еще раз спасибо.