El Capitanを搭載したMacMiniでは、brewを実行できなくなりました。次のエラーが表示されます。
/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>'
/ usr/localの権限は正しいです。
変更していないconfig.rbファイルは次のようになります。
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
Brew、brew doctor、brew updateなどでも同じエラーが発生します。
何かアイデア、何が間違っているのでしょうか?
私は同じ問題を抱えていました-権限の問題のために完了できなかったbrewの更新の結果のようです。
まず、リポジトリを最新のヘッドにリセットします。
cd /usr/local/bin
git reset --hard HEAD
次に、実行できます:
brew doctor
権限の問題が見つかりました。指示に従ってそれらの権限を修正すると、最終的に実行できました:
brew update
OS Xは更新のたびに権限を台無しにします。
これを試して:
Sudo chown -R $(whoami) /usr/local/share/man/man1
そして
Sudo chown -R $(whoami) /usr/local/share/man
現在のユーザー(brew
を実行しているユーザー)が/usr/local
にアクセスする権限を持っていることを確認してください。
スクリプト/ usr/local/bin/brewをgithubで見つけた新しいバージョンに置き換えました。今、すべてが再び元気です。
最新のファイルは次の場所にあります: https://github.com/Homebrew/homebrew/blob/master/bin/brew
スクリプト/ usr/local/bin/brewをgithubで見つけた新しいバージョンに置き換えました。今、すべてが再び元気です。
最新のファイルは次の場所にあります: https://github.com/Homebrew/homebrew/blob/master/bin/brew
少し汚れていますが、自作をアンインストールして再インストールしました。警告:これにより、インストールされているすべてのパッケージがアンインストールされます。
$ 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)"