Kur*_*sis 5 package-management aptitude security apt package-info
今天下午我在 Starbucks 坐下来做一些工作(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.
Run Code Online (Sandbox Code Playgroud)
所以打开罪魁祸首,你/var/lib/apt/lists/linux.dropbox.com_ubuntu_dists_precise_main_binary-i386_Packages
瞧,整个文件已经被星巴克的 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
Run Code Online (Sandbox Code Playgroud)
星巴克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>
...
Run Code Online (Sandbox Code Playgroud)
这就是发生的事情。
sudo apt-get update
要么手动执行,要么自动触发(还记得更新管理器的自动更新吗?)并尝试刷新列表。如果您连接到互联网,删除整个文件夹/var/lib/apt/lists
并进行更新应该是完全安全的。这将解决这个问题。为了安全起见,您可以选择备份而不是删除。
sudo mv /var/lib/apt/lists ~;sudo apt-get update
应该可以解决问题,如果没有,请返回 sudo mv ~/lists /var/lib/apt
归档时间: |
|
查看次数: |
4819 次 |
最近记录: |