Homebrew: सूची केवल स्थापित शीर्ष स्तर के सूत्र


102

मैं केवल उन फॉर्मूलों को दिखाने का रास्ता खोज रहा हूं, जिन्हें मैंने स्थापित निर्भरता के बिना स्थापित किया था। मैं उन सभी कार्यक्रमों की एक सूची रखना चाहता हूं, जो वास्तव में मैंने स्थापित किए हैं, निर्भरता के सभी शोर के बिना।

मुझे पता है कि brew listसभी स्थापित फ़ार्मुलों की सूची कौन सी है। मुझे यह भी पता है कि brew graphमुझे इसमें एक निर्भरता का ग्राफ मिला हैgraphviz

या दूसरे शब्दों में: मैं अपने सिस्टम को पुनर्स्थापित करने के लिए सूत्रों का न्यूनतम सेट होना चाहता हूं।


brew graph??? मुझे मिलता है Error: Unknown command: graph। ऐसी कोई आज्ञा नहीं।
iconoclast

brew graphएक पैकेज आप इस के लिए स्थापित कर सकते हैं प्रतीत होता है github.com/martido/brew-graph , देख भी blog.jpalardy.com/posts/untangling-your-homebrew-dependencies
netweb

जवाबों:


180

उपयोग करें brew leaves: ऐसे स्थापित फ़ार्मुलों को दिखाएँ जो किसी अन्य संस्थापित सूत्र की निर्भरता नहीं हैं।


1
धन्यवाद! हालाँकि यह दिखाता mysqlहै कि यह किसी चीज की आवश्यकता नहीं है जबकि यह वास्तव में मेरे सिस्टम द्वारा आवश्यक है mysql-connector-c++। क्या आपको पता है कि क्या यह जानबूझकर किया गया है (जैसे कि अगर brewयह रखना है कि कौन सा फॉर्मूला सीधे स्थापित किया गया है तो क्या यह डिपेंडेंसी है या नहीं)?
हरलान डोबरेव

2
ओह, यह मौजूद है! FWIW में यह पाया जा सकता है Library/Homebrew/cmd/leaves.rbऔर मूल रूप से वैकल्पिक / अनुशंसित निर्भरता ( deps << dep.name if tab.with?(dep.name)) के संचालन के अपवाद के साथ मेरा समाधान क्या करता है । @HaralanDobrev यह सबसे निश्चित रूप से mysqlआपके सिस्टम के संबंध में व्यवहार के बारे में बताता है और आउटपुट मेरे समाधान से अलग क्यों है, लेकिन आप आसानी leaves.rbसे अपनी पसंद के अनुसार अनुकूलित कर सकते हैं।
एड्रियन फ्रुविर्थ

1
शानदार खोज। मैं brew ls --versions $( brew leaves )brew ls --versions $( brew leaves )संस्करणों को डंप करने के लिए भी उपयोग करता हूं ।
माइक डी

21
$ brew deps --installed
tmux: pkg-config libevent
q:
gdbm:
libxml2:
asciidoc: docbook
libevent:
pkg-config:
pcre:
docbook:
zsh: gdbm pcre
readline:
emacs: pkg-config

यह हमें उनकी निर्भरता सहित सभी स्थापित योगों की एक सूची देता है। हम सभी सूत्रों की सूची बना सकते हैं और सभी निर्भरताओं की सूची बना सकते हैं और सूत्रों की सूची से निर्भरता घटा सकते हैं। इससे हमें उन सूत्रों की एक सूची मिलनी चाहिए जो अन्य सूत्रों की निर्भरता नहीं हैं:

$ cat brew-root-formulae.sh
#!/bin/sh

brew deps --installed | \
    awk -F'[: ]+' \
    '{
        packages[$1]++
        for (i = 2; i <= NF; i++)
            dependencies[$i]++
    }
    END {
        for (package in packages)
            if (!(package in dependencies))
                print package
    }'

$ ./brew-root-formulae.sh
zsh
asciidoc
libxml2
readline
tmux
q
emacs

क्या यह आउटपुट आपके बाद का है?


1
धन्यवाद, यह काम करता है!
हरलान डोबरेव

आपकी स्क्रिप्ट के लिए धन्यवाद, लेकिन मैंने डेनिस से बेहतर होने का जवाब पाया है। 1) यह बिल्ट-इन है। brewइस तरह की कमांड का उपयोग नहीं किया जाता है, लेकिन अब जब यह निर्मित में उपयोग करना बेहतर होता है। 2) आप स्क्रिप्ट अच्छी तरह से संभालती है दिखाता है। उदाहरण के लिए यदि मैंने स्थापित किया है php55जो homebrew/dupes/zlibइसे स्थापित करता है तो यह दिखाएगा zlibकि यह एक निर्भरता नहीं है जो सच नहीं है। चीयर्स!
हरलान डोबरेव

सिर्फ cutआउटपुट पर ही क्यों इस्तेमाल करें ? यहाँ एक लाइनर है:brew deps --installed | cut -d: -f1
Mattmc3

@ Mattmc3 क्योंकि वह एक ही काम नहीं करता है और उस सवाल का जवाब नहीं देता है, जो ओपी ने पूछा है।
एड्रियन फ्रुविर्थ

1
यह स्वीकृत उत्तर होना चाहिए। मुझे brew leavesउपयोगी नहीं लगा।
डेनियल आयटेकिन

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.