APT-fout: Type '<!doctype' op regel 1 bij nvidia-container-toolkit.list

Googled777 avatar   
Googled777
In deze tutorial lossen we een veelvoorkomende APT-fout op die ontstaat wanneer de NVIDIA Container Toolkit repository verkeerd wordt geconfigureerd en APT een HTML-pagina probeert te lezen als pakket..


Fix: APT-fout met nvidia-container-toolkit.list en HTML-output

APT-fout: Type '<!doctype' op regel 1 bij nvidia-container-toolkit.list

In deze tutorial lossen we een veelvoorkomende APT-fout op die ontstaat wanneer de NVIDIA Container Toolkit repository verkeerd wordt geconfigureerd en APT een HTML-pagina probeert te lezen als pakketbron.

1. Symptoom: APT-foutmelding

Bij het uitvoeren van sudo apt update verschijnt bijvoorbeeld:

E: Type '<!doctype' op regel 1 in bronlijst /etc/apt/sources.list.d/nvidia-container-toolkit.list is onbekend
E: De lijst van bronnen kon niet gelezen worden.

Dit betekent dat APT een HTML-document aantreft in een .list-bestand, in plaats van een geldige deb-regel.

Kern: het bestand /etc/apt/sources.list.d/nvidia-container-toolkit.list bevat geen repository, maar een HTML-pagina (bijvoorbeeld een 404-pagina van NVIDIA).

2. Oorzaak: onjuiste NVIDIA repository-URL

De fout ontstaat meestal wanneer de NVIDIA repository als volgt wordt toegevoegd:

distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/libnvidia-container/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list \
  | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

Voor sommige distributies (bijvoorbeeld nieuwere Ubuntu-versies of afgeleiden) bestaat de map $distribution niet in NVIDIA’s repo-structuur. In plaats van een .list-bestand krijg je dan een HTML-404-pagina terug, die direct in nvidia-container-toolkit.list wordt geschreven.

Gevolg: zolang dit corrupte bestand bestaat, zal apt update blijven falen.

3. Stap 1 – Controleer de inhoud van het .list-bestand

Controleer eerst wat er daadwerkelijk in het bestand staat:

cat /etc/apt/sources.list.d/nvidia-container-toolkit.list

Als je iets ziet als:

<!doctype html>
<html lang="en-US">
  <head>
    <meta charset="utf-8">
    <title>Unsupported distribution or misconfigured repository settings | NVIDIA Container Toolkit</title>
    ...

dan weet je zeker dat het geen geldige APT-repository is, maar een HTML-pagina.

4. Stap 2 – Verwijder het corrupte bestand

Verwijder het foutieve .list-bestand:

sudo rm /etc/apt/sources.list.d/nvidia-container-toolkit.list

Op dit moment is de blokkade voor apt weg, maar de NVIDIA Container Toolkit repository is nog niet correct geconfigureerd.

5. Stap 3 – Gebruik de generieke .deb repository van NVIDIA

In plaats van een distro-specifieke URL gebruiken we de generieke .deb repository die NVIDIA aanbiedt. Deze werkt op de meeste Debian/Ubuntu-achtige systemen.

5.1 GPG-sleutel correct installeren

Installeer de GPG-sleutel in een aparte keyring (zonder het verouderde apt-key):

curl -s -L https://nvidia.github.io/libnvidia-container/gpgkey \
  | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit.gpg

5.2 Repository-bestand toevoegen met signed-by

Download het generieke .list-bestand en voeg de signed-by-optie toe:

curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list \
  | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit.gpg] https://#' \
  | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

Dit zorgt ervoor dat APT de NVIDIA-repository vertrouwt via de specifieke keyring /usr/share/keyrings/nvidia-container-toolkit.gpg.

6. Stap 4 – APT bijwerken en testen

Werk nu de pakketlijsten bij:

sudo apt update

De eerdere foutmelding over <!doctype> zou nu verdwenen moeten zijn. Je ziet nu normale output met de NVIDIA Container Toolkit repository als geldige bron.

Optioneel kun je daarna de NVIDIA Container Toolkit installeren, bijvoorbeeld:

sudo apt install -y nvidia-container-toolkit

7. Samenvatting

  • Probleem: APT leest een HTML-404-pagina als repositorybestand.
  • Oorzaak: NVIDIA-URL met $distribution verwijst naar een niet-bestaande map, waardoor HTML wordt teruggegeven.
  • Fix:
    • Corrupte .list verwijderen.
    • GPG-sleutel via gpg --dearmor installeren.
    • Generieke stable/deb/nvidia-container-toolkit.list gebruiken met signed-by.
    • sudo apt update opnieuw uitvoeren.
Dit patroon (HTML in een .list-bestand) is een mooie generieke check: zodra je <!doctype html> in een APT-bron ziet, weet je dat je geen repository maar een webpagina hebt binnengehaald.

Deze tutorial is gebaseerd op een real-world debugging-sessie met een moderne Ubuntu-achtige omgeving en NVIDIA Container Toolkit integratie.

0 commentaires

Aucun commentaire trouvé