如何从我的 sources.list 中删除格式错误的行?

emi*_*jae 82 apt

我已经按照我在类似线程中找到的信息卸载并重新安装了 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.
Run Code Online (Sandbox Code Playgroud)

我如何报告错误?关于这个还能做什么。我已经搜索过,每个人说要做的一切都使我回到同一行错误消息。

所以,我不知道如何到达源列表中的第 91 行;告诉你它说了什么。对不起,我真的很陌生。这就是我需要的是找出如何到达那里并修复它所说的内容。我真的很想不必重新分区我的硬盘驱动器并从头开始,所以我真的很期待解决这个问题。我需要能够安装新软件。

Eli*_*gan 69

您的sources.list文件(或 中的另一个*.list文件sources.list.d/)中的某些行已损坏。

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

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

    sudo -H gedit /etc/apt/sources.list
    
    Run Code Online (Sandbox Code Playgroud)

    或者,您可能更喜欢使用基于终端的文本编辑器打开文件,而不是 Gedit(并非所有 Ubuntu 系统都有):

    sudoedit /etc/apt/sources.list
    
    Run Code Online (Sandbox Code Playgroud)

    如有必要,替换/etc/apt/sources.list为另一个文件名,即 .zip 文件中某个文件的路径/etc/apt/sources.list.d/

  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
    
    Run Code Online (Sandbox Code Playgroud)

    URLdistribution和组件会有所不同。它不一定必须具有 3 个组件。

    任何不符合这种格式的都是不正确的。

  3. 保存文件并退出文本编辑器。然后在终端窗口中运行此命令:

    sudo apt-get update
    
    Run Code Online (Sandbox Code Playgroud)

假设没有错误,问题现在已解决。您应该能够运行软件中心。

但是,虽然软件中心的某些问题可以通过重新安装software-center软件包来解决,但大多数问题都不能解决,因此您的原始问题可能会继续存在。如果是这种情况,您可以发布一个新问题以寻求帮助。


Anw*_*war 28

快速方法

此问题的解决方法是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
Run Code Online (Sandbox Code Playgroud)
  • 复制上述内容(在灰色框中)并sources.list以 root 身份打开文件。

    sudo -H gedit /etc/apt/sources.list在终端中输入并点击即可Enter完成这项工作。

  • 然后将复制的内容粘贴到sources.list- 注意您可能需要替换precise为代表您的 Ubuntu 版本的代号 - 例如trusty14.04。然后保存并关闭 gedit。

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

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

推荐方法

转到Ubuntu 源列表生成器站点

  • 选择您的国家。
  • 选择您想要的分支,例如 Main、Restricted、Multiverse、Universe。
  • 选择所需的更新列表,-
  • 如果您愿意,可以选择任何第三方存储库列表。
  • 单击页面底部的生成列表,您将获得一个包含存储库的列表。
  • 复制该列表并替换为sources.list您拥有的文件。

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

  • 奇怪的是,这不被接受!快速修复,通过添加 `##` 作为行中的第一个字符来注释 `/etc/apt/sources.list` 中的有问题的行。然后尝试`sudo apt-get update`。 (5认同)
  • 也许它没有被接受,因为用户可能启用了其他存储库,如果他们这样做,他们会丢失它们。例如,VirtualBox 的大多数用户都是从 Oracle 的存储库中获取的。此外,Oracle 在这些 repos 中使用的包名与 Ubuntu 在他们的 repos 中不同。因此,如果我使用 Oracle 的 repo 安装 VirtualBox 并遵循本指南,我将一直使用相同版本的 VirtualBox 并且永远不会获得更新。绝不。 (3认同)

Man*_*nha 6

正如您从错误中看到的,它表示您的 sources.list 文件有一个错误的条目。无法解析此错误条目。此错误与软件中心本身无关,但主要与 apt(包管理器)有关

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

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


ish*_*ish 6

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

如何轻松地与他人共享命令或文本文件的输出?


有时是一个非常简单的修复,但您必须先备份, 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 (这会使用希望修复的文件更新数据库)

如果您在尝试第 4 步时没有看到任何错误出现,则问题有望得到解决。您可以退出终端并返回软件中心/更新管理器,它应该可以工作。

如果还是有问题,可以从终端用sudo cp /etc/apt/sources.list.backup /etc/apt/sources.list. 在这种情况下,请将有问题的行甚至整个文件粘贴到 pastebin,然后我们可以进一步提供帮助。

  • 删除有问题的行可能不是一个好主意(但在这样做之前对备份内容的建议表示敬意)。如果它是用户需要的存储库怎么办?此外,如果一条长线以某种方式分成两行,您将有*两条*格式错误的行(并且必须重复该过程)。`man sources.list` 有一个包含示例的部分,让用户将他的台词与示例进行比较可能会很有用,也许他可以确定哪里出了问题并自己修复。就个人而言,我会等到他发布他的 sources.list 文件。 (3认同)

con*_*use 5

该文件/etc/apt/sources.list包含网络服务器的 URL 和其他源表单(例如 cd)的位置,您可以从中检索软件和更新。它基本上告诉 Ubuntu 在哪里寻找新软件和已安装程序的更新。您收到的错误消息意味着文件以某种方式遭到破坏。如果不知道文件的内容是什么,就很难知道它到底有什么问题。因此,您应该发布 的输出sudo more /etc/apt/sources.list以便我们更好地帮助您。

如果文件混乱无法修复,您可以使用Ubuntu 源列表生成器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
Run Code Online (Sandbox Code Playgroud)


Gep*_*nzo 5

请尝试sources.list通过放入sudo gedit /etc/apt/sources.list终端来编辑您的文件(可能会询问您的密码),之后您将可以选择在 gEdit 的菜单编辑/首选项中启用“行号”,然后单击“显示行号”复选框,然后手动转到错误中的行,例如 91 或使用“搜索/转到行”(Ctrl+I 即可)。

在此处输入图片说明

在第 91 行的开头删除两个 # 符号 ( ##) 以对该行进行注释,这样就可以将其从更新过程中删除(您也可以自行承担删除该行的风险,我建议您备份)。

完成后,保存文件并关闭它。然后打开终端并运行sudo apt-get update,看看错误是否仍然出现。如果没有,请尝试打开更新管理器。

不知何故,您的sources.list文件第 91 行中的文本似乎已损坏或存在某种错误,这意味着某些软件无法安装/更新/升级。

通过评论/删除错误行,软件将不会安装(如果尚未安装),或者如果您尝试这样做,则不会更新/升级。其中我建议您检查该行来自哪里(哪个软件需要它)并根据需要进行适当的修改,以便一切正常运行。