我该如何解决这个“E: Type '*' is not known on line * in source list ...”更新错误?

hto*_*que 37 apt software-sources

每隔一段时间,我就会看到用户由于这样的错误而遇到需要更新的问题:

E:Type 'ain' is not known on line 1 in source list /etc/apt/sources.list.d/some-ppa.list'
Run Code Online (Sandbox Code Playgroud)

具有不同类型/行号/源列表文件(通常在删除 PPA 之后)。

如何修复这样的错误?

hto*_*que 46

该错误表明源文件中存在格式错误的条目,这会导致更新过程中止。要修复它,您必须修复该条目(如果您知道正确的条目应该是什么样子)或将其完全删除(这就是我要描述的内容,因为这是使您能够再次更新系统的最快方法)。

  1. 首先,您需要打开包含错误条目的文件。文件名在错误消息中给出,在您的示例中/etc/apt/sources.list.d/some-ppa.list。打开终端,输入

    sudo nano /etc/apt/sources.list.d/some-ppa.list
    
    Run Code Online (Sandbox Code Playgroud)

    并按Enter。输入密码后,您现在应该会看到在文本编辑器中打开的文件nano

  2. 现在您需要找到格式错误的条目。它应该在错误消息中给出的行号上 - 在您的情况下,这将是第 1 行。

  3. 此行应该不完整,并以更新过程所抱怨的未知类型开头(此处ain)。只需删除整行,然后用Ctrl+保存/关闭文件X

  4. 就是这样。您现在应该能够成功运行更新过程!


如果该条目是文件中的全部内容,则您可以删除该文件。为此,只需打开一个终端并运行以下命令:

sudo rm /etc/apt/sources.list.d/some-ppa.list
Run Code Online (Sandbox Code Playgroud)