自家製の樽を再リンクする簡単な方法はありますか?


61

MacBook AirをMavericksにアップグレードしました。このプロセスは、を挿入するほぼすべてのシンボリックリンクを削除homebrewしたよう/usr/local/binです。不足していることに気づいbrew unlink <keg> && brew link <keg>たら、経由で再リンクします(シンボリックリンクはなくなりましたが、homebrewまだ存在していると考えているため、unlink最初に行う必要があります)。これはやや非効率的です。

私は、内のすべてを通してだけでループ可能性/usr/local/Cellarではなく、すべての樽は自動的にリンクされていると私はそれらをリンクする必要はありません。だから、私の次の推測では、すべての一覧にあるリンク樽をして(上記を使用して)それらを再リンクします。

私がそれらを再リンクできるようにリンクされているhomebrew と考えているすべての樽を見つける魔法のコマンドはありますか?


Migration Assistantを使用して「すべて」を古いMacから新しいMacに移動し、自家製のシンボリックリンクもすべて失いました。うるさい。
Grav 14年

回答:


39

/usr/local/Library/LinkedKegs リンクされた樽のリストが含まれているようですので、これでうまくいくはずです:

ls -1 /usr/local/Library/LinkedKegs | while read line; do
    echo $line
    brew unlink $line
    brew link --force $line
done

/usr/local/libこれを試す前に、再度書き込み権限があることを確認することをお勧めします。


これで自作が正常に機能するようになったことを確認してください。ありがとう!
ロバートマサイオリ14

すばらしい、ありがとう:)気にしないなら、それから要点を作りました、この問題に直面したのは私たちだけではないことを確信しています.. goo.gl/YTPMjh
Stone Alessandro

1
いいえ、しないでください--forcebrew link十分である必要があり、一部の樽は(システムライブラリと競合する可能性があるため)実際にはリンクしないでください--force
クリスジェファーソン

ほら 私も削除したよう/usr/local/Libraryです。
カイルストランド

59

このbashコマンド(そこから取得)は、インストールされているすべての数式のリンクを解除し、それらを再度リンクします。

brew list -1 | while read line; do brew unlink $line; brew link $line; done

すべての数式をリンクする必要があると思います。そうしないと、それらに依存するツールはどれもそれらを見つけることができません。


すべての数式をリンクする必要があるかどうかはわかりません。樽専用のものもありますが、他のものの依存関係としてインストールされたものがあるので、私はそれを知りません。
ループスペース14年

4
:「即興は樽のみで、--forceとリンクしなければならない警告」あなたが同じようにいくつかの警告を取得するようだ
GRAV

2
ここではxargsのを使用して同等のバージョンがあります:brew list -1 | xargs -I formula sh -c "brew unlink formula && brew link formula"
paulmelnikow

使用するのに最適。私は、10.12.6のMac OSを使用しています
ラジュyourPepeに

8

この質問に対する他の回答に加えて、複数のバージョンがインストールされている数式を再リンクする必要がある場合があります(brew linkこれは行われません)。

最初に、可能なすべての式を再リンクします。

brew list -1 | while read line; do brew unlink $line; brew link --force $line; done

次にbrew doctor、を実行します。これにより、2つのリストが表示されます。

  • 複数のバージョンのリンクされていない数式
  • 元の再リンクプロセスによって誤ってリンクされた樽のみの数式。

複数のバージョンを持つ各数式について、次を実行し、「python」を数式名に置き換えます。

brew info python  

これにより、とりわけ、インストールされているすべてのバージョンが表示されます。リンクするバージョンを選択し(私にとっては2.7.6)、使用しますbrew switch

brew switch python 2.7.6

またbrew unlink、リンクされている樽のみの数式のリスト(ある場合)で実行することもできます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.