4 votos

Homebrew: SHA1 Desajuste incluso después de la actualización

  • Mac OS X 10.7.4 (Lion)
  • Homebrew 0.9.2

Una nueva instalación de Homebrew. Ningún programa se instalará por sí solo, la firma de hachís esperada nunca coincide con la real, por la razón que sea.

La única respuesta que he encontrado en línea es hacer brew update de antemano. Hice esto, y borré el paquete descargado previamente, pero no parece tener ningún efecto:

 $ brew update
 Already up-to-date.
 $ brew install sshfs
 ==> Installing sshfs dependency: autoconf
 ==> Downloading http://ftpmirror.gnu.org/autoconf/autoconf-2.69.tar.gz
 ######################################################################## 100.0%
 Error: SHA1 mismatch
 Expected: 562471cbcb0dd0fa42a76665acf0dbb68479b78a
 Actual: 304f244353d8b7694914ff42fa87f31608728aed
 Archive: /Library/Caches/Homebrew/autoconf-2.69.tar.gz
 (To retry an incomplete download, remove the file above.)

¿Qué es lo que pasa?

Edita : Si descargo un paquete manualmente, y lo pongo en /Library/Caches/Homebrew/ con el mismo nombre de archivo que Homebrew espera, y luego intenta instalarlo, funciona bien. Pero si dejo que Homebrew intente recuperar el archivo, la descarga termina prematuramente después de unos pocos kilobytes, lo que corrompe el archivo y hace que los hashes no coincidan.

5voto

shsteimer Puntos 8749

Si estás seguro de que el tarball descargado para sshfs es bueno puede tratar de forzar a Homebrew a instalarlo con:

brew install -f sshfs

Pero lo más probable, si todavía se queja, es que tengas una descarga de tarball corrupta. Puedes eliminar /usr/local/Cellar/sshfs/2.4.0/sshfs_2_4_0 que es la bola de alquitrán almacenada que Homebrew descargó, y que Homebrew intente descargar el paquete de nuevo.

Si todavía se queja de la falta de coincidencia de los valores de hash, puede editar la receta y actualizar la suma de comprobación MD5 del archivo de la receta y luego instalarla. El archivo a editar es /usr/local/Library/Formula/sshfs.rb . Mirando:

/Users/ian/code/tmp/brew [ian@Ian-Chesals-MacBook-Pro] [13:13]
> cat /usr/local/Library/Formula/sshfs.rb
require 'formula'

class Sshfs < Formula
  homepage 'http://fuse.sourceforge.net/sshfs.html'
  url 'https://github.com/fuse4x/sshfs/tarball/sshfs_2_4_0'
  md5 'c9ea547b9684ec4d85437393a2731322'
  version '2.4.0'

  depends_on :automake
  depends_on :libtool

  depends_on 'pkg-config' => :build
  depends_on 'fuse4x'
  depends_on 'glib'

  def install
    system "autoreconf", "--force", "--install"
    system "./configure", "--disable-debug", "--disable-dependency-tracking",
                          "--prefix=#{prefix}"
    system "make install"
  end

  def caveats; <<-EOS.undent
    Make sure to follow the directions given by `brew info fuse4x-kext`
    before trying to use a FUSE-based filesystem.
    EOS
  end
end

Puedes ver que necesitas descargar https://github.com/fuse4x/sshfs/tarball/sshfs_2_4_0 y recalcular la suma de comprobación MD5 para el archivo y luego actualizar la receta. Así que..:

/Users/ian/code/tmp/brew [ian@Ian-Cs-MacBook-Pro] [13:13]
> wget https://github.com/fuse4x/sshfs/tarball/sshfs_2_4_0
--2012-07-23 13:13:53--  https://github.com/fuse4x/sshfs/tarball/sshfs_2_4_0
Resolving github.com... 207.97.227.239
Connecting to github.com|207.97.227.239|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://nodeload.github.com/fuse4x/sshfs/tarball/sshfs_2_4_0 [following]
--2012-07-23 13:13:53--  https://nodeload.github.com/fuse4x/sshfs/tarball/sshfs_2_4_0
Resolving nodeload.github.com... 207.97.227.252
Connecting to nodeload.github.com|207.97.227.252|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 52812 (52K) [application/octet-stream]
Saving to: `sshfs_2_4_0'

100%[===========================================================================================>] 52,812       288K/s   in 0.2s    

2012-07-23 13:13:54 (288 KB/s) - `sshfs_2_4_0' saved [52812/52812]

