Como usar o Homebrew para instalar o arquivo local

16

Estou tentando usar o Homebrew para instalar o wget, mas algo está acontecendo onde o download está sempre corrompido. Isso acontece para todos os pacotes, não apenas para o wget. Eu posso baixar o tar.gz através de um navegador. Posso usar o Homebrew para instalar um arquivo baixado localmente? Algo como:

brew install wget-1.14.tar.gz 
MD6380
fonte
1
Parece muito estranho. Não sei se você pode fazer isso, mas parece que algo mais sério está acontecendo. Você já tentou correr brew doctor?
boyfarrell
Se você possui o arquivo exato que o Homebrew espera, você pode colocá-lo em ~ / Library / Caches / Homebrew e tentar brew install. Mas isso é misterioso. Que tal postar a saída de brew installquando você tenta da maneira normal?
echristopherson
@echristopherson Seu método funcionou. Se você postar como resposta, eu aceito.
MD6380
Eu sei porque isso não funciona. O médico Brew não mostra nenhum problema. Parece que o proxy HTTP que está sendo usado não está permitindo o download.
MD6380
Apenas para observar, isso é útil quando existem vários espelhos e o da receita não funciona. Você pode definir um espelho diferente do SourceForge por meio de uma variável de ambiente, mas para outros, a solução aceita é muito útil.
Dan

Respostas:

21

Se o Homebrew já tiver uma fórmula para ela (em / usr / local / Library / Formula) e você tiver o arquivo exato que a fórmula espera (por exemplo, o mesmo nome de arquivo e o mesmo conteúdo, conforme determinado por SHA1 ou qualquer tipo de hash que a fórmula usar) ), você pode colocar o arquivo em ~ / Library / Caches / Homebrew e tentar brew install formula_name(substituindo o nome correto por formula_name , é claro).

echristopherson
fonte
2
Homebrewpasta não existe, mas funciona depois de mkdiruma.
Eccstartup 17/10/2013
brew installnão funcionou para mim, mas brew install <package>funcionou. Obrigado!
Zayne S Halsall
Ah, eu deixei isso implícito. Estou corrigindo isso na minha resposta.
Echristopherson 16/05
7
$ brew install -f wget-1.14.tar.gz
xuri
fonte
1
Pacote diferente, mas mesmo requisito, -f não parece trabalho: zaynehalsall@mbp:~$ brew install -f Library/Caches/Homebrew/pwgen-2.07.tar.gz Error: No available formula with the name "Library/Caches/Homebrew/pwgen-2.07.tar.gz" ==> Searching for similarly named formulae... Error: No similarly named formulae found. ==> Searching taps... Error: No formulae found in taps. zaynehalsall@mbp:~$
Zayne S Halsall
1
mesmo erro acontece
Ben
4

Cinco anos e mude tarde para a festa, mas:

O truque é mover o arquivo para o cache do brew. Esse cache pode ser difícil de encontrar à mão; felizmente, você não precisa. Basta perguntar se preparar com brew --cache.

Isso permite que você faça o seguinte no bash:

mv wget-1.14.tar.gz $(brew --cache)

alternadamente, em peixes:

mv wget-1.14.tar.gz (brew --cache)

Depois disso, a execução brew install wgetdeve resultar no anúncio de que o download do arquivo está sendo baixado, seguido imediatamente pela percepção de que o arquivo já está "já baixado" e tudo prossegue sem problemas a partir daí.

Dan Martinez
fonte
2

É possível fazer o pré-download de um arquivo para uma fórmula, mas você precisará do nome correto do arquivo em cache que pode ser gerado usando brew --cache -s <formula>.

Por exemplo, para a fórmula Erlang, brew --cache -s erlangimprimirá o nome correto do download em cache. Isso significa que, em vez de renomear manualmente uma fórmula, você pode executar:

wget source-version.tar.gz
mv source-version.tar.gz $(brew --cache -s <formula>)
rstml
fonte
Isso funciona para a versão atual de um formulário - mas se eu quiser reinstalar o nó 11 em vez do nó atual 12, o nó brew --cache -s ainda me fornece o caminho para o nó 12. Você sabe como posso forçar o Homebrew a instalar a versão mais antiga?
John Y
Esta é a única que funciona com a mais recente bebida versão 2.2.1
LnxSlck
2

De acordo com isso :

Na verdade, não sem modificar o arquivo de fórmula.

se o arquivo local for um arquivo de pré-construção, também conhecido como 'bottle' no Brew. Aqui está o que eu desenterro:

A garrafa de infusão está relacionada à versão do MacOS.

Veja o pkg-config por exemplo.

aqui em  https://bintray.com/homebrew/bottles/pkg-config#files/ , ele lista arquivos diferentes para diferentes versões do MacOS.

Depois de baixar o arquivo correto, é necessário movê-lo para o caminho correto que pode ser gerado pelo brew --cache --force-bottle pkg-config

para 10.14: é como:

/Users/username/Library/Caches/Homebrew/downloads/dd6c78ec64b7c09961ccdb1bf873b5852fd93783cf25ae9b9399c5896a420462--pkg-config-0.29.2.mojave.bottle.tar.gz

para 10.13: é como:

/Users/username/Library/Caches/Homebrew/downloads/8b865a8ad8179d4a45289cab9267cc5e3a6153d06432d90cf1745caf5d92a64d--pkg-config-0.29.2.high_sierra.bottle.tar.gz

depois disso, o brew pode encontrar o arquivo local em cache quando você executa  brew install pkg-config. caso contrário, ele ainda será baixado de um URL.


basta mover o arquivo para $ (brew --cache) não funcionará mais, pelo menos para o brew de hoje (versão 2.19 no meu caso).

gebitang
fonte
se o arquivo local for código fonte, não uma garrafa. Movê-lo para $ (bebida --cache -s fórmula) vai funcionar se você forçar para instalá-lo com a opção --build-from-source.
181
0

O Brew atualizou sua estratégia de armazenamento em cache, é necessário colocar o arquivo baixado ~/Library/Caches/Homebrew/downloadse seguir sua convenção de nomenclatura.

Você pode deixar o brew iniciar o download, e verá um .incompletearquivo, por exemplo 544b4d734091aeb6482dbe2496a8ff223d15bc970fa330d3dccbb0bb6fb0e13e--qemu-4.2.0.catalina.bottle.tar.gz.incomplete, para renomear o arquivo 544b4d734091aeb6482dbe2496a8ff223d15bc970fa330d3dccbb0bb6fb0e13e--qemu-4.2.0.catalina.bottle.tar.gz.

Piasy
fonte