Cuando corro:
tar -zxvf john-1.7.0.2.tar.gz
Entiendo esto:
gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now
Debería comenzar a desempacar.
Algunas personas me dijeron que no usara el z
pero obtengo el mismo error.
Es un archivo que descargué de esta manera:
wget http://openwall.com/john/f/john-1.7.0.2.tar.gz
john-1.7.0.2.tar.gz: HTML document, ASCII text, with very long lines
Respuestas:
Diagnosticar un archivo descargado del tipo incorrecto
Como dice steeldriver , esto significa que el archivo no es realmente un archivo tar comprimido, ni ningún tipo de archivo comprimido, a pesar de ser nombrado como tal.
Cuando descarga un archivo
wget
, a menudo hay indicios de que ha terminado obteniendo un tipo de archivo diferente al que estaba buscando:En este caso, los principales signos son:
301 Moved Permanently
mensaje, redirigiendo a una dirección con un final/
. Esto carga la página predeterminada para algún directorio en el servidor, que generalmente esindex.html
y casi siempre un archivo HTML.Length: unspecified [text/html]
, diciéndole que está recibiendo texto sin formato (text
) y que está destinado a ser interpretado comohtml
. Esto es realmente más que una señal: puede estar bastante seguro de que no ha obtenido un archivo comprimido real basado en esto.También puede usar la
file
utilidad, que examina un archivo y le dice qué tipo de archivo parece ser:Y, por supuesto, se puede examinar el archivo usted mismo, con herramientas como
head
,less
yview
:Si esto fuera realmente un archivo binario, entonces habría obtenido un montón de basura sin sentido, ya que el buscapersonas o el visor que usa infructuosamente intenta interpretar algo como texto sin formato que realmente no lo es. Por ejemplo, en el archivo correcto:
(Solo he copiado el principio de eso).
Conseguir el archivo correcto
Eso le dice cómo averiguar qué salió mal en estas situaciones (y en este caso, en particular). Pero, ¿cómo encuentras y descargas el archivo correcto ?
Esto varía de una situación a otra. Sin embargo, un buen comienzo es:
Vaya al sitio web oficial del software y vea si ofrecen enlaces de descarga. Incluso si así es como obtuvo el enlace que está utilizando originalmente, si ha pasado algún tiempo, puede encontrar que el enlace ha cambiado.
Por ejemplo, en este caso particular, la versión actual es 1.8.0 en lugar de 1.7.0.2 (y se proporciona en el
j
subdirectorio en lugar def
), y la versión anterior ya no está disponible en la misma URL.Vaya a la página a la que fue redirigido cuando descargó el archivo. En este caso, eso es: http://www.openwall.com/john/
O incluso puede examinar el archivo que se descargó. (O bien, abra que en un navegador web.)
Te redireccionaron a la página de descarga principal del software . Puede descargar en un navegador web o copiar un enlace de descarga actual correcto y descargarlo con
wget
. Hay algunas opciones, pero suponiendo que en realidad no necesita esa versión específica de edad que estaba tratando de descarga, y con base en el archivo específico que hizo intento de descarga, que sospechan http://openwall.com/john/j/ john-1.8.0.tar.gz es lo que estás buscando.Por supuesto, los lectores que encuentren esta publicación más tarde pueden encontrar que el enlace ya no funciona. Pero el enfoque demostrado aquí para solucionar este tipo de problema seguirá siendo válido.
He descargado el archivo. Tenga en cuenta que, esta vez, no se produjo una redirección no deseada y el tipo se da como en
application/x-tar
lugar detext/html
.(Una redirección HTTP no siempre es mala. Es cuando te redirigen a algo que no parece ser realmente el archivo que estás buscando y debes sospechar que tu descarga realmente no ha tenido éxito).
file
acepta:Y se desempaqueta con éxito:
(Tiene razón en que no importa si usa el
z
; todavía habría funcionadotar xzf
, ya que este es el archivo correcto).Puede proceder a compilar el código fuente e instalarlo.
Recuerde, no siempre tiene que construir desde la fuente
A veces realmente quieres la última versión de un programa, y no está en los repositorios de Ubuntu. Puede intentar encontrar un PPA, pero si no encuentra ninguno en el que realmente confíe o que le brinde lo que desea, o si desea construirlo con opciones personalizadas, o simplemente le guste construir desde el código fuente, luego construir desde El código fuente es una técnica valiosa y útil.
Sin embargo, recomiendo verificar al menos el software que está disponible en los repositorios oficiales de Ubuntu para su sistema. En mi sistema 16.04:
Hay varias otras formas de buscar paquetes. A menudo es útil usar la página web de Búsqueda de paquetes de Ubuntu .
Como iba a intentar instalar la versión 1.7.0.2, presumiblemente la versión 1.8.0 en los repositorios oficiales es lo suficientemente reciente. (De hecho, 1.8.0 parece ser la misma versión que la que se proporciona para descargar desde el sitio web oficial). Por lo tanto, es posible que desee instalar eso:
fuente