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.
/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.listVoor 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.
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.listAls 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.listOp 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.gpg5.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.listDit 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 updateDe 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-toolkit7. Samenvatting
- Probleem: APT leest een HTML-404-pagina als repositorybestand.
- Oorzaak: NVIDIA-URL met
$distributionverwijst naar een niet-bestaande map, waardoor HTML wordt teruggegeven. - Fix:
- Corrupte
.listverwijderen. - GPG-sleutel via
gpg --dearmorinstalleren. - Generieke
stable/deb/nvidia-container-toolkit.listgebruiken metsigned-by. sudo apt updateopnieuw uitvoeren.
- Corrupte
.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.
コメントがありません