--
    --.--

    スポンサーサイト

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

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

    Homebrew - パッケージの依存関係を調べるコマンド

    5月だというのに
    DeNAベイスターズが首位!
    どうしようwktkが止まらない(笑)

    Homebrewで入れたものの依存関係を調べる


    先日は最新のglibにアップデートできないトラブルがあって
    それに依存するgobject-introspectionなどもインストールできなくなりました(解決済み)。

    この時疑問に思ったのが
    「そもそも何が何に依存しているのか?」
    表面上は分かりにくいですよね^-^;

    /usr/local/Library/Formulaに各パッケージのフォーミュラがあるので
    それを見れば依存するもの(必要とするもの)が一応分かります。
    でもフォーミュラをいちいち読むのは面倒な上に、これを読んでも
    「他のどのパッケージに依存されているか(必要とされているか)」
    までは分かりません。

    もっと効率よく調べる方法はないものか…

    調べてみると、ちゃんとHomebrewのコマンドとして用意されていました♪
    ここではglibを例に、各種コマンドを試してみます。

    依存しているものを表示

    glibが依存しているものを表示するには
    brew depsコマンドを使います。

    $ brew deps glib
    gettext
    libffi
    pkg-config
    xz

    ふーん。これら4つのパッケージが必要なんだ。

    --treeオプションで階層表示もできます。
    $ brew deps glib --tree
    glib
    |- xz
    |- pkg-config
    |- gettext
    | |- xz
    |- libffi

    こうしてみると、xzはglib自身からも依存されてるだけでなく、
    glibが依存してるgettextにも依存されてるってことが分かります。

    依存されているものを表示

    さっきとは逆にglibが何に依存されているかを表示するには
    brew usesコマンドを使います。
    --installedオプションをつけるとインストールされているものだけを表示します。
    これをつけないと、Homebrewの全パッケージが対象になってしまいます。

    $ brew uses glib --installed
    atk gobject-introspection pango
    cairo gtk+ pygobject
    gdk-pixbuf harfbuzz pygtk

    ちゃんとgobject-introspectionも含まれてます。

    他のパッケージと依存関係のないものを表示

    brew leavesコマンドで孤立しているパッケージを表示できます。
    $ brew leaves
    automake
    bash
    bash-completion2
    berkeley-db
    brew-cask
    coreutils
    # 以下略

    多くは単独で起動する、見慣れたプログラムだと思いますが
    たまに「全然使わないパッケージ」が混じっていることがあります。
    恐らく以下のようなパターンで生じたのかも。

    パッケージAをインストールした。
    (この時、依存関係のあるパッケージBも自動でインストールされる)

    パッケージAが不要になり、アンインストールした。

    謎のパッケージBが孤立した状態で残る。

    おまけ:正体不明のパッケージのホームページを表示

    他のものと依存関係にない、見た事もないパッケージ。
    捨てていいのか悪いのか。
    そもそも名前を見ても何をするパッケージなのか見当もつかない^-^;
    例えば「glibって何?」って時にどうするか?
    ググる・・・意外とめんどくさい^-^;

    そんな時はbrew homeコマンド!
    ブラウザにそのパッケージのホームページが表示されます。
    ググるより早い!

    $ brew home glib
    # ブラウザが開き、glibのホームページが表示される


    その他、小技。
    $ brew info --github glib
    # ブラウザが開き、glibのGitHubページが表示される


    $ brew cat glib
    # ターミナル上でglibのフォーミュラが表示される



    参考サイト:
    homebrew のサブコマンド一覧1 (a-i) - 理系学生日記
    日暮れて道遠し: Homebrew コマンドのまとめ
    homebrew でインストール済みのライブラリから、どのライブラリからも depens on されてないやつ出力 - Thanks Driven Life

    関連記事

    このエントリーをはてなブックマークに追加
    トラックバックURL
    http://w6o6n.blog.fc2.com/tb.php/153-6d7fca4a
    トラックバック
    コメント
    管理者にだけ表示を許可する
     
    上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。