2022年1月9日日曜日

Raspberry Piのapt upgradeでopenjdk-11をダウンロード出来なかったので、手動でダウンロードした


背景

RaspberryPi OS の2021年10月公開版を更新しようとしたところ、jdkがダウンロード出来なくて処理が進まない現象に遭遇しました。
サーバーに問題がありそうな症状でしたが、手動でダウンロードしてファイルを配置したらとりあえずエラーを回避できました。
備忘録を兼ねてやったことを記事に残します。

使ったもの

Raspberry Pi Zero W
Raspberry Piを動かすのに必要な周辺機器(電源、SDカード、操作用PC)
Raspberry Pi OS 2021年10月公開版

現象

下記のコマンドを実行すると、エラーが発生して止まりました。
sudo apt update
sudo apt upgrade -y
Get:1 http://raspbian.raspberrypi.org/raspbian bullseye/main armhf openjdk-11-jdk-headless armhf 11.0.13+8-1~deb11u1 [174 MB]                                                                                     
Err:1 http://raspbian.raspberrypi.org/raspbian bullseye/main armhf openjdk-11-jdk-headless armhf 11.0.13+8-1~deb11u1
Error reading from server. Remote end closed connection [IP: 203.178.132.80 80]
E: Failed to fetch http://ftp.tsukuba.wide.ad.jp/Linux/raspbian/raspbian/pool/main/o/openjdk-11/openjdk-11-jdk-headless_11.0.13+8-1~deb11u1_armhf.deb Error reading from server. Remote end closed connection [IP: 203.178.132.80 80]
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

エラーの内容は http://ftp.tsukuba.wide.ad.jp/Linux/raspbian/raspbian/pool/main/o/openjdk-11/openjdk-11-jdk-headless_11.0.13+8-1~deb11u1_armhf.deb のパッケージをダウンロード出来ないことを意味しています。

upgradeを何度行っても、先に進まず困りました。

対応: wgetでダウンロードしてaptのファイル置き場に配置する

aptは /var/cache/apt/archives/ にdebファイルを置いています。
そのファイルをaptに頼らずにダウンロードして置いておけば、それはダウンロード済みと認識して処理が先に進みます。

今回のopenjdk-11に関するパッケージは下記のコマンドでダウンロードと配置を行いました。
cd /tmp
wget http://ftp.tsukuba.wide.ad.jp/Linux/raspbian/raspbian/pool/main/o/openjdk-11/openjdk-11-jdk-headless_11.0.13+8-1~deb11u1_armhf.deb
sudo mv openjdk-11-jdk-headless_11.0.13+8-1~deb11u1_armhf.deb /var/cache/apt/archives/

ダウンロード出来なかったファイルがあれば、upgradeの処理が進むと思います。
sudo apt upgrade -y

試したものの効果が無かったこと

エラー情報に示されているfix-missing付きのupdateコマンドは効果がありませんでした。
sudo apt update --fix-missing

ファイルが壊れているからダウンロードを続けられないのかと思いキャッシュを消去してみましたが、効果がありませんでした。
sudo apt clean

考察: tukubaのサーバーの連続通信時間が短い?

wgetでファイルをダウンロード出来ましたが、頻繁に再接続が行われていました。
ftp.tsukuba.wide.ad.jpの通信時間の設定が適切でないのかもしれません。
wget http://ftp.tsukuba.wide.ad.jp/Linux/raspbian/raspbian/pool/main/o/openjdk-11/openjdk-11-jdk-headless_11.0.13+8-1~deb11u1_armhf.deb
--2022-01-09 05:44:05--  http://ftp.tsukuba.wide.ad.jp/Linux/raspbian/raspbian/pool/main/o/openjdk-11/openjdk-11-jdk-headless_11.0.13+8-1~deb11u1_armhf.deb                                                        
Resolving ftp.tsukuba.wide.ad.jp (ftp.tsukuba.wide.ad.jp)... 203.178.132.80, 2001:200:0:7c06::9393
Connecting to ftp.tsukuba.wide.ad.jp (ftp.tsukuba.wide.ad.jp)|203.178.132.80|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 174077600 (166M) [application/x-debian-package]
Saving to: 'openjdk-11-jdk-headless_11.0.13+8-1~deb11u1_armhf.deb'

openjdk-11-jdk-headless_11.0.13+8-1~deb11u1_armhf.de 7%[=======> ] 12.25M 453KB/s in 30s

2022-01-09 05:44:35 (423 KB/s) - Connection closed at byte 12846214. Retrying.

--2022-01-09 05:44:36-- (try: 2) http://ftp.tsukuba.wide.ad.jp/Linux/raspbian/raspbian/pool/main/o/openjdk-11/openjdk-11-jdk-headless_11.0.13+8-1~deb11u1_armhf.deb
Connecting to ftp.tsukuba.wide.ad.jp (ftp.tsukuba.wide.ad.jp)|203.178.132.80|:80... connected.
HTTP request sent, awaiting response... 206 Partial Content
Length: 174077600 (166M), 161231386 (154M) remaining [application/x-debian-package]
Saving to: 'openjdk-11-jdk-headless_11.0.13+8-1~deb11u1_armhf.deb'

openjdk-11-jdk-headless_11.0.13+8-1~deb11u1_armhf.de 34%[++++++++===============================> ] 56.45M 195KB/s in 81s

