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.