Homebrew: Yalnızca yüklü üst düzey formülleri listeleyin


102

Yüklü bağımlılıklar olmadan yalnızca yüklediğim formülleri göstermenin bir yolunu arıyorum. Bağımlılıkların tüm gürültüsü olmadan, gerçekten yüklediğim tüm programların bir listesine sahip olmak istiyorum.

brew listYüklü tüm formüllerin hangi listelendiğini biliyorum . Bunun brew graphbana bir bağımlılık grafiği verdiğini de biliyorum .graphviz

Veya başka bir deyişle: Sistemimi yeniden yüklemek için minimum formül setine sahip olmak istiyorum.


brew graph??? Anlıyorum Error: Unknown command: graph. Böyle bir komut yok.
iconoclast

Yanıtlar:


184

Kullanım brew leaves: başka bir yüklü formülün bağımlılıkları olmayan yüklü formülleri gösterir.


1
Teşekkürler! Ancak bu, mysqlsistemimde gerçekten gerekliyken hiçbir şey gerektirmiyormuş gibi görünüyor mysql-connector-c++. Bunun kasıtlı olup olmadığını biliyor musunuz (örneğin brew, yalnızca bir bağımlılık olup olmadığını değil, hangi formüllerin doğrudan yüklendiğini korumak gibi )?
Haralan Dobrev

2
Oh, bu var! FWIW bu, Library/Homebrew/cmd/leaves.rbisteğe bağlı / önerilen bağımlılıkların ( deps << dep.name if tab.with?(dep.name)) işlenmesi dışında çözümümün yaptığı şeyi yapabilir ve temelde yapar . @HaralanDobrev Bu kesinlikle sisteminizdeki davranışı mysqlve çıktının benim çözümümden neden farklı olduğunu açıklar , ancak leaves.rbbeğeninize kolayca uyum sağlayabilirsiniz .
Adrian Frühwirth

1
Harika bul. Ben brew ls --versions $( brew leaves )brew ls --versions $( brew leaves )de sürümleri dökmek için kullanıyorum .
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

Bu bize bağımlılıkları da dahil olmak üzere tüm yüklü formüllerin bir listesini veriyor gibi görünüyor. Tüm formüllerin bir listesini ve tüm bağımlılıkların bir listesini oluşturabilir ve bağımlılıkları formül listesinden çıkarabiliriz, bu bize diğer formüllerin bağımlılıkları olmayan formüllerin bir listesini vermelidir:

$ 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

Peşinde olduğunuz çıktı bu mu?


1
Teşekkür ederim, işi bu yapıyor!
Haralan Dobrev

Senaryonuz için teşekkürler, ama Denis'den daha iyi bir cevap buldum. 1) Yerleşiktir. breweskiden böyle bir komuta sahip değildim, ancak artık yerleşik olanı kullanmak daha iyidir. 2) Komut dosyanız çiftleri iyi gösteriyor. Örneğin, php55hangi kurulumları kurduysam, bunun bir bağımlılık olmadığını ve doğru olmadığını homebrew/dupes/zlibgösterecektir zlib. Şerefe!
Haralan Dobrev

Neden cutçıktıda kullanmıyorsunuz ? İşte bir astar:brew deps --installed | cut -d: -f1
mattmc3

@ mattmc3 Çünkü bu aynı şeyi yapmıyor ve soruyu cevaplamıyor / OP'nin sorduğu çıktıyı vermiyor.
Adrian Frühwirth

1
Kabul edilen cevap bu olmalıdır. Ben bulamadık brew leavesyararlı olduğu.
Danyal Aytekin

3

bu, kurulu formülleri bir ağaç olarak gösterir.

brew deps --installed --tree

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.