Installa il pacchetto Homebrew e ignora l'hash MD5

9

Sto cercando di installare alcuni software usando homebrew e, quando scarichi e provo a installare una delle dipendenze, il pacchetto non verrà installato a causa di una mancata corrispondenza MD5.

È possibile ottenere homebrew per ignorare l'hash MD5 di un file e continuare con l'installazione?

    
posta Pervez Choudhury 15.01.2012 - 14:50
fonte

2 risposte

8

Come un commento lasciato sul tuo OP citato: sarei preoccupato che le somme MD5 non corrispondessero. Potrebbe significare che il tarball che stai scaricando è corrotto, nel qual caso fare il suddetto per sovrascrivere la partita in realtà causerà dei problemi perché installerai degli strumenti danneggiati. Oppure potrebbe non essere affidabile il tarball che stai scaricando, che ti viene dato qualcosa che non è legit e contiene routine potenzialmente dannose. Mi assicurerei che il tuo repository homebrew sia aggiornato:

brew update

Se effettivamente è aggiornato puoi provare:

brew install --force <package>

per forzare l'installazione. Questa opzione di solito impone solo una reinstallazione di un pacchetto già installato della stessa versione, ma potrebbe ignorare un errore MD5. Ho esaminato la routine di installazione in homebrew ma non era evidente che avrebbe funzionato.

Caso peggiore: basta scaricare il tarball per la formula, calcolare l'MD5 manualmente e quindi aggiornare il file Formula con il valore MD5 appropriato per superare il controllo. Ad esempio, se si riscontrano problemi nell'installazione di dos2unix, è possibile trovare il file di formula in /usr/local/Library/Formula/dos2unix.rb . Nella parte superiore del file c'è il tarball e la somma MD5 per esso:

> more dos2unix.rb 
require 'formula'

class Dos2unix < Formula
  url 'http://waterlan.home.xs4all.nl/dos2unix/dos2unix-5.3.1.tar.gz'
  md5 '438c48ebd6891b80b58de14c022ca69e'
  homepage 'http://waterlan.home.xs4all.nl/dos2unix.html'

Se il controllo MD5 non riesce, scarica il tarball:

> wget http://waterlan.home.xs4all.nl/dos2unix/dos2unix-5.3.1.tar.gz
--2012-03-17 18:07:07--  http://waterlan.home.xs4all.nl/dos2unix/dos2unix-5.3.1.tar.gz
Resolving waterlan.home.xs4all.nl... 194.109.6.92, 2001:888:0:18::80
Connecting to waterlan.home.xs4all.nl|194.109.6.92|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 54967 (54K) [application/x-gzip]
Saving to: 'dos2unix-5.3.1.tar.gz'

100%[==============================================================================================================>] 54,967      84.8K/s   in 0.6s    

2012-03-17 18:07:09 (84.8 KB/s) - 'dos2unix-5.3.1.tar.gz' saved [54967/54967]

Calcola il checksum MD5 per il file:

> md5 dos2unix-5.3.1.tar.gz 
MD5 (dos2unix-5.3.1.tar.gz) = 438c48ebd6891b80b58de14c022ca69e

Quindi inserisci il valore calcolato nel file formula per il pacchetto e riesegui il comando di installazione per il pacchetto.

    
risposta data 17.03.2012 - 23:09
fonte
1

Ho avuto lo stesso problema solo pochi minuti fa con una formula che stavo cercando di installare. Ho provato a eseguire l'installazione con il flag --force che tuttavia non ha sovrascritto il controllo MD5 (che ha senso TBH).

Seguendo il consiglio dato da Ian C. nella sua risposta, sono andato avanti e ho fatto il "brew update". Dopo aver finito, sono stato in grado di eseguire l'installazione per la formula che stavo tentando di installare & ha funzionato perfettamente / non c'era più una mancata corrispondenza MD5.

Ecco un collegamento a un problema nel repository Homebrew (questo per quanto riguarda httrack, che era quello che stavo tentando di installare quando ho trovato questo) che sostanzialmente conferma che l'esecuzione di 'brew update' dovrebbe risolvere il problema.

link

Se l'esecuzione di 'brew update' non risolve il problema, allora:

  • A) L'hash MD5 all'interno della formula non è aggiornato e amp; ha bisogno di aggiornamenti.
  • B) Il download non è in realtà ciò che ci si aspetta e qualcosa è effettivamente attivo.

Nel caso di A, puoi aggiornare la formula da te come descritto da Ian C. - sei anche decisamente incoraggiato a inviare una richiesta di pull per aggiornarlo nel repository upstream perché anche tutti ne traggano vantaggio!

Nel caso di B, la formula potrebbe fare riferimento a un vecchio URL o il download potrebbe essere rotto o fare riferimento al file sbagliato, ecc. - in questo caso probabilmente dovrai fare delle ricerche e continuare da lì contattando il proprietario del progetto o simile.

    
risposta data 12.05.2012 - 17:05
fonte

Leggi altre domande sui tag