Something like pip-tools for homebrew? - homebrew

When you install something with homebrew, it also installs the dependencies, which is fine. But later, when you deinstall this specific item, the dependencies remain installed. So by time, you have a lot of software installed and don't know why.
For pip, where the situation is similar, there are solutions like pip-tools. You have to curate a list with the packages you want (requirements.in) and with pip-compile you get the list af all packages, including the dependencies (requirements.txt). When you delete an entry in the requirements.in and re-compile, the dependencies also vanish in requirements.txt, as long as they aren't needed for something else.
I wonder if there's something similar for homebrew?

Here’s command to list unused dependencies:
$ brew leaves --installed-as-dependency
Or:
$ brew autoremove --dry-run
To uninstall them:
$ brew autoremove

Related

Install Libomp - Homebrew is not being found on my terminal

Im trying to install libomp on my mac using the following command:
brew install libomp
But everytime I get an error like this:
Warning: No available formula with the name "libomp".
==> Searching for similarly named formulae and casks...
Error: No formulae or casks found for libomp.
I already uninstall and install Homebrew twice, uninstall/install and updated the lightgbm package, and nothing seems to work.
I was able to install other packages so is not a problem with my computer or anything like that.
Does anyone know how can I fix that?
Run the following to ensure your Homebrew is up to date.
brew update
Then install libomp like this
brew install libomp
and updated the lightgbm package
I'm not sure if this means the lightgbm Python package, the lightgbm CLI installed via Homebrew, or something else...but either way, the presence of those things should not impact whether or not Homebrew is able to install libomp on your system.

brew install yarn version

I tried using
brew install yarn#1.7.0 --without-node
or
brew install yarn#1.7.x --without-node
But I get the following error
Error: No available formula with the name "yarn#1.7.0"
==> Searching for a previously deleted formula (in the last month)...
Warning: homebrew/core is shallow clone. To get complete history run:
git -C "$(brew --repo homebrew/core)" fetch --unshallow
Error: No previously deleted formula found.
==> Searching for similarly named formulae...
Error: No similarly named formulae found.
==> Searching taps...
==> Searching taps on GitHub...
Error: No formulae found in taps.
I presume its possible to install different versions of yarn using brew ?
I had the same issue and wanted to install yarn via brew for various reasons. Honestly the only way is to use the actual link to the yarn.rb file in the Homebrew Repo for the version you want. The easiest way to find the .rb file through git is to check out the PRs in Git for yarn in the homebrew repo.
Before doing this though, run brew unlink yarn in order to allow an older version to be installed while keeping the newest version.
Then look up the PR of the version you want, here's a link to make your life easier.
Click the version you want and go to Files Changed tab. Click on View File button. Then click on Raw button and then copy the URL of this raw file
After you get that link, type in your terminal brew install [link] and you should be set
You can then use brew list --versions yarn to check your installed versions and brew switch to switch versions. You should have both the latest version you previously had installed and the version you just installed.
Some of the above answers don't seem to work anymore. Here is how I was able to install a specific version in April 2021:
brew unlink yarn#1.6.0 (If you already have a version installed)
brew extract --version 1.22.4 yarn homebrew/cask
brew install yarn#1.22.4
yarn -v
You can also use yvm, a yarn version manager instead of homebrew to install a specific or multiple versions of yarn
https://yvm.js.org/docs/overview
Enables easy switching between yarn versions, like nvm does for node
Hope this works for you guys.
To reinstall run below.
// Note:(updating homebrew) for Mac users.
brew install -g yarn
if yarn is still not found
brew reinstall yarn
As per official github page https://github.com/yarnpkg/yarn/issues/599 you should use "brew install -g yarn" to install yarn using brew.
PS: I've installed Xcode and gcc before running above command as i ran into few issues when executed above command.
You could also use yarn policies set-version <version>, but it has a caveat; it will "check in your Yarn release within your repository. Once you run it, your configuration will be updated in such a way that anyone running a Yarn command inside the project will always use the version you set - and this transparently."
You might not want to have the Yarn release in your repository.
Official doc

What is the exact command to install yum through brew?

