当前位置: 首页>>技术问答>>正文


如何从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文件)中断开。

编辑错误中提到的文件以修复折断的行。

  1. 为此,请运行此命令(按Ctrl + Alt + T打开终端):

    sudo -H gedit /etc/apt/sources.list
    

    如有必要,请将/etc/apt/sources.list替换为其他文件名。

  2. 找到格式不正确的行(请参阅行号的错误,然后查看该点)。这些是正确格式化的行的示例:

    # 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个组件。

    任何不符合此格式的内容都是不正确的。

  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中 – 请注意,您可能需要将precise替换为代表您的Ubuntu版本的代号 – 例如trusty为14.04。然后保存并关闭gedit。

  • 然后执行sudo apt-get update,您将看到存储库列表已更新。

说明:这里我们完全用另一个来自主服务器的存储库条目的sources.list文件替换内容。如果要将本地服务器用于sources.list,请参阅以下方法。

推荐方法

转到Ubuntu sources list generator site

  • 选择你的国家。

  • 选择所需的分支,例如Main,Restricted,Multiverse,Universe。

  • 选择所需的更新列表, –

  • 如果您愿意,请选择任何第三方存储库列表。

  • 单击页面底部的Generate list,您将看到一个包含存储库的列表。

  • 复制该列表并替换为您拥有的sources.list文件。

你完成了。 (我希望这个能帮上忙。)

第三种解决思路

从错误中可以看出,它表示您的sources.list文件有错误的条目。无法解析此错误条目。此错误与Software Center无关,但主要与apt(包管理器)有关

解决这个问题的方法是修复格式错误的91条目。

如果您无法理解第91行有什么问题,请发布第91行,我会帮助您

第四种思路

请粘贴文件/etc/apt/sources.list,以便我们为您解决此问题。有关如何执行此操作,请参阅此简短教程答案:

How can I easily share the output of a command or a text file with others?


这有时可能是一个非常简单的修复,但您必须首先备份sources.list,因为它是一个关键文件。

  1. 使用Ctrl + Alt + T打开终端。

  2. 输入/粘贴:sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup(这会创建一个备份副本)

  3. sudo sed -i -e '68d' /etc/apt/sources.list(删除有问题的行)

  4. sudo apt-get update(使用hopefully-fixed文件更新数据库)

如果您在尝试步骤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的输出,以便我们更好地帮助你。

如果文件搞砸了无法修复,您可以使用Ubuntu Source List Generator重新生成sources.list。但你应事先备份旧的。此外,这将导致您丢失对软件源所做的所有更改,例如在软件中心。

解决这个问题的更好方法是让我们看看你的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的菜单编辑/首选项中启用”Line Numbers”并单击“显示行号”复选框,然后在你的错误中手动转到Line,例如91或使用“搜索/转到行”(Ctrl + I诀窍)。

apt,ubuntu

在第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文件可能是一件非常糟糕的事情,特别是如果它之前看起来很不一样。关键点是每行以debdeb-src开头(注释除外,它以#开头)。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/1351.html,未经允许,请勿转载。