Ubuntu 16.04でembulk selfupdate
が動かないという現象があるということなので調べました。
(詳細はこちら、https://github.com/embulk/embulk/issues/461)
普段Ubuntuを使っていないので、こうすればいいよという方法がありましたら是非教えてください。
まとめ
- Ubuntu 16.04上で、embulk selfupdateが動かない(場合があるようです)
- 次のコマンドを実行すれば大丈夫のようです。
sudo curl -o /usr/local/share/ca-certificates/GTEGlRoot.crt https://www.cybertrust.ne.jp/sureserver/download/root_ca/GTEGlRoot.txt
sudo update-ca-certificates
疑問
本題とは関係ありませんが、、、
- Ubuntuをご利用の方、他の環境でも起きてますよね?
- curlはなんでエラーにならないんでしょか?
バージョン情報
lsb_release -a
- Distributor ID: Ubuntu
- Description: Ubuntu 16.04.1 LTS
- Release: 16.04
- Codename: xenial
不具合の確認、再現手順
Ubuntuの設定
次のVagrantファイルを作成し、vagrant up
を実行します。
Vagrant.configure(2) do |config|
config.vm.box = "ubuntu/xenial64"
config.vm.provision "shell", inline: <<-SHELL
sudo apt-get update
sudo apt-get install -y openjdk-8-jdk
SHELL
end
vagrant ssh
でログインをしたのちembulkのインストールを行います。
Embulkの導入
curl --create-dirs -o ~/.embulk/bin/embulk -L "http://dl.embulk.org/embulk-latest.jar"
chmod +x ~/.embulk/bin/embulk
echo 'export PATH="$HOME/.embulk/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
8/16現在の最新版がインストールされました。
embulk --version
embulk 0.8.13
embulk selfupdateの実行
embulk selfupdate x.y.z
を実行して指定したバージョンに下げます。
(バージョンを下げる必要はないのですが、最新版でembulk selfupdateしても現象が出ないので、バージョンを下げて現象を確認します。)
コマンドを実行すると、OpenSSL::SSL::SSLError: certificate verify failed
というエラーが出ました。
embulk selfupdate 0.8.12
2016-08-16 08:44:47.120 +0000: Embulk v0.8.13
Checking version 0.8.12...
Found version 0.8.12.
Downloading https://dl.bintray.com/embulk/maven/embulk-0.8.12.jar ...
OpenSSL::SSL::SSLError: certificate verify failed
connect_nonblock at org/jruby/ext/openssl/SSLSocket.java:225
connect at uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/net/http.rb:938
do_start at uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/net/http.rb:868
start at uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/net/http.rb:857
open_http at uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/open-uri.rb:319
buffer_open at uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/open-uri.rb:737
block in open_loop at uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/open-uri.rb:212
catch at org/jruby/RubyKernel.java:1103
open_loop at uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/open-uri.rb:210
open_uri at uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/open-uri.rb:151
block in selfupdate at /home/ubuntu/.embulk/bin/embulk!/embulk/command/embulk_selfupdate.rb:56
open at org/jruby/RubyIO.java:1131
selfupdate at /home/ubuntu/.embulk/bin/embulk!/embulk/command/embulk_selfupdate.rb:54
run at /home/ubuntu/.embulk/bin/embulk!/embulk/command/embulk_run.rb:279
<top> at /home/ubuntu/.embulk/bin/embulk!/embulk/command/embulk_main.rb:2
require at org/jruby/RubyKernel.java:944
(root) at uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:1
<top> at file:/home/ubuntu/.embulk/bin/embulk!/embulk/command/embulk_bundle.rb:51
解決方法
次のコマンドを実行します。
sudo curl -o /usr/local/share/ca-certificates/GTEGlRoot.crt https://www.cybertrust.ne.jp/sureserver/download/root_ca/GTEGlRoot.txt
sudo update-ca-certificates
実行結果
% sudo curl -o /usr/local/share/ca-certificates/GTEGlRoot.crt https://www.cybertrust.ne.jp/sureserver/download/root_ca/GTEGlRoot.txt
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 890 100 890 0 0 3904 0 --:--:-- --:--:-- --:--:-- 3920
% sudo update-ca-certificates
Updating certificates in /etc/ssl/certs...
1 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
Adding debian:GTEGlRoot.pem
done.
done.
再実行
今度は大丈夫になりました。めでたしめでたし。
embulk selfupdate 0.8.12
2016-08-16 08:48:30.651 +0000: Embulk v0.8.13
Checking version 0.8.12...
Found version 0.8.12.
Downloading https://dl.bintray.com/embulk/maven/embulk-0.8.12.jar ...
Updated to 0.8.12.