--
    --.--

    スポンサーサイト

    上記の広告は1ヶ月以上更新のないブログに表示されています。
    新しい記事を書く事で広告が消せます。

    このエントリーをはてなブックマークに追加
    2014
    11.05

    Homebrewのエラー対処法(まとめなおし)

    Homebrewでありがちなトラブルとその対処法をまとめ直しました。

    日頃のお手入れ


    brew updateでHomebrew本体とformula(インストール用のレシピ)を更新。
    サボると「1日一度はやってね」と言われます。わがままなやつめw

    brew upgradeでformulaを使って実際にアップグレード。
    うちでは一気にbrew update && brew upgradeでやってます。

    最後にbrew doctorでHomebrewの健全性をチェック。
    問題なければ"Your system is ready to brew"と答えてくれます。
    ここでのエラーは無視してもいい軽微なものから対処困難なものまで様々。
    Unlinkなどの指示があれば従うようにした方が無難です。

    アクセス権の不良にまつわるエラー


    Homebrewのインストールの際、以後の操作でsudoを不要にするために
    /usr/local(と関連する下層のディレクトリ)をこんな感じに設定してくれています。
    $ ls -l /usr | grep local
    drwxrwxr-x 29 ユーザー名 admin 986 10 28 21:21 local/

    所有者:ユーザー、グループ:admin、アクセス権:775になっています。

    ところが、まれに他のアプリをインストールした拍子に
    /usr/localの設定が変わってしまうことがあります。

    例えば所有者:rootとか、グループ:wheelとか、アクセス権:755とかに変わってしまうと
    Homebrewが思うようにファイル操作ができなくなり、
    ほにゃらら is not writable」とか「Permission denied」とか言い出します。

    こちらはbrew doctorの際に出たエラーの例。
    $ brew doctor
    Warning: The /usr/local directory is not writable.
    Even if this directory was writable when you installed Homebrew, other
    software may change permissions on this directory. Some versions of the
    "InstantOn" component of Airfoil are known to do this.

    You should probably change the ownership and permissions of /usr/local
    back to your user account.


    こんな時は以下のコマンドで所有権・アクセス権を修正して問題解決!
    sudo chown $USER `brew --prefix` && chgrp admin `brew --prefix` && chmod 775 `brew --prefix`

    -Rオプションではやらない方がいい

    chownの-Rオプションで再帰的に処理する人もいるようですが
    Homebrew以外のものがインストールされているとトラブルの素になりかねないので慎重に。

    ウチではClamXav絡みの事が多いです。
    ClamXavは/usr/local/clamXavにインストールされていて、
    ClamXavのエンジン(clamav)のアップデートの際に
    /usr/localの所有権・アクセス権を書き換えてしまう
    ため
    このようなトラブルが起こります。

    この時、間違えて-Rオプションを使ってしまうと
    /usr/local/clamXav以下の所有権・アクセス権も書き換わってしまい
    ClamXavが動作しなくなります。
    やっちまった時は、ClamXavを再インストールした方が良さそうです。



    メモ:前はグループ:staffだったと思うんですが…
    2014.11.7現在、Homebrewのインストーラをみるとchgrp adminになっていました。

    git pull -q originの失敗


    HomebrewはGitを使ってパッケージ管理をしています(というよりformulaのバージョン管理か)。
    まれにHomebrewで管理しているローカルのリポジトリとリモートのリポジトリとの間に齟齬があると
    つじつまが合わずにエラーになることがあります。例えばこんな感じ。
    $ brew update
    error: The following untracked working tree files would be overwritten by merge:
    Library/Formula/libarchive.rb
    Please move or remove them before you can merge.
    Aborting
    Error: Failure while executing: git pull -q origin refs/heads/master:refs/remotes/origin/master


    こんな時は以下のコマンドでGitの齟齬を解消して問題解決!
    $ cd `brew --prefix`
    $ git fetch origin
    $ git reset --hard origin/master

    メモ・このコマンドがやってる事:
    1行目:Gitのワーキングディレクトリに移動(通常ならcd /usr/localと同義)
    2行目:リモートリポジトリの内容をローカルのリポジトリにもってくる
    3行目:ローカルのインデックスとワーキングツリーをローカルのリポジトリのorigin/masterに合わせる
    (この後、追跡対象外になった不要ファイルを削除するためにgit clean -fをする人もいます)

    参考サイト:
    gitでリモートのブランチにローカルを強制一致させたい時 - Qiita
    git reset についてもまとめてみる - murankの日記
    Git clean | アトラシアン Git チュートリアル
    Homebrewでupdateをしたらエラーが出た - メモ帳


    それ以外のエラーは個別対応で


    エラーに出会うとビビリますが、試練だと思って対処しましょう!
    いざとなれば全部消せば良いんだし!笑

    あまり使い込んでいない新しめのMac(Mavericks 10.9.5)で操作していたらこんなエラーが。
    $ brew update && brew upgrade
    fatal: unable to access 'https://github.com/Homebrew/homebrew/': Could not resolve host: github.com
    Error: Failure while executing: git pull -q origin refs/heads/master:refs/remotes/origin/master


    git pull -q originの失敗か。いつものパターンで直るっしょ。
    $ cd `brew --prefix`
    $ git fetch origin
    fatal: unable to access 'https://github.com/Homebrew/homebrew/': SSLRead() return error -9806

    直らない!SSLの接続エラー?

    対処法をググってみると… GitHubでhttps接続すればいいらしい。
    git - pod install returns fatal error: SSL certificate issue? - Stack Overflow
    osx - Getting SSL error when attempting to clone a Stash repository - Stack Overflow

    要約すると、SafariでGitHub (https://github.com/)にアクセスして証明書を取得、
    キーチェーンアクセスを使ってその証明書を「常に信頼する」に設定?

    とりあえずChromeでhttps://github.com/にアクセスだけして、ターミナルに戻って再度挑戦。(証明書の操作などはとりあえずパス)
    $ git fetch origin
    remote: Counting objects: 375, done.
    remote: Compressing objects: 100% (180/180), done.
    remote: Total 375 (delta 139), reused 367 (delta 137)
    Receiving objects: 100% (375/375), 215.12 KiB | 86.00 KiB/s, done.
    Resolving deltas: 100% (139/139), done.
    From https://github.com/Homebrew/homebrew
    * [new branch] gh-pages -> origin/gh-pages
    * [new branch] go -> origin/go
    5eb5e44..9cafa0c master -> origin/master
    $ git reset --hard origin/master
    HEAD is now at 9cafa0c mpd: Fix comment typo
    $ brew update && brew upgrade
    Already up-to-date.
    $ brew doctor
    Your system is ready to brew.

    直りました!
    問題が頻発するようなら証明書用意します^-^;



    おまけ:Snow LeopardのSafari (5.1.10)でhttps://github.com/にアクセスしてみたら
    もう対応してないそうな… Firefoxとかなら大丈夫ですが、ちょっと寂しい ;_;

    Picture pop-up on Click!

    関連記事

    このエントリーをはてなブックマークに追加
    トラックバックURL
    http://w6o6n.blog.fc2.com/tb.php/142-73099dc4
    トラックバック
    コメント
    このコメントは管理人のみ閲覧できます
    dot 2014.11.29 18:32 | 編集
    管理者にだけ表示を許可する
     
    上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。