9

私は少し調べましたが、この問題を抱えている他の人の記録を見つけることができないようです。

私が走ろうとするときはいつでも

$ brew update

私は報われます

/usr/local/bin/brew:34: uninitialized constant MACOS (NameError)

これは私のマシンではなく、私は通常Linuxシステムで開発しているので、これはすべて私には少し奇妙です。

どんな助けでも大歓迎です!私が提供すべき追加情報があれば教えてください。繰り返しますが、私は自作やOSXに慣れていません。

JameA の要求に応じて編集

xiao:~ patrick$ brew doctor
/usr/local/bin/brew:34: uninitialized constant MACOS (NameError)
xiao:~ patrick$ brew --config
/usr/local/bin/brew:34: uninitialized constant MACOS (NameError)

...この全体が好きかどうかはわかりません「ここでは、このMacBookをプロジェクトに使用してください。うまく機能します」...

4

5 に答える 5

10

これの根本的な原因は、はるかに以前のバージョンからHomebrew0.9.5へのアップグレードの試みが失敗したことであると確信しています。brew update基本的に、実行する場合sudo brew update、ファイルの一部は更新されますが、他のファイルは更新されません。これが私のために働いたものです:

  1. 編集/usr/local/bin/brewします(これは単なるRubyファイルであり、コンパイルされたバイナリではないため、どのテキストエディタでもかまいません)。次のようなブロックがあります。

    if MACOS and MACOS_VERSION < 10.5
      abort <<-EOABORT.undent
        Homebrew requires Leopard or higher. For Tiger support, see:
        https://github.com/mistydemeo/tigerbrew
      EOABORT
    end
    

    これをコメントアウトします。Rubyを知らなくても、おそらくこれが何をしているのかを直感的に理解できます。現在のバージョンのOSXがあるかどうかを確認しています。実際にこのバージョンを使用していると仮定すると、この健全性チェックは必要ありませ。ブリューはまだ壊れていますが、少なくとも今はエラーメッセージを表示するのに十分な距離までロードされます。

  2. 実行sudo brew updateスポイラーアラート:失敗しますが、今回は意味のあるエラーメッセージが表示されます:

     $ brew update
     error: Your local changes to the following files would be overwritten by merge:
     [giant list of files here]
    

    さて、今日、私はそれbrew updateが単なるラッパーであることを学びましgit pullた。なぜなら、gitを使ったことのある人なら誰でもそのエラーメッセージを知っているからです。これも修正できます。

  3. を使用して自作のgitリポジトリに切り替えcd /usr/local、コマンドを実行しgit reset --hard FETCH_HEADます。 この作品はここにあります

  4. コマンドを与えsudo brew updateます。Homebrewは正常に更新され、正しく動作するはずです。

システムが再び機能するようになると、このようなエラーが発生した理由を実際に確認できます。1つusr/local/bin/brewは、完全に書き直され、Rubyでさえなくなり、その構成のほとんどは/usr/local/Library/brew.rb、定数MACOSまたは定数を使用しないように移動されました。これらは、よりオブジェクト指向のおよびMACOS_VERSIONに置き換えられたためです。OS.macMacOS.version

于 2014-01-27T17:02:16.853 に答える
3

MACOS定数はで設定されますglobals.rb。Homebrewのインストールが中断されているようです。

の出力でbrew doctor提案を確認してください。

それでも問題が解決しない場合は、の結果で更新してくださいbrew --config

他のすべてが失敗した場合は、Homebrewを再インストールしてみてください。


アップデート:

これは前のユーザーのマシンだったので、ユーザーが/ usr/localとその中のすべての所有者であることを確認してください。で修正してsudo chown -R $USER /usr/localください。

于 2012-06-23T23:46:19.197 に答える
2

Ctrl-Dを使用してインストールを途中で強制終了したときに、同様の問題が発生しました。何かをインストールしようとすると、次のエラーが発生したことを投稿してください

uninitialized constant Homebrew::CLI::Parser::ARGV_WITHOUT_MONKEY_PATCHING

修正として、homebrewがインストールされているディレクトリに移動し、HEADをリセットしました。

cd /usr/local/Homebrew
git status 
git checkout .

そしてそれは魔法のように働き始めました。 自作をマスターにリセット

于 2020-04-25T17:55:46.070 に答える
1

brewの「中断された」インストールでも同様のエラーが発生しました。/ usr / local / bin/brewスクリプトのMACOS行から始まる5行の小さなコードブロックを削除しました。それは私がそれをアンインストールして最終的に再インストールすることを可能にするトリックをしました。

于 2013-11-23T01:34:17.197 に答える
0

MattKorostoffの答えに加えて。ポイント3(リポジトリのリセット)では、Homebrewの最近のバージョンでは、リポジトリはなくなりました。代わり/usr/localに実行してくださいcd "$(brew --repo)"

于 2018-09-25T04:42:45.653 に答える