この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。
Kali Linuxは、セキュリティ診断用ツールが標準で用意されている、Linuxディストリビューションです。Version(2016.1)を導入直後は、パッケージを最新に更新したいところです。iso版は2016.2が直接ダウンロード出来るようになりましたが、仮想マシン版や以前インストールしたものからapt-get updateと入力してもエラーで実行できない場合があるので、解決方法を試してみました。
はじめに
今回、紹介する方法は、自分が検証環境で行った、少々強引にAPTを修正する方法ですで、テスト環境を用意する、バックアップを取ってからなど十分注意して行ってください。
また、公開時点での暫定的な方法であり、初期ダウンロード、リポジトリ、パッケージなどの状態により、変更される可能性があります。
エラーの内容
Kali Linux(2016.1)を導入し、パッケージの更新のため端末にコマンドを入力、下記のようにエラーとなりました。(iso版、VirtualBox版、light版で確認)
root@kali:~# apt-get update
E: Method http has died unexpectedly!
E: sub-process http received a segmentation fault
または、下記のように分かりにくいかも知れません。
W: The repository 'http://http.kali.org/kali kali-rolling Release' does not have a Release file.
N: Data from such a repository can't be authenticated and is therefore potentially dangerous to use.
N: See apt-secure(8) manpage for repository creation and user configuration details.
W: Failed to fetch http://ftp.ne.jp/Linux/packages/kali/kali/dists/kali-rolling/main/binary-amd64/Packages 404 Not Found
W: Failed to fetch http://ftp.ne.jp/Linux/packages/kali/kali/dists/kali-rolling/non-free/binary-amd64/Packages 404 Not Found
W: Failed to fetch http://ftp.ne.jp/Linux/packages/kali/kali/dists/kali-rolling/contrib/binary-amd64/Packages 404 Not Found
E: いくつかのインデックスファイルのダウンロードに失敗しました。これらは無視されるか、古いものが代わりに使われます。
リポジトリの追加
deb cdromみたいな行があると思いますが、それとは別に下記を追加します。
同様のものが既に記載されている場合は、変更する必要はないです。
追記したら念のため、apt-get updateを行い変化がないことも確認します。
リポジトリリスト編集
vi /etc/apt/sources.list
Kali sources.list Repositories の The Kali Rolling Repository を参考にしてください。
http://docs.kali.org/general-use/kali-linux-sources-list-repositories
deb http://http.kali.org/kali kali-rolling main contrib non-free
# For source package access, uncomment the following line
# deb-src http://http.kali.org/kali kali-rolling main contrib non-free
必要なパッケージを事前に入手
事前に下記のパッケージを入手します。適宜読み替えてください、例は、この記事の公開当時最新の64bit版です。頻繁に更新されてるため新しいものを選んでください。
liblz4は、light版のみ必要?後工程で言われたら導入するスタンスでもよいかと。
libapt-pkg5.0_1.3~rc2_amd64.deb
apt_1.3~rc2_amd64.deb
liblz4-1_0.0~r131-2_amd64.deb
curlやwgetなどのコマンドで入手するか、またはブラウザで確認しながら、任意の場所にダウンロードします。
libapt-pkg、aptは、http://http.kali.org/pool/main/a/apt/
liblz4は、http://http.kali.org/pool/main/l/lz4/
ブラウザでのパッケージダウンロードの様子
aptの入れ直し
まず、removeでaptを削除します。危険な作業なので、Yes, do as say!と入力を迫られます。
その後、先ほどダウンロードしたパッケージを導入します。成功したらupdateを試してみましょう。
apt-get remove apt
dpkg -i libapt-pkg5.0_1.3~rc2_amd64.deb
dpkg -i apt_1.3~rc2_amd64.deb
dpkg -i liblz4-1_0.0~r131-2_amd64.deb (light版など必要に応じて)
apt-get update
apt-get updateが動作したら
正常に動作したら、upgradeを実行し数回出る質問に答えつつ、先ほどダウンロードしたパッケージを削除しておきましょう。
今回は、Kali Linux(2016.1)を導入直後からのaptエラーについて解決方法を試してみました。
これによりKali Linuxを最新状態(2016.2など)に保てるようになりました。
脆弱性診断サービスなど
弊社、アピリッツではセキュリティ診断サービスを行っております。
下記リンクから内容の確認と、問い合わせが可能です。