Установите пакет Homebrew и проигнорируйте хэш md5

9

Я пытаюсь установить программное обеспечение с помощью homebrew, и при загрузке и попытке установить одну из зависимостей пакет не будет установлен из-за несоответствия MD5.

Можно ли заставить homebrew игнорировать MD5-хеш файла и продолжить установку?

Первез Чоудхури
источник
Не могли бы вы рассказать нам, какой пакет, и если вы уже обновили Homebrew до последней версии?
slhck
Загрузите вручную, md5 filename.extension и brew edit Form-name, замените этот хэш md5 там.
Туан Ань Чан

Ответы:

8

В одном из комментариев к вашему OP было упомянуто: «Меня беспокоит, что суммы MD5 не совпадают. Это может означать, что загружаемый вами архив поврежден, и в этом случае выполнение вышеуказанного действия для переопределения совпадения действительно вызовет у вас проблемы, поскольку вы будете устанавливать сломанные инструменты. Или это может быть связано с тем, что загружаемому архиву нельзя доверять, что вам дают что-то недопустимое и содержит потенциально опасные процедуры. Я бы позаботился о том, чтобы ваш репозиторий homebrew был в курсе:

brew update

Если это действительно так, вы можете попробовать:

brew install --force <package>

форсировать установку. Эта опция обычно просто переустанавливает уже установленный пакет той же версии, но может игнорировать ошибку MD5. Я попробовал выполнить процедуру установки, homebrewно не было очевидно, что это сработает.

В худшем случае: вы можете просто скачать tarball для формулы, вычислить MD5 для нее вручную, а затем обновить файл формулы с соответствующим значением MD5, чтобы пройти проверку. Например, если у вас возникли проблемы с установкой dos2unix, вы найдете файл формулы в /usr/local/Library/Formula/dos2unix.rb. В верхней части файла находится тарбол и сумма 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'

Если проверка MD5 не удалась, загрузите 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]

Рассчитайте контрольную сумму MD5 для файла самостоятельно:

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

Затем введите значение, которое вы вычислили, в файл формулы для пакета и повторно запустите команду установки для пакета.

Ян С.
источник
1
@NewAlexandria да, и я упоминаю проблемы с этим в первом параграфе моего ответа.
Ян С.
1

У меня была такая же проблема всего несколько минут назад с формулой, которую я пытался установить. Я попытался запустить установку с флагом --force, однако это не отменяло проверку MD5 (что имеет смысл TBH).

Следуя совету, данному Яном С. в его ответе, я продолжил и выполнил «brew update». После того, как это закончилось, я смог запустить установку для формулы, которую пытался установить, и она работала отлично / больше не было несоответствия MD5.

Вот ссылка на проблему в репозитории Homebrew (эта касается httrack, которую я пытался установить, когда натолкнулся на это), которая в основном только подтверждает, что запуск «brew update» должен решить вашу проблему.

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

Если запуск «brew update» не решает проблему, то либо:

  • A) MD5-хэш в формуле устарел и нуждается в обновлении.
  • Б) Загрузка на самом деле не то, что ожидается, и что-то действительно происходит.

В случае с А вы можете обновить формулу самостоятельно, как описал Иан С. - вам также определенно рекомендуется отправить запрос на извлечение, чтобы обновить его в репозитории в восходящем потоке, чтобы все тоже могли получить выгоду!

В случае B формула может ссылаться на старый URL, или загрузка может быть прервана, или ссылка на неправильный файл и т. Д. - в этом случае вам, вероятно, придется провести некоторое исследование и продолжить с этого, связавшись с владельцем проекта. или похожие.

Артур Д'Антонио III
источник