Instale o pacote Homebrew e ignore o hash md5

9

Estou tentando instalar algum software usando o homebrew e, ao baixar e tentar instalar uma das dependências, o pacote não é instalado devido a uma incompatibilidade do MD5.

É possível fazer com que o homebrew ignore o hash MD5 de um arquivo e continue com a instalação?

Pervez Choudhury
fonte
Você poderia nos dizer qual pacote e se você já atualizou o Homebrew para a versão mais recente?
slhck
Faça o download manual do arquivo md5 filename.extension e edite a edição de fórmula-nome, substitua esse hash md5.
Tuan Anh Tran

Respostas:

8

Como um comentário deixado no seu OP mencionou: Eu ficaria preocupado com o fato de as somas MD5 não corresponderem. Isso pode significar que o arquivo que você está baixando está corrompido; nesse caso, fazer o procedimento acima para substituir a partida, causará problemas, pois você estará instalando ferramentas quebradas. Ou pode ser que o tarball que você está baixando não seja confiável, que esteja recebendo algo que não é legítimo e que contém rotinas potencialmente prejudiciais. Eu garantiria que seu repositório de homebrew esteja atualizado com:

brew update

Se de fato estiver atualizado, você pode tentar:

brew install --force <package>

para forçar a instalação. Essa opção geralmente força apenas a reinstalação de um pacote já instalado da mesma versão, mas pode ignorar um erro MD5. Percorri a rotina de instalação, homebrewmas não era aparente que isso funcionaria.

Pior: você pode simplesmente baixar o tarball da fórmula, calcular o MD5 manualmente e, em seguida, atualizar o arquivo Formula com o valor MD5 apropriado para passar a verificação. Por exemplo, se você estava com problemas para instalar o dos2unix, encontra o arquivo de fórmula em /usr/local/Library/Formula/dos2unix.rb. No topo do arquivo está o tarball e a soma do MD5:

> 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 a verificação MD5 estiver falhando, baixe o 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]

Calcule a soma de verificação MD5 para o arquivo:

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

E, em seguida, insira o valor calculado no arquivo de fórmula do pacote configurável e execute novamente o comando de instalação do pacote configurável.

Ian C.
fonte
11
@NewAlexandria sim, e mencionei as preocupações em fazer isso no primeiro parágrafo da minha resposta.
Ian C.
1

Eu tive o mesmo problema há alguns minutos atrás com uma fórmula que estava tentando instalar. Tentei executar a instalação com o sinalizador --force, no entanto, que não substituiu a verificação MD5 (o que faz sentido TBH).

Seguindo o conselho de Ian C. em sua resposta, fui em frente e executei o 'update brew'. Após o término, consegui executar a instalação da fórmula que estava tentando instalar e funcionou perfeitamente / não havia mais uma incompatibilidade MD5.

Aqui está um link para um problema no repositório Homebrew (este referente ao httrack, que era o que eu estava tentando instalar quando me deparei com isso), que basicamente apenas confirma que a execução de 'atualização de atualização' deve corrigir o problema.

https://github.com/mxcl/homebrew/issues/11242

Se a execução de 'atualização de atualização' não corrigir o problema, então:

  • A) O hash MD5 da fórmula está desatualizado e precisa ser atualizado.
  • B) O download não é realmente o que está sendo esperado e algo está acontecendo.

No caso de A, você também pode atualizar a fórmula como Ian C. descreveu - você também é definitivamente encorajado a enviar uma solicitação de recebimento para atualizá-la no repositório upstream para que todos possam se beneficiar!

No caso de B, a fórmula pode estar referenciando um URL antigo ou o download pode estar quebrado ou o arquivo errado, etc. - nesse caso, você provavelmente precisará fazer alguma pesquisa e continuar a partir daí entrando em contato com o proprietário do projeto ou similar.

Arthur D'Antonio III
fonte