先日、使用していたubuntuでソフトウェアの更新をしようとしたら、リポジトリ情報の取得に失敗して更新できなくなっていました。
その時に直すのにちょっと詰まったので、修正の手順をメモしておきます。
先日、使用していたUbuntu上で apt-get update で更新しようとしたら、以下のエラーが出てきました。
W: http://dl.google.com/linux/chrome/deb/dists/stable/Release の取得に失敗しました 期待されるエントリ 'main/binary-i386/Packages' が Release ファイル内に見つかり
ません (誤った sources.list エントリか、壊れたファイル)
エラーを見る限り、googleリポジトリの更新時にエラーが出ているようでした。調べてみると先日google-chromeのlinux 32ビット版のサポートが切れた影響のようです。
こちらのブログ記事を参考に、以下のコマンドでリポジトリで取得するのを64ビット限定にすると修正されるとのことでした。
$ sudo sed -i -e 's/deb http/deb [arch=amd64] http/' "/etc/apt/sources.list.d/google-chrome.list"
$ sudo sed -i -e 's/deb http/deb [arch=amd64] http/' "/opt/google/chrome/cron/google-chrome"
ただ、私の環境ではこれだけでは解消しませんでした。調べてみると、そもそもsources.list.d内のgoogleリポジトリ情報のファイル名がgoogle-chrome.listではなく、google.listになっていたので、置き換えのsedコマンドを以下のように変更しました。
$ sudo sed -i -e 's/deb http/deb [arch=amd64] http/' "/etc/apt/sources.list.d/google.list"
なぜ、リポジトリ情報のファイル名が違っていたか気になって調べました。
原因は、最初にchromeをインストールする際に、公式のパッケージファイルから入れるやり方ではなく、リポジトリ情報を自分で書き込み、apt-get経由で入れようとして、その時に参考にした情報源では/etc/apt/sources.list.d/google.listに書き込むようになっていたためでした。
(入れたのが大分前だったので、自分自身がどう入れたかを忘れていました)
自分で最初に違うやり方をしたせいで、うまく行かなかったという自業自得な原因でしたが、無事上記の修正で更新できるようになりました。
ちなみに、今回は自分の入れ方自体の問題でしたが、メモとしてこの問題が発生した環境を以下に記載しておきます。
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.4 LTS"