Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Homebrew: `brew uses --installed gcc` does not give any result

I would want to get the list of installed packages that depend on gcc (installed with homebrew). When I try:

brew uses --installed gcc

it gives no result. And if I check e.g. r's dependencies with brew deps r, it returns gcc (among others). So I assume brew uses should at least return the value r.

Did anyone encounter a similar problem and could shed some light on this?

like image 583
Marc Avatar asked Oct 20 '22 23:10

Marc


1 Answers

This is not an authoritative answer, but it appears to me that this is because r depends on :fortran, which is some kind of virtual dependency that can be resolved in different ways. brew deps answers the question, what would I need to install before installing this formula. And in your case it decides that installing gcc is a way to satisfy the :fortran requirement. But the reverse is apparently not supported: It doesn't know just from looking at gcc that this can be used to resolve the virtual dependency :fortran. This is somewhat plausible if one considers the way that virtual dependencies are implemented in Homebrew. Usually, it just looks around in the file system to see if a required binary is available (including ones supplied outside of Homebrew), but it doesn't establish a formula dependency link once it finds a candidate.

(In fact, this case might be even more complex. If you look at brew deps r --tree, you will see that the dependency is actually on :gcc, which is another level of virtual dependency.)

Although not directly related to your question, also note that deps by default is recursive but uses is not. So in order to get a symmetric picture, you'd need to use deps -1 or uses --recursive.

like image 196
Peter Eisentraut Avatar answered Oct 31 '22 15:10

Peter Eisentraut