Come usare Homebrew per installare l'archivio locale


16

Sto cercando di usare Homebrew per installare wget, ma sta succedendo qualcosa in cui il download è sempre corrotto. Questo succede per tutti i pacchetti, non solo per wget. Posso scaricare bene tar.gz attraverso un browser. Posso usare Homebrew per installare un archivio scaricato localmente? Qualcosa come:

brew install wget-1.14.tar.gz 

1
Sembra molto strano. Non so che puoi farlo, ma sembra che stia succedendo qualcosa di più serio. Hai provato a correre brew doctor?
boyfarrell

Se hai l'archivio esatto che Homebrew si aspetta, puoi metterlo in ~ / Library / Caches / Homebrew e poi provare brew install. Ma questo è misterioso. Che ne dici di pubblicare l'output di brew installquando lo provi normalmente?
ecristopherson

@echristopherson Il tuo metodo ha funzionato. Se lo pubblichi come risposta, lo accetterò.
MD6380,

So perché non funziona. Il dottore della birra non mostra alcun problema. Sembra che il proxy HTTP in uso non consenta il download.
MD6380,

Solo per notare, questo è utile quando ci sono più mirror e quello nella ricetta non funziona. È possibile impostare un mirror SourceForge diverso tramite una variabile di ambiente, ma per altri la soluzione accettata è molto utile.
Dan

Risposte:


21

Se Homebrew ha già una formula per esso (in / usr / local / Library / Formula) e hai l'archivio esatto che la formula si aspetta (cioè lo stesso nome file e lo stesso contenuto, come determinato da SHA1 o qualunque tipo di hash utilizzato dalla formula ), puoi mettere l'archivio in ~ / Library / Caches / Homebrew e poi provare brew install formula_name(sostituendo il nome corretto con formula_name , ovviamente).


2
Homebrewla cartella non esiste, ma funziona dopo me mkdir.
eccstartup,

brew installnon ha funzionato per me, ma brew install <package>ha funzionato. Grazie!
Zayne S Halsall,

Oh, l'avevo lasciato implicito. Lo sto risolvendo nella mia risposta.
ecristopherson,

7
$ brew install -f wget-1.14.tar.gz

1
Pacchetto diverso ma stesso requisito, -f non sembra funzionare: 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
accade lo stesso errore
Ben

4

Cinque anni e cambio tardi alla festa, ma:

Il trucco è spostare l'archivio nella cache di brew. Detto cache può essere un dolore da trovare a mano; per fortuna non è necessario. Basta chiedere di prepararsi brew --cache.

Questo ti permette di fare quanto segue in bash:

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

alternativamente, nei pesci:

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

Dopodiché la corsa brew install wgetdovrebbe comportare la pubblicazione di un annuncio che sta scaricando l'archivio, seguito immediatamente dalla sua realizzazione che l'archivio è "già scaricato" e tutto procede senza intoppi da lì.


2

È possibile pre-scaricare un file per una formula ma sarà necessario il nome del file di cache corretto che può essere generato utilizzando brew --cache -s <formula>.

Ad esempio, per la formula Erlang, brew --cache -s erlangstamperà il nome corretto del download memorizzato nella cache. Ciò significa che invece di rinominare manualmente una formula, puoi eseguire:

wget source-version.tar.gz
mv source-version.tar.gz $(brew --cache -s <formula>)

Funziona con la versione corrente di un formale - ma se voglio reinstallare il nodo 11 piuttosto che l'attuale nodo 12, brew --cache -s node mi dà ancora il percorso per il nodo 12. Sai come posso forzare Homebrew a installare la versione precedente?
John Y,

Questo è quello che funziona con l'ultima versione della birra 2.2.1
LnxSlck

2

Secondo questo :

Non proprio senza modificare il file della formula.

se il tuo archivio locale è un file precompilato, noto anche come 'bottle' in Brew. Ecco cosa scavare:

La bottiglia della birra è correlata alla versione di MacOS.

Prendi ad esempio pkg-config.

qui su  https://bintray.com/homebrew/bottles/pkg-config#files/ , elenca diversi file per diverse versioni di MacOS.

Dopo aver scaricato il file corretto, è necessario spostarlo nel percorso corretto che può essere generato da brew --cache --force-bottle pkg-config

per 10.14: è come:

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

per 10.13: è come:

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

successivamente, brew può trovare il file locale memorizzato nella cache durante l'esecuzione  brew install pkg-config. in caso contrario, verrà comunque scaricato da un URL.


spostare semplicemente il file in $ (brew --cache) non funzionerà più, almeno per il brew di oggi (versione 2.19 nel mio caso).


se il file locale è il codice sorgente, non una bottiglia. Spostandolo su $ (brew --cache -s formula) funzionerà se forzerai a installarlo con l'opzione --build-from-source.
Gebitang,

0

Brew ha aggiornato la sua strategia di memorizzazione nella cache, è necessario inserire il file scaricato ~/Library/Caches/Homebrew/downloadse seguire la convenzione di denominazione.

Puoi consentire a brew di avviare il download, quindi vedrai un .incompletefile, ad esempio 544b4d734091aeb6482dbe2496a8ff223d15bc970fa330d3dccbb0bb6fb0e13e--qemu-4.2.0.catalina.bottle.tar.gz.incomplete, quindi puoi rinominare il file in 544b4d734091aeb6482dbe2496a8ff223d15bc970fa330d3dccbb0bb6fb0e13e--qemu-4.2.0.catalina.bottle.tar.gz.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.