今日の午後、スターバックスに座って作業を行い(Ubuntu 12.04 Desktop x64)、パッケージエラーを通知するシステムトレイに赤丸の付いたエラーアイコンが表示されました。また、apt、aptitude、update-manager、およびsynapticはすべて、このため起動することさえできませんでした。
よく見てみると、エラーは次のとおりです。
> Sudo aptitude install mmv
[Sudo] password for kurtosis:
[ ERR] Reading package lists
E: Encountered a section with no Package: header
E: Problem with MergeList /var/lib/apt/lists/linux.dropbox.com_ubuntu_dists_precise_main_binary-i386_Packages
E: The package lists or status file could not be parsed or opened.
[ ERR] Reading package lists
E: Encountered a section with no Package: header
E: Problem with MergeList /var/lib/apt/lists/linux.dropbox.com_ubuntu_dists_precise_main_binary-i386_Packages
E: The package lists or status file could not be parsed or opened.
犯人、/var/lib/apt/lists/linux.dropbox.com_ubuntu_dists_precise_main_binary-i386_Packages
、loを開いて、見よ、ファイル全体がStarbuckのATT wifi利用規約ページのhtmlソースによって上書きされました。無料のwifiにログオンします(最初の数行)。
いくつかのランダムなインターネットサイトが、rootによってのみ変更可能なファイルを上書きすることができたため、これは非常に奇妙で少々戸惑います。何が起こったのでしょうか?
/var/lib/apt/lists
を削除して再生成することで解決 このコマンドで :
$ Sudo -i
# apt-get clean
# cd /var/lib/apt
# mv lists lists.old
# mkdir -p lists/partial
# apt-get clean
# apt-get update
スターバックスATT wifiホームページソース:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>AT&T Wi-Fi Service @ Starbucks</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="shortcut icon" type="image/ico" href="/favicon.ico" />
<script type="text/javascript" language="javascript" src="/dhtml/master.js"></script>
<script type="text/javascript" language="javascript" src="/dhtml/x_core.js"></script>
<script type="text/javascript" language="javascript" src="/dhtml/x_event.js"></script>
<script type="text/javascript" language="javascript" src="/dhtml/x_xhr.js"></script>
<script type="text/javascript" src="/dhtml/aws/dhtml.js"></script>
<script type="text/javascript" src="/dhtml/jquery/jquery-1.3.2.js"></script>
<script type="text/javascript" language="javascript" src="/dhtml/jquery/aws_jclock_2.2.0.js"></script>
<script type="text/javascript" language="javascript">
$(function($) {
var options = {
format: '%i:%M<span class="clock_ampm">%P</span>'
}
$('.jclock').jclock(options);
});
</script>
<link rel="stylesheet" type="text/css" href="/css/att/themes/sbux/laptop_free_v3.css"/>
<link rel="stylesheet" type="text/css" href="/css/att/themes/sbux/sbux_auto_addl_v2.css"/>
</head>
<body>
<div id="free_wrap">
<div id="topblock">
<div id="topmid">
<div id="free_sbux_mainform">
<div id="iframe_free">
<iframe id="sbux_iframe" src="http://www.starbucks.com/coffeehouse/wi-fi-landing" scrolling="no">
</iframe>
</div id="iframe_free">
<div id="free_sbux_logo"><a href="http://www.starbucks.com"></a></div id="free_sbux_logo">
<div id="free_sbux_location"><div id="location_city">PALO ALTO, CA</div id="id="location_city"></div id="free_sbux_location">
<div id="inline_free_form">
<div id="free_text_line">Starbucks is pleased to offer complimentary Wi-Fi <b>including the premium content of the Starbucks Digital Network</b> to customers who are enjoying our food and beverages.</div>
...
これが何が起こったのかです。
Sudo apt-get update
が手動で実行されたか、自動的にトリガーされ(更新マネージャーからの自動更新を覚えていますか?)、リストを更新しようとしました。インターネットに接続している場合は、フォルダ[/var/lib/apt/lists
]全体を削除して更新することは完全に安全です。これで修正されます。安全のために、削除する代わりにバックアップすることもできます。
Sudo mv /var/lib/apt/lists ~;Sudo apt-get update
トリックを実行する必要があり、そうでない場合は、Sudo mv ~/lists /var/lib/apt
で元に戻します