2016-01-20 9 views
30

Auf meinem MacMini mit El Capitan kann ich nicht mehr brauen. Ich erhalte folgenden Fehler:Homebrew wird nicht mehr brauen

/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>' 

Die Berechtigungen von/usr/local sind korrekt.

Die config.rb-Datei, die ich wie folgt aussieht nicht geändert haben:

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 

Der gleiche Fehler tritt mit brauen, brauen Arzt, brauen Update usw.

Irgendwelche Ideen, was könnte falsch liegen?

+0

Könnten Sie bearbeiten Ihre Frage:

Die neueste Datei, von denen ist hier zu finden? –

Antwort

54

Ich hatte das gleiche Problem - schien das Ergebnis eines Brauupdates zu sein, das aufgrund von Berechtigungsproblemen nicht abgeschlossen werden konnte.

Zuerst setze ich den Repo auf den neuesten Kopf:

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

Dann könnte ich laufen:

brew doctor 

Welche Berechtigungen Probleme gefunden. Fixing diese Berechtigungen gemäß den Anweisungen mir endlich erlaubt zu laufen: mit jedem Update

brew update 
+2

Das war wahrscheinlich auch der Grund für mein Problem. Die vorherige Version von Sophos hat die Berechtigungen in/usr/local/bin und/usr/local/share durcheinander gebracht. Nur das Aktualisieren der Berechtigungen mit sudo chown -R $ (whoami)/usr/local/bin und .../share hat mir nicht geholfen. – Arwed

+0

Ja, mein Problem beginnt auch mit Sophos. Und macht es weiter: | – gollyg

+1

Sie benötigen Sophos 9.4, das sich noch im Preview-Status befindet. – Arwed

0

Ein wenig schmutzig, aber ich gerade deinstalliert und neu installiert Homebrew:

Die neueste Datei, davon kann hier gefunden werden. WARNUNG: Dadurch werden alle installierten Brühpaketen deinstalliert.

+1

Genau das musste ich vermeiden. – Arwed

5

OS X vermasselt Berechtigungen.

Versuchen Sie folgendes:

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

und

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

und sorgt dafür, dass der aktuelle Benutzer (der Lauf brew) Erlaubnis /usr/local zuzugreifen.

+1

In meinem Fall war es nicht OSX, aber Sophos hat die Berechtigungen durcheinander gebracht. Mit Version 9.4.1 haben sie diesen Fehler behoben. – Arwed

+0

Das ist interessant! Ich habe Sohpos 9.2.9 und es hat keine Probleme verursacht. Obwohl meins nicht die Home-Version ist. – Pouria