ROSでチュートリアルをダウンロードしようとすると404エラー


症状

研究でROSを使おうと思いurdfのチュートリアルをapt-getで手に入れようとしたところdebファイルが見つからないと怒られた。

$~/catkin_ws/src$ sudo apt-get install -y ros-kinetic-urdf-tutorial

パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
以下のパッケージはアップグレードされます:
  ros-kinetic-urdf-tutorial
アップグレード: 1 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。
750 kB のアーカイブを取得する必要があります。
この操作後に追加で 0 B のディスク容量が消費されます。
エラー:1 http://packages.ros.org/ros/ubuntu xenial/main amd64 ros-kinetic-urdf-tutorial amd64 0.3.0-1xenial-20190320-182040-0800
  404  Not Found [IP: 2600:3404:200:237::2 80]
E: http://packages.ros.org/ros/ubuntu/pool/main/r/ros-kinetic-urdf-tutorial/ros-kinetic-urdf-tutorial_0.3.0-1xenial-20190320-182040-0800_amd64.deb の取得に失敗しました  404  Not Found [IP: 2600:3404:200:237::2 80]

E: いくつかのアーカイブを取得できません。apt-get update を実行するか --fix-missing オプションを付けて試してみてください。

対処法

最後にapt-get updateしろって書いてあったのでおこなった。

sudo apt-get update

取得:7 http://packages.ros.org/ros/ubuntu xenial InRelease [4,678 B]
エラー:7 http://packages.ros.org/ros/ubuntu xenial InRelease
  公開鍵を利用できないため、以下の署名は検証できませんでした: NO_PUBKEY F42ED6FBAB17C654
4,678 B を 0秒 で取得しました (4,890 B/s)
パッケージリストを読み込んでいます... 完了
W: 署名照合中にエラーが発生しました。リポジトリは更新されず、過去のインデックスファイルが使われます。GPG エラー: http://packages.ros.org/ros/ubuntu xenial InRelease: 公開鍵を利用できないため、以下の署名は検証できませんでした: NO_PUBKEY F42ED6FBAB17C654
W: http://packages.ros.org/ros/ubuntu/dists/xenial/InRelease の取得に失敗しました  公開鍵を利用できないため、以下の署名は検証できませんでした: NO_PUBKEY F42ED6FBAB17C654
W: いくつかのインデックスファイルのダウンロードに失敗しました。これらは無視されるか、古いものが代わりに使われます。

どうやら公開鍵でコケているみたいだったので鍵を消してからもう一度取得してapt-get updateした。

$ sudo apt-key del F42ED6FBAB17C654
OK
$ sudo apt-key adv --keyserver 'hkp://ha.pool.sks-keyservers.net:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
$ sudo apt-get update

そしてもう一度apt-get

$ sudo apt-get install -y ros-kinetic-urdf-tutorial

すると無事に成功した。