I tried installing yum through brew install command. but it is not working with the message below. What is the problem? I can not find any good materials.
$ brew install "yum"
Error: No available formula with the name "yum"
==> Searching for similarly named formulae...
Error: No similarly named formulae found.
==> Searching taps...
Error: No formulae found in taps.
yum is a package manager for Red Hat Linux. It will not work on macOS. brew is a package manager for macOS
So instead of trying to install yum to install another piece of software, you might want to try to install this software using brew directly. But beware: the package names might not be the same. Use brew search to search for packages in brew, or maybe, even better, try and find specific instructions for macOS for the software you're trying to install.

multiple side-by-side versions with Homebrew?

Is it possible to install multiple versions side-by-side with Homebrew?
I find myself in a situation needing sbt-0.7.x, sbt-0.10.x and sbt-0.11.0. I've installed both sbt-0.7.7 and sbt-0.10.1 manually at the moment to work around the issue (with sbt-0.11.0 being the latest 'sbt' from Homebrew).
Yeah. When you install a new version of a package, it keeps the old one. The symlinks in /usr/local/bin or wherever point to the latest version, but you can still call the binaries (or link to the libraries) in the older version.
brew list to see what's installed. You can look in package directories to see all the versions; or call brew list --versions to see all packages and all versions.
To easily switch between versions of formulae, you can use:
brew switch <formula> <version>
For example:
brew switch gradle 3.2.1
To list which versions you have installed try:
brew list --versions
or:
brew list <formula> --versions
If you want to get rid of older versions, just use:
brew cleanup
As of Homebrew 2.0.0, it would remove old packages automatically when brew upgrade is called. (https://brew.sh/2019/02/02/homebrew-2.0.0/). To opt-out of this behavior, set the environment variable: export HOMEBREW_NO_INSTALL_CLEANUP=1

Can I do a dry run with homebrew to see the details of what will be installed and how?

Is it possible to run in a verbose mode where it doesn't actually install the package, but just details from where and how it will be install the package?
You can run brew outdated to see a list of outdated packages that will be upgraded when running brew upgrade.
The closest you'll find is to show the dependencies of the package you're trying to install:
$ brew deps ruby
Will list the packages of ruby. You can then use:
$ brew list
to see which packages you have installed. From these two commands, you will be able to tell which packages will be installed by brew install ruby
I've used gentoo linux quite a bit in the past, and their portage system has a nice 'pretend' option for installing packages, the closest I've found for brew is:
brew list (package name)
brew list ruby gives me:
/usr/local/Cellar/ruby/1.9.2-p0/bin/tilt
/usr/local/Cellar/ruby/1.9.2-p0/bin/testrb
/usr/local/Cellar/ruby/1.9.2-p0/bin/ruby
/usr/local/Cellar/ruby/1.9.2-p0/bin/ri
/usr/local/Cellar/ruby/1.9.2-p0/bin/rdoc
/usr/local/Cellar/ruby/1.9.2-p0/bin/rake
/usr/local/Cellar/ruby/1.9.2-p0/bin/rackup
/usr/local/Cellar/ruby/1.9.2-p0/bin/irb
/usr/local/Cellar/ruby/1.9.2-p0/bin/gem
/usr/local/Cellar/ruby/1.9.2-p0/bin/erb
/usr/local/Cellar/ruby/1.9.2-p0/include/ruby-1.9.1/ (21 files)
/usr/local/Cellar/ruby/1.9.2-p0/lib/libruby.1.9.1.dylib
/usr/local/Cellar/ruby/1.9.2-p0/lib/ruby/ (998 files)
/usr/local/Cellar/ruby/1.9.2-p0/lib/ (3 other files)
/usr/local/Cellar/ruby/1.9.2-p0/share/man/ (5 files)
/usr/local/Cellar/ruby/1.9.2-p0/share/ri/ (9522 files)
But I'm guessing you're looking for more info than this?
The brew install --dry-run feature was recently added.
brew install --dry-run vim
==> Would install 1 formula:
vim
==> Would install 5 dependencies for vim:
lua berkeley-db perl libyaml ruby

Resources