0

私はホームブリューがとても好きです。しかし、魔法の OS X パッケージ マネージャーを知るにインストールしたもので、常に問題に遭遇します。

私が得るものはこれです:

Error: The linking step did not complete successfully
The formula built, but is not symlinked into /usr/local
You can try again using `brew link [name]'

もちろんこれも失敗します。この質問どこかで尋ねられたに違いないと思いますが、見つけられませんでした。Homebrew バージョンのアプリをアンインストールしてから実行brew linkすることも失敗します (に樽がないため/usr/local/Cellar)。

これは Homebrew 自体の問題ではなく、フォーミュラ ライターの問題ですか? Homebrew を通じて提供される種類のソフトウェアの多くは、問題の一部である可能性がある単純なアンインストール プロセスを備えた種類のものでもないようです。

最初の(Homebrew前の)インストールで配置されたファイルを削除するだけで、いくつかを機能させることができました。非常に時間がかかるので、もう少し自動化されたものがあることを願っています。

4

1 に答える 1

0

(タイトルが示すように、「プリインストールされたアプリ/パッケージをHomebrewに変換する」ことは明らかにできません。それらを削除して、brewの代替品をインストールする必要があります。質問のテキストを考えると、あなたは明らかにこれをすでに知っているので、私は他の読者が混乱した場合に備えて、これを贔屓などと言っているわけではありません。)

あなたが望むことを自動的に行うものは何もありません。考えてみれば、パッケージ マネージャーを使わずに何かをインストールした場合、そのインストールの一部が記録されないため、自動的にアンインストールする方法がありません。

場合によっては、ソースに cd して「アンインストールを行う」ことができます。それ以外の場合は、brew がインストールする内容を見て、pre-brew のインストールでまったく同じファイル セットが作成されたと想定できます。(そして、スクリプトを使ってそれを自動化することもできると思います。) インストールは、少なくとも失敗した理由を教えてくれるので、どのファイルを削除する必要があるかがわかります (スクリプトを使って自動化することもできますが、正確に削除するだけの場合)。これらのファイルは、多くの構成/その他の情報を残すことがよくあります)。

しかし、醸造物と非醸造物で /usr/local を共有したい場合 (これは一般的に機能し、公式に推奨されているようです)、競合が発生したときに手動で対処する必要があります。

詳細については、FAQを参照してください(まだ参照していない場合)。

痛みを避けたい場合は、いくつかの方法があります。選択肢は次のとおりです。

  1. /usr/local 内のすべてを消去し、brew を再インストールして、必要なものをすべて再インストールします (理想的には Homebrew バージョンを使用します。存在しない場合は、通常、独自の数式を非常に簡単に作成できます)。「必要なものすべて」が不完全であることが後でわかった場合に備えて、古い /usr/local をバックアップしておくことをお勧めします。

  2. /usr/local の名前を /opt/oldusrlocal のような名前に変更し、それをパスの /usr/local の後に置き、Homebrew に /usr/local を完全に管理させます。これにより、ビルド/インストール中に絶対パスを保存するいくつかのパッケージが壊れる可能性があります。つまり、それらを再構築する必要があり (これは、brew バージョンに切り替える良い機会です)、かなりハックに思えますが、かなりうまく機能します。

  3. 上記のように /usr/local の名前を変更し、パスには入れず、必要に応じて /usr/local に手動でシンボリック リンクを作成します。

  4. /usr/local 以外の場所に brew をインストールします (それを /usr/local の前のパスに置きます)。Homebrew FAQ で説明されているように、(ほぼすべての人が /usr/local に対してテストするため) そのように正しく機能しない数式 (および egss/gems/etc 以外) がいくつかありますが、実行可能です。

于 2012-07-16T18:53:03.427 に答える