2022-01-09 05:45:57 (562 KB/s) - Connection closed at byte 59195820. Retrying.

--2022-01-09 05:45:59-- (try: 3) http://ftp.tsukuba.wide.ad.jp/Linux/raspbian/raspbian/pool/main/o/openjdk-11/openjdk-11-jdk-headless_11.0.13+8-1~deb11u1_armhf.deb
Connecting to ftp.tsukuba.wide.ad.jp (ftp.tsukuba.wide.ad.jp)|203.178.132.80|:80... connected.
HTTP request sent, awaiting response... 206 Partial Content
Length: 174077600 (166M), 114881780 (110M) remaining [application/x-debian-package]
Saving to: 'openjdk-11-jdk-headless_11.0.13+8-1~deb11u1_armhf.deb'

openjdk-11-jdk-headless_11.0.13+8-1~deb11u1_armhf.de 36%[++++++++++++++++++++++++++++++++++++++++=> ] 60.21M 363KB/s in 17s

2022-01-09 05:46:16 (226 KB/s) - Connection closed at byte 63140602. Retrying.

--2022-01-09 05:46:19-- (try: 4) http://ftp.tsukuba.wide.ad.jp/Linux/raspbian/raspbian/pool/main/o/openjdk-11/openjdk-11-jdk-headless_11.0.13+8-1~deb11u1_armhf.deb
Connecting to ftp.tsukuba.wide.ad.jp (ftp.tsukuba.wide.ad.jp)|203.178.132.80|:80... connected.
HTTP request sent, awaiting response... 206 Partial Content
Length: 174077600 (166M), 110936998 (106M) remaining [application/x-debian-package]
Saving to: 'openjdk-11-jdk-headless_11.0.13+8-1~deb11u1_armhf.deb'

openjdk-11-jdk-headless_11.0.13+8-1~deb11u1_armhf.de 57%[++++++++++++++++++++++++++++++++++++++++++========================> ] 95.48M 317KB/s in 73s

2022-01-09 05:47:33 (495 KB/s) - Connection closed at byte 100116778. Retrying.

--2022-01-09 05:47:37-- (try: 5) http://ftp.tsukuba.wide.ad.jp/Linux/raspbian/raspbian/pool/main/o/openjdk-11/openjdk-11-jdk-headless_11.0.13+8-1~deb11u1_armhf.deb
Connecting to ftp.tsukuba.wide.ad.jp (ftp.tsukuba.wide.ad.jp)|203.178.132.80|:80... connected.
HTTP request sent, awaiting response... 206 Partial Content
Length: 174077600 (166M), 73960822 (71M) remaining [application/x-debian-package]
Saving to: 'openjdk-11-jdk-headless_11.0.13+8-1~deb11u1_armhf.deb'

openjdk-11-jdk-headless_11.0.13+8-1~deb11u1_armhf.de 58%[+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=> ] 97.79M 239KB/s in 9.9s

2022-01-09 05:47:47 (239 KB/s) - Connection closed at byte 102535280. Retrying.

--2022-01-09 05:47:52-- (try: 6) http://ftp.tsukuba.wide.ad.jp/Linux/raspbian/raspbian/pool/main/o/openjdk-11/openjdk-11-jdk-headless_11.0.13+8-1~deb11u1_armhf.deb
Connecting to ftp.tsukuba.wide.ad.jp (ftp.tsukuba.wide.ad.jp)|203.178.132.80|:80... connected.
HTTP request sent, awaiting response... 206 Partial Content
Length: 174077600 (166M), 71542320 (68M) remaining [application/x-debian-package]
Saving to: 'openjdk-11-jdk-headless_11.0.13+8-1~deb11u1_armhf.deb'

openjdk-11-jdk-headless_11.0.13+8-1~deb11u1_armhf.de 75%[+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++===================> ] 126.00M 251KB/s in 68s

2022-01-09 05:48:59 (428 KB/s) - Connection closed at byte 132116528. Retrying.

--2022-01-09 05:49:05-- (try: 7) http://ftp.tsukuba.wide.ad.jp/Linux/raspbian/raspbian/pool/main/o/openjdk-11/openjdk-11-jdk-headless_11.0.13+8-1~deb11u1_armhf.deb
Connecting to ftp.tsukuba.wide.ad.jp (ftp.tsukuba.wide.ad.jp)|203.178.132.80|:80... connected.
HTTP request sent, awaiting response... 206 Partial Content
Length: 174077600 (166M), 41961072 (40M) remaining [application/x-debian-package]
Saving to: 'openjdk-11-jdk-headless_11.0.13+8-1~deb11u1_armhf.deb'

openjdk-11-jdk-headless_11.0.13+8-1~deb11u1_armhf.de 100%[+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++============================>] 166.01M 1.50MB/s in 60s

2022-01-09 05:50:05 (682 KB/s) - 'openjdk-11-jdk-headless_11.0.13+8-1~deb11u1_armhf.deb' saved [174077600/174077600]

終わり

apt upgradeでダウンロード出来なかったファイルをwgetでダウンロードしてから配置したことで、apt upgradeの処理を進められました。

参考

Raspberry Pi Raspbianでapt-getがうまくいかないときの対処法
How to Clear Apt Cache

0 件のコメント :