2016-01-20 8 views
30

Na moim MacMini z El Capitanem nie mogę już napić. Pojawia się następujący błąd:Homebrew już nie będzie warzyć więcej

/usr/local/Library/Homebrew/config.rb:34:in `initialize': no implicit conversion of nil into String (TypeError) 
    from /usr/local/Library/Homebrew/config.rb:34:in `new' 
    from /usr/local/Library/Homebrew/config.rb:34:in `<top (required)>' 
    from /Library/Ruby/Site/2.0.0/rubygems/core_ext/kernel_require.rb:54:in `require' 
    from /Library/Ruby/Site/2.0.0/rubygems/core_ext/kernel_require.rb:54:in `require' 
    from /usr/local/Library/Homebrew/global.rb:18:in `<top (required)>' 
    from /Library/Ruby/Site/2.0.0/rubygems/core_ext/kernel_require.rb:54:in `require' 
    from /Library/Ruby/Site/2.0.0/rubygems/core_ext/kernel_require.rb:54:in `require' 
    from /usr/local/Library/brew.rb:10:in `<main>' 

Uprawnienia/usr/local są poprawne.

Plik config.rb, które nie uległy zmianie wygląda następująco:

def cache 
    if ENV["HOMEBREW_CACHE"] 
    Pathname.new(ENV["HOMEBREW_CACHE"]).expand_path 
    else 
    # we do this for historic reasons, however the cache *should* be the same 
    # directory whichever user is used and whatever instance of brew is executed 
    home_cache = Pathname.new("~/Library/Caches/Homebrew").expand_path 
    if home_cache.directory? && home_cache.writable_real? 
     home_cache 
    else 
     Pathname.new("/Library/Caches/Homebrew").extend Module.new { 
     def mkpath 
      unless exist? 
      super 
      chmod 0775 
      end 
     end 
     } 
    end 
    end 
end 

HOMEBREW_CACHE = cache 
undef cache 

# Where brews installed via URL are cached 
HOMEBREW_CACHE_FORMULA = HOMEBREW_CACHE+"Formula" 

unless defined? HOMEBREW_BREW_FILE 
    HOMEBREW_BREW_FILE = ENV["HOMEBREW_BREW_FILE"] || which("brew").to_s 
end 

# Where we link under 
HOMEBREW_PREFIX = Pathname.new(ENV["HOMEBREW_PREFIX"]) 

# Where .git is found 
HOMEBREW_REPOSITORY = Pathname.new(ENV["HOMEBREW_REPOSITORY"]) 

HOMEBREW_LIBRARY = Pathname.new(ENV["HOMEBREW_LIBRARY"]) 
HOMEBREW_CONTRIB = HOMEBREW_REPOSITORY/"Library/Contributions" 

# Where we store built products 
HOMEBREW_CELLAR = Pathname.new(ENV["HOMEBREW_CELLAR"]) 

HOMEBREW_LOGS = Pathname.new(ENV["HOMEBREW_LOGS"] || "~/Library/Logs/Homebrew/").expand_path 

HOMEBREW_TEMP = Pathname.new(ENV.fetch("HOMEBREW_TEMP", "/tmp")) 

unless defined? HOMEBREW_LIBRARY_PATH 
    HOMEBREW_LIBRARY_PATH = Pathname.new(__FILE__).realpath.parent.join("Homebrew") 
end 

HOMEBREW_LOAD_PATH = HOMEBREW_LIBRARY_PATH 

Ten sam błąd występuje z wywaru, parzenie lekarza, aktualizacji zaparzania itp

Wszelkie pomysły, co może mylić się?

+0

Możesz edytować swoje pytanie bardziej z '/ usr/local/Library/Homebrew/config.rb'? –

Odpowiedz

54

miałem ten sam problem - zdawała się być wynikiem aktualizacji zaparzania że nie można ukończyć z powodu problemów z uprawnieniami.

Najpierw zresetować repo do najnowszej głowy:

cd /usr/local/bin 
git reset --hard HEAD 

Wtedy mógłbym uruchomić:

brew doctor 

który znalazł kwestie uprawnień. Naprawienie tych uprawnień zgodnie z instrukcjami ostatecznie pozwoliło mi uruchomić:

brew update 
+2

To był prawdopodobnie powód mojego problemu. Poprzednia wersja Sophos zawiodła z uprawnieniami w/usr/local/bin i/usr/local/share. Po prostu zaktualizowanie uprawnień za pomocą sudo chown -R $ (whoami)/usr/local/bin i .../share nie pomogło mi. – Arwed

+0

Tak, mój problem zaczyna się od Sophosa. I ciągle to robi: | – gollyg

+1

Potrzebujesz Sophos 9.4, który wciąż jest w trybie podglądu. – Arwed

0

trochę brudny ale po prostu odinstalować i ponownie zainstalować homebrew. OSTRZEŻENIE: Spowoduje to odinstalowanie wszystkich zainstalowanych pakietów parzenia.

$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)" 
$ sudo chown -R $USER /usr/local/ 
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 
+1

Dokładnie tego potrzebowałem. – Arwed

5

OS X miażdży uprawnienia przy każdej aktualizacji.

Spróbuj tego:

sudo chown -R $(whoami) /usr/local/share/man/man1 

i

sudo chown -R $(whoami) /usr/local/share/man 

i upewnić się, że bieżący użytkownik (jeden działa brew) ma uprawnienia dostępu /usr/local.

+1

W moim przypadku to nie był OSX, ale Sophos, który zawiedli uprawnienia. W wersji 9.4.1 naprawili ten błąd. – Arwed

+0

To interesujące! Mam Sohpos 9.2.9 i nie powoduje problemów. Chociaż moja nie jest wersją Home. – Pouria

Powiązane problemy