Homebrew: Listet nur installierte Formeln der obersten Ebene auf

102

Ich suche nach einer Möglichkeit, nur die von mir installierten Formeln ohne die installierten Abhängigkeiten anzuzeigen. Ich möchte eine Liste aller Programme haben, die ich tatsächlich installiert habe, ohne das Rauschen der Abhängigkeiten.

Ich weiß, brew listwelche alle installierten Formeln auflistet. Ich weiß auch, dass brew graphich ein Abhängigkeitsdiagramm in dergraphviz

Oder mit anderen Worten: Ich möchte den minimalen Satz von Formeln haben, um mein System neu zu installieren.


quelle
brew graph??? Ich verstehe Error: Unknown command: graph. Kein solcher Befehl.
Bilderstürmer
brew graphscheint ein Paket zu sein, das Sie für diesen github.com/martido/brew-graph installieren können , siehe auch blog.jpalardy.com/posts/untangling-your-homebrew-dependencies
netweb

Antworten:

179

Verwendung brew leaves: Installierte Formeln anzeigen, die keine Abhängigkeiten von einer anderen installierten Formel sind.

Denis Barushev
quelle
1
Vielen Dank! Dies zeigt jedoch, mysqlals ob es von nichts benötigt wird, während es auf meinem System tatsächlich von benötigt wird mysql-connector-c++. Wissen Sie zufällig, ob dies beabsichtigt ist (z. B. ob brewbeibehalten wird, welche Formeln direkt installiert werden, nicht nur, ob es sich um eine Abhängigkeit handelt oder nicht)?
Haralan Dobrev
2
Oh, das gibt es! FWIW dies kann in gefunden werden Library/Homebrew/cmd/leaves.rbund macht im Grunde das, was meine Lösung tut, mit Ausnahme der Behandlung von optionalen / empfohlenen Abhängigkeiten ( deps << dep.name if tab.with?(dep.name)). @ HaralanDobrev Dies erklärt mit Sicherheit das Verhalten in Bezug mysqlauf Ihr System und warum sich die Ausgabe von meiner Lösung unterscheidet, aber Sie können sich leicht leaves.rban Ihre Vorlieben anpassen .
Adrian Frühwirth
1
Toller Fund. Ich benutze, brew ls --versions $( brew leaves )brew ls --versions $( brew leaves )um auch die Versionen zu sichern.
Mike D
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

Dies scheint uns eine Liste aller installierten Formeln einschließlich ihrer Abhängigkeiten zu geben. Wir können eine Liste aller Formeln und eine Liste aller Abhängigkeiten erstellen und die Abhängigkeiten von der Liste der Formeln subtrahieren. Dies sollte uns eine Liste von Formeln geben, die keine Abhängigkeiten anderer Formeln sind:

$ 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

Ist dies die Ausgabe, nach der Sie suchen?

Adrian Frühwirth
quelle
1
Danke, das macht den Job!
Haralan Dobrev
Vielen Dank für Ihr Skript, aber ich habe festgestellt, dass die Antwort von Denis besser ist. 1) Es ist eingebaut. brewFrüher gab es keinen solchen Befehl, aber jetzt ist es besser, den eingebauten Befehl zu verwenden. 2) Ihr Skript zeigt Handle Dupes gut an. Wenn ich beispielsweise installiert habe, php55welche Installationen installiert sind homebrew/dupes/zlib, wird angezeigt, zlibdass es sich nicht um eine Abhängigkeit handelt, die nicht wahr ist. Prost!
Haralan Dobrev
Warum nicht einfach cutam Ausgang verwenden? Hier ist ein brew deps --installed | cut -d: -f1
Einzeiler
@ mattmc3 Weil das nicht dasselbe tut und die Frage nicht beantwortet / die Ausgabe liefert, die OP gestellt hat.
Adrian Frühwirth
1
Dies sollte die akzeptierte Antwort sein. Ich fand es nicht brew leavesnützlich.
Danyal Aytekin
3

Dies zeigt installierte Formeln als Baum.

Brew Deps - installiert - Baum

Y. Özdemir
quelle