Eu baixei este instalador e dei uma olhada. Aqui estão os trechos de código relevantes:
#!/bin/bash
MD5=1fe8463da9322ad9c966a57b92569a52
# The required tools:
SED=sed
MD5SUM=md5sum
CUT=cut
DATA="$SED -e '1,/^__DATA__$/d' '$0'"
# Check archive integrity:
test 'eval $DATA | $MD5SUM | $CUT -d " " -f 1' = $MD5 || {
echo "Checksum error in '$0'" >&2
exit 1
}
# ...
exit 0
# Everything after the next line is a .tar.bz2 file
__DATA__
[a binary blob finishes the file]
Isso executa sed -e '1,/^__DATA__$/d'
no próprio script, que exclui todas as linhas do início (linha 1) para a linha __DATA__
, deixando apenas o binário para trás. O binário é então executado através de md5sum
para obter a soma de verificação, cut
então formata para conter apenas a soma de verificação (sem nome de arquivo), e então é comparado à soma de verificação embutida no script anterior.
A instrução test
retorna true quando o MD5 corresponde e false quando não corresponde. O ||
produz um curto-circuito quando o teste é verdadeiro, o que significa que ele interrompe a avaliação. A sub-rotina entre colchetes só será executada quando o teste for falso.
Como você provavelmente não tocou (intencionalmente) nada depois dessa __DATA__
linha, provavelmente é culpa do seu editor de texto. Eu suspeito que ele adicionou um espaço ou uma linha em branco ou converteu entre os formatos de linha DOS e UNIX ( saiba mais sobre novas linhas na Wikipedia ) .
Outra possibilidade é que o download falhou e você tem um arquivo corrompido. Se isso não for um problema, simplesmente remova a linha exit 1
dessa sub-rotina de teste do MD5 e o instalador deve funcionar bem.
(Este script não está bem escrito, por isso não me surpreende que você tenha que modificá-lo para que funcione.)