Debian GNU/HurdでaptからMercurialをインストールして、Goをダウンロードしようとしたらエラーになりました。
# hg clone https://go.googlecode.com/hg/ go abort: error: EOF occurred in violation of protocol
httpsではなくhttpだとダウンロードできたため、OpenSSLがうまく機能していないようです。調べた結果、Hurdには/dev/randomがないため乱数が生成できずにエラーになっていました。/dev/randomを作成すればダウンロードできました。作成方法はカーネルをいじらずにサーバーをセットする方式で、マイクロカーネル的だと思いました。
作成方法
Hurd Installation Guideのsshの項目に載っていました。
wget http://kilobug.free.fr/hurd/random-64.tar.gz tar xvzf random-64.tar.gz cp random/random /hurd settrans -c /dev/random /hurd/random --seed-file /var/run/random-seed --secure settrans -c /dev/urandom /hurd/random --seed-file /var/run/urandom-seed --fast chmod 0644 /dev/random /dev/urandom
エラー調査
参考までに、エラーの原因が/dev/randomだと分かった経緯を書いておきます。
httpsが通らないことから、証明書関係かなと思って、aptでssl-certをインストールしようとしました。すると以下のようなエラーが出ました。
# apt-get install ssl-cert (中略) Generating a 1024 bit RSA private key 3525:error:24064064:random number generator:SSLEAY_RAND_BYTES:PRNG not seeded:md _rand.c:517:You need to read the OpenSSL FAQ, http://www.openssl.org/support/faq .html 3525:error:04081003:rsa routines:RSA_BUILTIN_KEYGEN:BN lib:rsa_gen.c:210: dpkg: error processing ssl-vert (--configure): subprocess installed post-installation script returned error exit status 1 Errors were encountered while processing: ssl-vert E: Sub-process /usr/bin/dpkg returned an error code (1)
"random number generator"のエラーを調べると/dev/randomが関係しているようなので、見ると存在していませんでした。作成方法を調べて作成すればssl-certは無事にインストールできました。