今まで使ったことのあるものだけ、雑にまとめておく。
MD5やSHA256など
ハッシュ値のみ
ダウンロードサイトなどでアーカイブのハッシュ値だけが記載されているパターン。
アーカイブをダウンロードしたディレクトリで、以下のコマンドを実行。
# 例) MD5
$ echo "${ハッシュ値} ${アーカイブファイル名}" | md5sum -c - \
ハッシュ値検証ファイル
ダウンロードサイトなどで複数のアーカイブ形式のハッシュ値を一つのファイルにまとめて記載しているパターン。
アーカイブをダウンロードしたディレクトリで、以下のコマンドを実行。
# 例) SHA256 (sha256sumに --ignore-missing が実装されている場合)
$ sha256sum -c {各アーカイブごとのハッシュ値が記載されているファイルのパス} --ignore-missing
# 例) SHA256 (sha256sumに --ignore-missing が実装されていない場合)
$ sha256sum -c {各アーカイブごとのハッシュ値が記載されているファイルのパス} 2>&1 | grep OK
例1) MySQL Connector/C++ source install in Docker image
RUN set -ex; \
key='A4A9406876FCBD3C456770C88C718D3B5072E1F5'; \
gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"
RUN mkdir -p /usr/src/mysql-connector-cpp \
&& curl -fSL https://dev.mysql.com/get/Downloads/Connector-C++/mysql-connector-c++-1.1.9.tar.gz -o mysql-connector-cpp.tar.gz \
&& echo "f262bef7e70178f95ceb72a71f0915f7 mysql-connector-cpp.tar.gz" | md5sum -c - \
&& curl -fSL https://dev.mysql.com/downloads/gpg/?file=mysql-connector-c%2B%2B-1.1.9.tar.gz -o mysql-connector-cpp.tar.gz.asc \
&& gpg --batch --verify mysql-connector-cpp.tar.gz.asc mysql-connector-cpp.tar.gz \
&& tar xf mysql-connector-cpp.tar.gz -C /usr/src/mysql-connector-cpp --strip-components=1 \
&& rm -f mysql-connector-cpp.* \
&& cd /usr/src/mysql-connector-cpp \
&& cmake . && make clean && make -j$(nproc) && make install
例2) CMake source install in Docker image
ENV CMAKE_MINOR_VERSION=v3.7 \
CMAKE_FULL_VERSION=3.7.1
RUN mkdir -p /usr/src/cmake \
&& curl -fSLO https://cmake.org/files/${CMAKE_MINOR_VERSION}/cmake-${CMAKE_FULL_VERSION}.tar.gz \
&& curl -fSLO https://cmake.org/files/${CMAKE_MINOR_VERSION}/cmake-${CMAKE_FULL_VERSION}-SHA-256.txt \
&& sha256sum -c cmake-${CMAKE_FULL_VERSION}-SHA-256.txt 2>&1 | grep OK \
&& tar xf cmake-${CMAKE_FULL_VERSION}.tar.gz -C /usr/src/cmake --strip-components=1 \
&& rm -f cmake-${CMAKE_FULL_VERSION}.* \
&& cd /usr/src/cmake \
&& ./configure && make -j$(nproc) && make install