/Users/ian/code/tmp/brew [ian@Ian-Cs-MacBook-Pro] [13:13]
> md5 sshfs_2_4_0 
MD5 (sshfs_2_4_0) = c9ea547b9684ec4d85437393a2731322

En mi caso, el valor calculado para la descarga coincide con el valor de la receta. Si es diferente para tu caso es probable que tu descarga esté corrupta. Puedes seguir adelante y actualizar la receta si crees que tu descarga no está corrupta.

Nota: Hice un brew update antes de ejecutar lo anterior para que pueda atestiguar el hecho de que tengo la última receta para sshfs y que la suma de comprobación MD5 de la bola de alquitrán en la receta es correcta y coincide con lo que se descarga de github.

Caveat Utilizador si haces esto.

2voto

rixtertech Puntos 21

OK, resulta que el problema no era con Homebrew, sino con cURL, que sólo descargaba 2 KB de cualquier archivo que le lanzara y luego fallaba. Pude arreglar esto instalando la última versión de cURL.

Medidas tomadas para resolver:

  1. Abierto http://curl.haxx.se/download/curl-7.27.0.tar.gz en un navegador web, guardado en /Library/Caches/Homebrew/ .
  2. Ran brew install curl .
  3. Cada vez que tenía un desajuste de hachís al descargar una dependencia, volvía a hacer los pasos 1 y 2, reemplazando la ubicación del paquete cURL por la que aparece en la salida de la consola de la dependencia respectiva.
  4. Por defecto, OS X utiliza /usr/bin/curl mientras que la versión homebrew aparentemente vivía en /usr/local/Cellar/curl/7.27.0/bin/curl . Que en realidad debería haber sido vinculado como /usr/local/bin/curl pero no fue por alguna razón brew link curl fijó que aunque (puede haber tenido que repetir para las dependencias).
  5. Sin embargo, Homebrew aparentemente tiene la filosofía de que es deseable usar siempre los binarios de Apple por defecto del sistema si están disponibles. No fue en mi caso, así que seguí este consejo y añadió export PATH=/usr/local/bin:$PATH a mi perfil de bateo, para hacer lo contrario, y siempre usar primero los binarios homebrew, a pesar de las repercusiones de borde sangriento que puedan tener.
  6. brew update .
  7. brew install sshfs -¡Éxito!

Muchas gracias a Ian C. por tomarse el tiempo para charlar conmigo y orientarme en la dirección correcta.

1voto

HolyGenius Puntos 11

Tuvo un problema similar cuando trató de instalar sdl_image (brew install sdl_image)

brew install sdl_image
==> Downloading http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.1
######################################################################## 100.0%
Error: SHA1 mismatch
Expected: 5e3e393d4e366638048bbb10d6a269ea3f4e4cf2
Actual: 96553a2470b51f5cca98d9c390c56bacd12f8ed4

Sin embargo, lo hice funcionar después de darme cuenta de que estaba detrás de un servidor que pone a cero/romper los archivos si exceden un cierto tamaño y por lo tanto se corrompen. Lo solucioné moviéndome a otra red e intentando reinstalarlo. Aunque tuve el mismo error, supe que el archivo estaba completo porque el sha esperado, dados los errores anteriores, ahora estaba en el sha actual.

Entonces para completar con éxito como me encontré tratando de resolver el problema fue brew edit sdl_image y copiar el sha actual al sha del archivo.

1voto

Mark Miller Puntos 11

Tuve un problema similar con el zlib-1.2.8. La causa principal fue que tenía un .curlrc archivo que especificó --compressed y esa opción hace que Curl descomprima el archivo antes de escribirlo.

Quitar la opción arregló el problema para mí, pero no sé si hay una solución mejor disponible.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X