Cómo usar Homebrew para instalar el archivo local

16

Estoy tratando de usar Homebrew para instalar wget, pero algo está sucediendo donde la descarga siempre está dañada. Esto sucede para todos los paquetes, no solo para wget. Puedo descargar el tar.gz bien a través de un navegador. ¿Puedo usar Homebrew para instalar un archivo descargado localmente? Algo como:

brew install wget-1.14.tar.gz 
MD6380
fuente
1
Parece muy extraño No sé si puedes hacer eso, pero parece que algo más serio está sucediendo. ¿Has intentado correr brew doctor?
boyfarrell
Si tiene el archivo exacto que Homebrew espera, puede ponerlo en ~ / Library / Caches / Homebrew y luego intentarlo brew install. Pero esto es misterioso. ¿Qué tal publicar la salida de brew installcuando lo intentas de la manera normal?
echristopherson el
@echristopherson Su método funcionó. Si lo publicas como respuesta, lo aceptaré.
MD6380
Sé por qué no funciona. Brew doctor no muestra ningún problema. Parece que el proxy HTTP que se usa no permite la descarga.
MD6380
Solo para tener en cuenta, esto es útil cuando hay múltiples espejos y el que está en la receta no funciona. Puede configurar un espejo de SourceForge diferente a través de una variable de entorno, pero para otros la solución aceptada es muy útil.
Dan

Respuestas:

21

Si Homebrew ya tiene una fórmula para ello (en / usr / local / Library / Formula), y tiene el archivo exacto que la fórmula espera (es decir, el mismo nombre de archivo y el mismo contenido, según lo determinado por SHA1 o cualquier tipo de hash que utilice la fórmula) ), puede colocar el archivo en ~ / Library / Caches / Homebrew y luego intentarlo brew install formula_name(sustituyendo el nombre correcto por nombre_formula , por supuesto).

Echristopherson
fuente
2
HomebrewLa carpeta no existe, pero funciona después de que yo mkdir.
eccstartup
brew installno funcionó para mí, pero lo brew install <package>hizo. ¡Gracias!
Zayne S Halsall
Oh, lo había dejado implícito. Estoy arreglando eso en mi respuesta.
echristopherson
7
$ brew install -f wget-1.14.tar.gz
xuri
fuente
1
Paquete diferente pero el mismo requisito, -f no parece funcionar: 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
el mismo error ocurre
Ben
4

Cinco años y cambio tarde a la fiesta, pero:

El truco es mover el archivo al caché de brew. Dicho caché puede ser difícil de encontrar a mano; Afortunadamente, no tienes que hacerlo. Solo pregúntate cómo prepararlo brew --cache.

Esto le permite hacer lo siguiente en bash:

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

alternativamente, en peces:

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

Después de lo cual, la ejecución brew install wgetdebería dar como resultado que Brew anuncie que está descargando el archivo, seguido inmediatamente de que se da cuenta de que el archivo ya está "descargado", y que todo continúa sin problemas desde allí.

Dan Martinez
fuente
2

Es posible descargar previamente un archivo para una fórmula, pero necesitará el nombre de archivo de caché correcto que se puede generar usando brew --cache -s <formula>.

Por ejemplo, para la fórmula Erlang, brew --cache -s erlangimprimirá el nombre correcto de la descarga en caché. Esto significa que en lugar de renombrar manualmente una fórmula, puede ejecutar:

wget source-version.tar.gz
mv source-version.tar.gz $(brew --cache -s <formula>)
rstml
fuente
Esto funciona para la versión actual de un formulario, pero si quiero reinstalar el nodo 11 en lugar del nodo actual 12, brew --cache -s node todavía me da la ruta para el nodo 12. ¿Sabes cómo puedo forzar a Homebrew a instalar la versión anterior?
John Y
Este es el que funciona con la última versión de preparación 2.2.1
LnxSlck
2

De acuerdo a esto :

No realmente sin modificar el archivo de fórmula.

si su archivo local es un archivo precompilado, también conocido como 'botella' en Brew. Esto es lo que excavo:

La botella de cerveza está relacionada con la versión de MacOS.

Tome pkg-config por ejemplo.

aquí en  https://bintray.com/homebrew/bottles/pkg-config#files/ , enumera diferentes archivos para diferentes versiones de MacOS.

Después de descargar el archivo correcto, debe moverlo a la ruta correcta que puede generar brew --cache --force-bottle pkg-config

para 10.14: es como:

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

para 10.13: es como:

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

después de eso, brew puede encontrar el archivo local en caché cuando ejecuta  brew install pkg-config. de lo contrario, aún se descargará desde una URL.


simplemente mueva el archivo a $ (brew --cache) ya no funcionará, al menos para el brew de hoy (versión 2.19 en mi caso).

gebitang
fuente
si el archivo local es código fuente, no una botella. Moverlo a $ (brew --cache -s formula) funcionará si obliga a instalarlo con la opción --build-from-source.
gebitang
0

Brew actualizó su estrategia de almacenamiento en caché, debe colocar el archivo descargado ~/Library/Caches/Homebrew/downloadsy seguir su convención de nomenclatura.

Puede dejar que brew comience la descarga, luego verá un .incompletearchivo, por ejemplo 544b4d734091aeb6482dbe2496a8ff223d15bc970fa330d3dccbb0bb6fb0e13e--qemu-4.2.0.catalina.bottle.tar.gz.incomplete, luego puede cambiar el nombre de su archivo 544b4d734091aeb6482dbe2496a8ff223d15bc970fa330d3dccbb0bb6fb0e13e--qemu-4.2.0.catalina.bottle.tar.gz.

Piasy
fuente