如何从sources.list中删除格式错误的行?
我已经取消并重新安装了Ubuntu软件中心,根据我在类似线程中找到的信息,我得到了关于第91行或类似内容的相同响应。
我只是试图上传一个屏幕截图,但由于我是新手,它不允许我。 我也无法弄清楚如何剪切和粘贴任何东西所以我必须手动输入错误屏幕所说的内容,当我尝试打开软件中心时没有任何反应,当我尝试输入命令到终端卸载时,重新安装,无论我得到同样的以下内容:
COULD NOT INTITIALIZE THE PACKAGE INFORMATION An unresolvable problem occured while initializing the package information Please report t:his bug against the 'update-manager' package and include the following error message: 'E: Malformed line 91 in source list/etc/apt/sources.list (dist parse) E: The list of sources could not be read., E: The package list of status file could not be parsed or opened.
我如何报告错误? 关于这个还能做什么。 我搜索过,每个人都说要做的事情都会让我回到同一行错误信息。
所以,我不知道如何到源列表中的第91行; 告诉你它说的是什么。 对不起,我真的很陌生。 这就是我需要的是找到如何到达并解决它所说的内容。 我真的不想重新分区我的硬盘并从头开始,所以我真的很期待解决这个问题。 我需要能够安装新软件。
您的sources.list
文件(或sources.list.d/
其他*.list
文件)中的某些行已中断。
编辑错误中提到的文件以修复折断的行。
-
为此,请运行此命令(按Ctrl + Alt + T打开终端):
sudo -H gedit /etc/apt/sources.list
如有必要,请将
/etc/apt/sources.list
替换为其他文件名。 -
找到格式不正确的行(请参阅行号的错误,然后查看该点)。 这些是正确格式化的行的示例:
# Comment, marked by a line starting with '#' deb http://site.example.com/debian distribution component1 component2 component3 deb-src http://site.example.com/debian distribution component1 component2 component3
URL,
distribution
和组件将不同。 它不一定必须有3个组件。任何不符合此格式的内容都是不正确的。
-
保存文件并退出文本编辑器。 然后在终端窗口中运行此命令:
sudo apt-get update
假设没有错误,问题现在已得到解决。 您应该能够运行Sofware Center。
但是,虽然软件中心的一些问题可以通过重新安装software-center
软件包来解决,但大多数问题都无法解决,因此原始问题可能仍然存在。 如果是这种情况,您可以发布一个新问题以获得帮助。
快速方法
解决此问题的方法是从头开始构建sources.list
条目。
deb http://archive.ubuntu.com/ubuntu precise main universe restricted multiverse deb-src http://archive.ubuntu.com/ubuntu precise universe main multiverse restricted deb http://security.ubuntu.com/ubuntu/ precise-security universe main multiverse restricted deb http://archive.ubuntu.com/ubuntu precise-updates universe main multiverse restricted deb http://archive.ubuntu.com/ubuntu precise-backports universe main multiverse restricted # deb http://archive.canonical.com/ubuntu precise partner # deb-src http://archive.canonical.com/ubuntu precise partner # deb http://extras.ubuntu.com/ubuntu precise main # deb-src http://extras.ubuntu.com/ubuntu precise main
-
复制上面的内容(灰色框)并以root身份打开
sources.list
文件。在终端输入
sudo -H gedit /etc/apt/sources.list
,然后点击Enter即可完成工作。 -
然后将复制的内容粘贴到
sources.list
– 请注意,您可能需要使用代表您的Ubuntu版本的代号precise
替换 – 例如,trusty
14.04。 然后保存并关闭gedit。 -
然后执行
sudo apt-get update
,您将看到存储库列表已更新。
说明:这里我们完全用另一个来自主服务器的存储库条目的sources.list文件替换内容。 如果要将本地服务器用于sources.list
请参阅下面的方法。
推荐方法
转到Ubuntu源列表生成器站点 。
- 选择你的国家。
- 选择所需的分支,例如Main,Restricted,Multiverse,Universe。
- 选择所需的更新列表, –
- 如果您愿意,请选择任何第三方存储库列表。
- 单击页面底部的Generate list ,您将看到一个包含存储库的列表。
- 复制该列表并替换为您拥有的
sources.list
文件。
你完成了。 (我希望这个能帮上忙。)
从错误中可以看出,它表示您的sources.list文件有错误的条目。 无法解析此错误条目。 此错误与Software Center无关,但主要与apt(包管理器)有关
解决这个问题的方法是修复格式错误的第91
行。
如果您无法理解第91行有什么问题,请发布第91行,我会帮助您
请粘贴文件/etc/apt/sources.list
以便我们为您解决此问题。 有关如何执行此操作,请参阅此简短教程答案:
如何轻松与其他人共享命令或文本文件的输出?
这有时可能是一个非常简单的修复,但您必须首先备份 sources.list
因为它是一个关键文件。
- 使用Ctrl + Alt + T打开终端。
- 输入/粘贴:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
(这会创建一个备份副本) -
sudo sed -i -e '68d' /etc/apt/sources.list
(这会删除有问题的行) -
sudo apt-get update
(这会使用希望修复的文件更新数据库)
如果您在尝试步骤4时看不到任何错误,则可以解决问题。 您可以退出终端并返回到软件中心/更新管理器,它应该可以工作。
如果仍有问题,您可以使用sudo cp /etc/apt/sources.list.backup /etc/apt/sources.list
从终端恢复原始文件。 在这种情况下,请将有问题的行甚至整个文件粘贴到pastebin,然后我们可以进一步帮助。
文件/etc/apt/sources.list
包含Web服务器的URL和其他源表单的位置(例如cds),您可以从中检索软件和更新。 它基本上告诉Ubuntu在哪里寻找新软件和已安装程序的更新。 您获得的错误消息意味着文件被泄露了。 在不知道文件内容是什么的情况下,很难知道它究竟是什么问题。 所以你应该为我们发布sudo more /etc/apt/sources.list
的sudo more /etc/apt/sources.list
输出,以便更好地帮助你。
如果文件搞砸了无法修复,您可以使用Ubuntu源列表生成器重新生成sources.list
。 但你应事先备份旧的 。 此外,这将导致您丢失对软件源所做的所有更改,例如在Sofware Center中。
解决这个问题的更好方法是让我们看看你的sources.list
什么问题
发布sources.list
后编辑:
我相信你发布的文件应该是这样的(注意最后的行和最后缺少的/etc/apt/sources.list
):
# /etc/apt/sources.list deb http://archive.ubuntu.com/ubuntu/ precise main restricted universe multiverse deb http://security.ubuntu.com/ubuntu/ precise-security main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu/ precise-updates main restricted universe multiverse deb http://archive.canonical.com/ubuntu partner deb-src http://archive.canonical.com/ubuntu partner
如果您遇到如下所示的任何格式错误的行错误,我强烈建议您注释掉( 在行之前添加#
)行,而不是在/etc/apt/sources.list
文件中删除它。
E: Malformed line 91 in source list /etc/apt/sources.list (dist parse)
从上面的错误,/ /etc/apt/sources.list
文件中的行号91
已损坏。 要注释掉第91行,你必须在终端上运行以下命令。
sudo sed -i '91s/\(.*\)/#\1/' /etc/apt/sources.list
上面代码中的91
表示行号。 如果您有任何格式错误的行错误,请将上述代码中的数字91替换为您的。
在某些情况下,在/etc/apt/sources.list.d
目录中实际存在的列表文件中也会出现格式错误的行错误。 例如,
E: Malformed line 1 in source list /etc/apt/sources.list.d/google.list (dist parse)
在这种情况下,我强烈建议您通过运行sudo rm /etc/apt/sources.list.d/google.list
删除google.list
文件,然后再次添加相应的PPA。
最后通过在终端上运行sudo apt-get update
命令来更新所有存储库。 现在错误不会出现。
请尝试通过在终端中删除sudo gedit /etc/apt/sources.list
来编辑sources.list
文件(可能会询问您的密码),之后您可以选择在菜单编辑/中启用“行号” gEdit的首选项并单击“显示行号”复选框,然后手动转到错误中的行,例如91或使用“搜索/转到行”(Ctrl + I诀窍)。
在第91行的开头,删除两个#符号( ##
)来评论该行,这样就可以将其从更新过程中删除(您也可以自行删除该行,我建议您备份)。
完成后,保存文件并关闭它。 然后打开一个终端并运行sudo apt-get update
并查看是否仍然出现错误。 如果没有,请尝试打开更新管理器。
不知何故,您的sources.list
文件的第91行中的文本似乎已损坏或存在某种错误,这意味着某些软件无法安装/更新/升级。
通过注释/删除错误的行,软件将不会安装(如果尚未安装),或者如果您尝试的话,将不会更新/升级。 其中我建议你检查那条线来自哪个(哪个软件需要它)并根据需要进行适当的修改,以便一切运行正常。
您必须删除此文件的最后一行(当然不是文件本身):
/etc/apt/sources.list
您的sources.list
文件必须如下所示:
# /etc/apt/sources.list deb http://archive.ubuntu.com/ubuntu/ precise main restricted universe multiverse deb http://security.ubuntu.com/ubuntu/ precise-security main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu/ precise-updates main restricted universe multiverse deb http://archive.canonical.com/ partner deb-src http://archive.canonical.com/ partner
当然,用这个文本替换你的sources.list
文件可能是一件非常糟糕的事情,特别是如果它之前看起来很不一样。 关键点是每一行都以deb
或deb-src
开头(注释除外,以#
开头)。
使用CTRL + Alt + T打开终端并执行以下命令以删除第6行,这是不正确的存储库源代码forms,因此很容易给出错误行的错误。
警告:如果不先读取问题,请不要执行此命令,此命令将删除/etc/apt/sources.list
文件的第68行。 检查您的问题是否相似,即使是,请将68
替换为您需要删除的行号 。
sudo sed -i.old '68d' /etc/apt/sources.list
此命令将使用sed
删除该行。 它创建一个名为/etc/apt/sources.list.old
的备份。 如果您不想备份,则可以使用plain -i
而不是-i.old
。
或者,您可以使用Gedit手动删除该行。
- 按Alt + F2并键入
gksu gedit /etc/apt/sources.list
。
(如果你没有gksu
你可以使用sudo -H gedit
。) - 找到损坏的
/etc/apt/sources.list
并将其删除。 - 保存并退出Gedit。
正确forms的存储库源代码行:
存储库源代码行的正确格式为:
例如:
deb http://archive.ubuntu.com/ubuntu precise main
- 类型:
deb
是repo的类型,它表示它是二进制存储库,而不是源存储库,其类型为deb-scr
。 - 位置:
http://archive.ubuntu.com/ubuntu
:http://archive.ubuntu.com/ubuntu
存储库的位置 -
Dist-name:
precise
是Ubuntu版本的分发名称。 对于Ubuntu 12.04来说它是precise
,11.10是oneiric
-
组件:
main
表示存储库的组件。 Ubuntu存储库分为四个部分。- Main – 包含官方支持的免费和开源软件
- Universe – Canonical不支持这些软件,但这些软件由社区维护。
- 受限制 – 这些软件由Canonical支持,但不是免费的。 支持这些提供一些必要的驱动程序
- 多重宇宙 – 这些也是非自由软件,Canonical不支持。
有关更多信息,请参阅此页面 。
您现在可以理解/etc/apt/sources.list
不是存储库源代码行,因此apt-get
抱怨它。
-
有关添加和删除存储库以及存储库源代码行的格式的详细信息,请参阅此Ubuntu帮助页面 。
-
请参阅此处的Sed手册页 。