仕事で普段あまり使わない ubuntu に java 環境を作ろうとした時のメモ。
ちなみにバージョンは
$ cat /etc/os-release
NAME="Ubuntu"
VERSION="16.10 (Yakkety Yak)"
...
16.10(Yakkety Yak) です。
2018年8月時点で最新は 18.04.1 LTS (Bionic Beaver) のようなので古いですね。
JDK、JRE のインストール自体は
$ sudo apt-get install default-jdk
$ sudo apt-get install default-jre
で済むはずなのですが
$ sudo apt-get install default-jre
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
〜 略 〜
アップグレード: 0 個、新規インストール: 8 個、削除: 0 個、保留: 7 個。
29.5 MB 中 27.6 MB のアーカイブを取得する必要があります。
この操作後に追加で 110 MB のディスク容量が消費されます。
続行しますか? [Y/n] Y
無視:1 http://jp.archive.ubuntu.com/ubuntu yakkety/main amd64 java-common all 0.57ubuntu1
エラー:2 http://jp.archive.ubuntu.com/ubuntu yakkety/main amd64 default-jre-headless amd64 2:1.8-57ubuntu1
404 Not Found
〜 略 〜
E: http://jp.archive.ubuntu.com/ubuntu/pool/main/j/java-common/default-jre_1.8-57ubuntu1_amd64.deb の取得に失敗しました 404 Not Found
E: いくつかのアーカイブを取得できません。apt-get update を実行するか --fix-missing オプションを付けて試してみてください。
のようにエラーになってしまいました。
で、最後のメッセージの通り apt-get update
を試すと
$ sudo apt-get update
無視:1 http://dl.google.com/linux/chrome/deb stable InRelease
ヒット:2 http://dl.google.com/linux/chrome/deb stable Release
取得:3 https://download.docker.com/linux/ubuntu yakkety InRelease [29.5 kB]
〜 略 〜
エラー:14 http://jp.archive.ubuntu.com/ubuntu yakkety Release
404 Not Found
エラー:15 http://jp.archive.ubuntu.com/ubuntu yakkety-updates Release
404 Not Found
エラー:16 http://jp.archive.ubuntu.com/ubuntu yakkety-backports Release
404 Not Found
パッケージリストを読み込んでいます... 完了
E: The repository 'http://security.ubuntu.com/ubuntu yakkety-security Release' does no longer have a Release file.
N: このようなリポジトリから更新を安全に行うことができないので、デフォルトでは更新が無効になっています。
N: リポジトリの作成とユーザ設定の詳細は、apt-secure(8) man ページを参照してください。
E: The repository 'http://jp.archive.ubuntu.com/ubuntu yakkety Release' does no longer have a Release file.
N: このようなリポジトリから更新を安全に行うことができないので、デフォルトでは更新が無効になっています。
N: リポジトリの作成とユーザ設定の詳細は、apt-secure(8) man ページを参照してください。
E: The repository 'http://jp.archive.ubuntu.com/ubuntu yakkety-updates Release' does no longer have a Release file.
N: このようなリポジトリから更新を安全に行うことができないので、デフォルトでは更新が無効になっています。
N: リポジトリの作成とユーザ設定の詳細は、apt-secure(8) man ページを参照してください。
E: The repository 'http://jp.archive.ubuntu.com/ubuntu yakkety-backports Release' does no longer have a Release file.
N: このようなリポジトリから更新を安全に行うことができないので、デフォルトでは更新が無効になっています。
N: リポジトリの作成とユーザ設定の詳細は、apt-secure(8) man ページを参照してください。
のようにこちらもエラー。。。。
原因は古いバージョンの ubuntu のパッケージのリポジトリが変わってしまっている事にあるようです。
archive.ubuntu.com でなく old-releases.ubuntu.com へ取得先を変更する必要があります。
apt のソース設定は /etc/apt/sources.list
なのでこちらを修正します。
$ sudo cp /etc/apt/sources.list /etc/apt/sources.listORG #念のためバックアップ
$ sudo sed -i -e 's/archive.ubuntu.com\|security.ubuntu.com/old-releases.ubuntu.com/g' /etc/apt/sources.list
もし jp のサブドメインのリポジトリを使っている場合は、jp.old-release.ubuntu.com
とかになっていると思います。
このようなドメインは存在しないようなので jp.
を削除します(私はvim
で開いて置換しました)。
これで
$ sudo apt-get update
$ sudo apt-get install default-jdk
$ sudo apt-get install default-jre
して、
$ java -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-8u131-b11-0ubuntu1.16.10.2-b11)
OpenJDK 64-Bit Server VM (build 25.131-b11, mixed mode)
$ javac -version
javac 1.8.0_131
インストール出来ました。
以上です。
JDK/JRE のインストールというよりも apt-get update
のエラー回避がメインになってしまいました。。。
apt-get update
のエラー回避に関しては こちら を参考にさせて頂きました。
ありがとうございます。