はじめに
相変わらず使用言語が定まりません。どうもこんにちは。
Java10 もリリースされたということで、さっそく OpenJDK10 をインストールしてみよう。SDKMAN を使って。
と思ったらエラーが出てうまくいかなかったので、対処法を探したときのメモです。
原因からするとあまり他の方の役にはたたないような気もしますが。。。
問題
下記の方法に従って SDKMAN をインストールしようとしたところ、2つ問題が発生しました。
- 「curl -s "https://get.sdkman.io" | bash」と入力しても動作せず、「curl -s get.sdkman.io | bash」だと動作した
- インストール完了のメッセージが出ているのに、「source "/home/ユーザー名/.sdkman/bin/sdkman-init.sh"」が見つからないとエラーが出る
2.を更に調べると、途中で zip ファイルがダウンロードできていないことがわかりました。
下記に似たような問題が発生しているようでしたが、別にどこかの IP Address をブロックしているわけでもないしなぁ。。と手が止まってしまいました。
https://github.com/sdkman/sdkman-cli/issues/536
原因
一旦 SDKMAN を諦めて、 apt-add-repository で PPA を追加しようとしたときに原因が判明しました。
「sudo add-apt-repository ppa:webupd8team/java」などを実行すると、下記のようなエラーが発生したのです。
Traceback (most recent call last): File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 358, in get_ppa_info ret = get_ppa_info_from_lp(user, ppa) File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 94, in get_ppa_info_from_lp return get_info_from_lp(lp_url) File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 88, in get_info_from_lp return _get_https_content_py3(lp_url) File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 112, in _get_https_content_py3 lp_page = urllib.request.urlopen(request, cafile=LAUNCHPAD_PPA_CERT) File "/usr/lib/python3.6/urllib/request.py", line 213, in urlopen capath=capath) File "/usr/lib/python3.6/ssl.py", line 512, in create_default_context context.load_verify_locations(cafile, capath, cadata) ssl.SSLError: unknown error (_ssl.c:3566) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/bin/add-apt-repository", line 122, inshortcut = shortcut_handler(line) File "/usr/lib/python3/dist-packages/softwareproperties/SoftwareProperties.py", line 864, in shortcut_handler ret = factory(shortcut) File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 430, in shortcut_handler return PPAShortcutHandler(shortcut) File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 387, in __init__ info = get_ppa_info(self.shortcut) File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 370, in get_ppa_info _get_suggested_ppa_message(user, ppa)) File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 327, in _get_suggested_ppa_message lp_user = get_info_from_lp(LAUNCHPAD_USER_API % user) File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 88, in get_info_from_lp return _get_https_content_py3(lp_url) File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 112, in _get_https_content_py3 lp_page = urllib.request.urlopen(request, cafile=LAUNCHPAD_PPA_CERT) File "/usr/lib/python3.6/urllib/request.py", line 213, in urlopen capath=capath) File "/usr/lib/python3.6/ssl.py", line 512, in create_default_context context.load_verify_locations(cafile, capath, cadata) ssl.SSLError: unknown error (_ssl.c:3566)
おや?
どうも、 SDKMAN をインストールする前に「sudo add-apt-repository --remove ppa:webupd8team/java」で追加していた PPA を削除していたのですが、これがまずかったようです。
上記エラーでググったときに出てきた、「ca-certificates」はインストール済みでしたが、再インストールしたことでエラーがでなくなりました。
sudo apt install ca-certificates
PPA 追加と合わせて SDKMAN も問題なくインストールできるようになりました。
あ〜よかったよかった。