sha256sumコマンドを使ってダウンロードしたファイルのチェックをしよう

sha256sumコマンドを使うと、ダウンロードしたファイルのチェックができます。他にも md5sum、sha1sumコマンドがあります。

たとえば、PyCharm Community Editionの2016.2.2バージョンは、https://download.jetbrains.com/python/pycharm-community-2016.2.2.tar.gz からダウンロードができます。ここで、このファイルのチェックサムファイルが https://download.jetbrains.com/python/pycharm-community-2016.2.2.tar.gz.sha256 で提供されています。まずは、この2つのファイルをダウンロードしましょう。

$ cat << EOS > download.sh
f=pycharm-community-2016.2.2.tar.gz
url="https://download.jetbrains.com/python/\${f}"
sha256_f="\${f}.sha256"
sha256_url="\${url}.sha256"
curl -L -o \${f} -O \${url}
curl -L -o \${sha256_f} -O \${sha256_url}

EOS
$ sh download.sh

次のような方法で、ファイルのチェックができます。cオプションがチェックで、quietオプションが結果出力を抑制するオプションです。

$ cat << EOS > check.sh
f=pycharm-community-2016.2.2.tar.gz
sha256_f="\${f}.sha256"
sha256sum -c --quiet \${sha256_f}
if [ \$? -ne 0 ]; then
  echo "sha256sum error"
  return
fi
echo "sha256sum OK"

EOS
$ sh check.sh

ちなみに、sha256ファイルを作成するには、sha256sumコマンドをファイルに対して次のように実行します。ここでは、local_pycharm-community-2016.2.2.tar.gz.sha256というファイル名で生成しています。bオプションはバイナリーモードの指定で、こうすると、sha256ファイル内のファイル名に「*」がつきます。bオプションをつけないと、ファイル名に「*」がつきません。

$ cat << EOS > gen_sha256.sh
f=pycharm-community-2016.2.2.tar.gz
sha256_f="\${f}.sha256"
sha256sum -b \${f} > "local_\${sha256_f}"

EOS
$ sh gen_sha256.sh

diffコマンドでpycharm-community-2016.2.2.tar.gz.sha256とlocal_pycharm-community-2016.2.2.tar.gz.sha256とに差分がなければ、ファイルは一致しているということになります。

$ diff \
    pycharm-community-2016.2.2.tar.gz.sha256 \
    local_pycharm-community-2016.2.2.tar.gz.sha256

ちなみに、PyCharmの本には下記があります。

下記でもPyCharmを紹介しています。

同じタグの記事: Linux
同じカテゴリの記事: Linux