Installing old versions of llvm - homebrew

I am trying to install old version of llvm via brew extract.
This is what I am running:
brew unlink llvm
brew tap-new llvm/llvm-project
brew extract --version='13.0.0' llvm llvm/llvm-project
brew install llvm#13.0.0
This is the error I get:
/usr/local/Homebrew/Library/Homebrew/utils/github/api.rb:311:in `raise_error': Validation Failed: [{"message"=>"The listed users and repositories cannot be searched either because the resources do not exist or you do not have permission to view them.", "resource"=>"Search", "field"=>"q", "code"=>"invalid"}] (GitHub::API::ValidationFailedError)
This is the url its trying to reach:
https://api.github.com/search/issues?q=llvm%4013.0.0+repo%3Allvm%2Fhomebrew-llvm-project+state%3Aopen+in%3Atitle&per_page=100
I have gone through this answer ,
I don't understand whose read permission is required. llvm-project is already a public repo.
#mehnaz can you please take a look. I wanted to comment on your question but being a new stackoverflow user I don't seen to have the privilege.

Related

Return to dbt version 19.1

I am not sure how badly I have hosed this. I updated dbt to v20 globally too soon. I did uninstall v20. I need to return the project to version 19.1. I am running into errors doing this. As background I am running a virtual. I am on macos.
These two commands work as expected:
brew tap dbt-labs/dbt
brew unlink dbt
Then I run brew install dbt-labs/dbt/dbt#0.19.1
I get (I expect this) Warning: dbt-labs/dbt/dbt#0.19.1 0.19.1_1 is already installed, it's just not linked. To link this version, run: brew link dbt#0.19.1
Then I run brew link dbt#0.19.1 or brew link dbt-labs/dbt/dbt#0.19.1 and I get:
Error: Formulae found in multiple taps:
* dbt-labs/dbt/dbt#0.12.2-rc1
* fishtown-analytics/dbt/dbt#0.12.2-rc1
Please use the fully-qualified name (e.g. dbt-labs/dbt/dbt#0.12.2-rc1) to refer to the formula.
So I try brew link dbt-labs/dbt/dbt#0.12.2-rc1
Disclosure...I code dbt modules but I do not get too far into the installation since I rarely need to do it. Any help would be highly appreciated.
You might find this issue in the dbt-labs/dbt repo helpful.
TL;DR:
You may be running into issues due to the repo name change. It could help to do a full re-install, i.e.:
brew untap fishtown-analytics/dbt --force
brew tap dbt-labs/dbt
brew install dbt#x.y.z
You can then follow the instructions here as normal for managing several versions with homebrew.

Installing Infer Using Brew Failed (No Bottle)

I am trying to install Infer, a static analysis tool developed by Facebook. I tried following the tutorial for Mac at this link: https://fbinfer.com/docs/getting-started/. I used the "brew install infer" command, however, I keep getting the following error:
Error: infer: no bottle available!
You can try to install from source with:
brew install --build-from-source infer
Please note building from source is unsupported. You will encounter build
failures with some formulae. If you experience any issues please create pull
requests instead of asking for help on Homebrew's GitHub, Twitter or any other
official channels.
I don't know what I'm doing wrong since I just followed the instruction. Please help! Thank you
Please take a look at my modified brew formula to install it on macOS 12 + Apple Silicon.
It works using commit 5fd2f95 (HEAD) and not v1.1.0.

Homebrew: How do you specify a version using brew cask?

How do I specify a version number when installing something with brew cask install?
For recent versions of Homebrew, Jethro' instructions below may not work work, because we will get an error like:
Invalid usage: Non-checksummed download of <FORMULA_NAME> formula file from an arbitrary URL is unsupported.
I found a workaround:
Go to the Homebrew Cask search page: https://formulae.brew.sh/cask/
Type and find the application you are looking for
Click Cask code link
On Github click History button
Find the version you need by reading the commit messages and view the raw file. Confirm the version variable (normally on line 2) is the version you need.
Click on the name of the commit, then three dots and select View file
Right-click Raw button and Save Link As... to download the file locally
When downloaded, go to download directory cd Downloads/
Finally run brew install --cask <FORMULA_NAME>.rb
Voilà 😄
If you need some visual assistance check the screenshots here.
You can manually point brew at the ruby file for a specific version of a cask, using a git hash. This lets you control which version is installed.
For example:
Find the cask .rb file on the homebrew-cask git repo that you
want.
Get the commit hash, eg
cee7983cd95fc92fdc250fc509f2379cefe647fe in the example above.
Git may give you instructions to view the file history locally - eg git clone https://github.com/Homebrew/homebrew-cask.git git log master -- Casks/CASK_NAME.rb
Point brew at the file using the hash: brew cask install https://raw.githubusercontent.com/caskroom/homebrew-cask/cee7983cd95fc92fdc250fc509f2379cefe647fe/Casks/minikube.rb
The other answers are pretty heavy handed, an alternative is to use the homebrew/cask-versions tap which contains a list of the old (major) versions of casks.
To use them tap it with brew tap homebrew/cask-versions and then you can search for your cask again like brew search --cask yourformula and see if what you're looking for is there.
Or you can see the complete list of casks by clicking on Casks folder at https://github.com/Homebrew/homebrew-cask-versions .
If you run
brew edit [formula]
you can change the version that matches your operating system. If you know the checksum, enter that too. If not, just comment that line out with # and it will skip the check. Then run
HOMEBREW_NO_INSTALL_FROM_API=1 brew reinstall [formula]

Is it possible to get Homebrew to install from the latest commit on GitHub?

I need to use the LFTP program for a script I run. I tried installing it from the website using the instructions in the downloaded folder's "INSTALL" file, but running config always failed. So, I tried to have Homebrew install it, and that worked great.
I have no idea where Homebrew fetches its source from, but the latest version it pulled has a bug which the developer has since fixed on GitHub. Is there a way I can get Homebrew to install the source from the latest commit?
Some packages, such as numpy have a --HEAD option.
--HEAD
Install HEAD version
but the lftp package doesn't have this option. One solution could be to implement it yourserlf:
brew edit lftp
P.S. the homebrew version of lftp already include a patch:
https://raw.githubusercontent.com/macports/macports-ports/edf0ee1e2cf/devel/m4/files/secure_snprintf.patch
it's maybe the same you are looking for. You can see how it's apply whit brew edit lftp.

Homebrew - repeated "linking" bug. What is the underlying issue here?

So I've been using homebrew to install various packages/libraries/programs on my mac. I keep running into a problem in which homebrew tells me that I have unlinked kegs in my Cellar.
For instance, upon running brew install phantomjs I received the following message:
Warning: Could not link phantomjs. Unlinking...
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
You can try again using `brew link phantomjs'
Possible conflicting files are:
/usr/local/bin/phantomjs -> /usr/local/lib/node_modules/phantomjs/bin/phantomjs
I tried running brew link phantomjs as recommended, and hit a similar problem:
Error: Could not symlink file: /usr/local/Cellar/phantomjs/1.9.2/bin/phantomjs
Target /usr/local/bin/phantomjs already exists. You may need to delete it.
To force the link and overwrite all other conflicting files, do:
brew link --overwrite formula_name
The command brew link --overwrite --dry-run phantomjs gives the following message:
Would remove:
/usr/local/bin/phantomjs -> /usr/local/lib/node_modules/phantomjs/bin/phantomjs
I will probably go ahead and overwrite, but this appears to happen every time I try to install something with homebrew. Why? Why isn't homebrew working as expected?
Thanks.
From what I can tell, looks like you have previously done:
% sudo npm install -g phantomjs
In this case, you should do the following:
% sudo npm uninstall -g phantomjs
% brew link --overwrite phantomjs
I thought I'd take a crack at this. I ran into a similar problem today, and I think it may be related to this:
https://github.com/Homebrew/homebrew/issues/22408
Long story short, I think it has to do with how npm manages packages vs how brew does it. (I'm assuming you installed node with its defaults, which would have given you npm).
At some point you probably installed some package with npm. Maybe grunt, karma, etc..those by default end up in /usr/local/lib/node_modules.
Maybe one of those packages or its dependencies(or sub-dependencies) depended on phantomjs (I think Karma might use phantomjs?) Anyways, if now you are trying to brew install phantomjs, which is trying to make a symlink to it, that may be conflicting with the already existing symlink that npm created for you..
I think you can change the symlink path for that package so that brew permanently points to that already installed package in the node_modules folder. Sorry not to be more specific, I'm just figuring this out myself.

Resources