E: The repository 'http://archive.ubuntu.com/ubuntu nobel Release' does not have a Release file.
means apt asked the server for a release name it does not carry. In the test the name was
a typo, nobel instead of noble. Correct the name in the
repository line, or delete the line, and apt-get update passes.
Read the release name from the error, compare it with
VERSION_CODENAME in /etc/os-release, and fix the line that
holds it under /etc/apt/sources.list.d/. In the test the line was in a file
called extra.list, written by the first command below, and the Ubuntu
sources in the same run still downloaded. Do not move on while
this error stands: apt-get update returned 100, so a script that checks the
exit code stops at this step.
The error
$ echo "deb http://archive.ubuntu.com/ubuntu nobel main universe" > /etc/apt/sources.list.d/extra.list
exit code: 0
$ apt-get update
Ign:1 http://archive.ubuntu.com/ubuntu nobel InRelease
Get:2 http://archive.ubuntu.com/ubuntu noble InRelease [256 kB]
...
Err:6 http://archive.ubuntu.com/ubuntu nobel Release
404 Not Found [IP: 91.189.90.11 80]
...
Reading package lists...
E: The repository 'http://archive.ubuntu.com/ubuntu nobel Release' does not have a Release file.
exit code: 100
Why it happens
Each repository line names a server, a release and components. For the release
nobel apt first printed Ign: for InRelease, then
Err: with 404 Not Found for Release: the mirror
answered that it had nothing under that name. apt then printed the E: line
and returned exit code 100, although the correctly named Ubuntu sources in the same run
downloaded fine. The error names the repository and release exactly as the line wrote
them, which is the quickest way to find the line to fix.
The fix
$ grep VERSION_CODENAME /etc/os-release
VERSION_CODENAME=noble
exit code: 0
$ echo "deb http://archive.ubuntu.com/ubuntu noble main universe" > /etc/apt/sources.list.d/extra.list
exit code: 0
$ apt-get update
Hit:1 http://archive.ubuntu.com/ubuntu noble InRelease
Hit:2 http://archive.ubuntu.com/ubuntu noble-updates InRelease
Hit:3 http://security.ubuntu.com/ubuntu noble-security InRelease
Hit:4 http://archive.ubuntu.com/ubuntu noble-backports InRelease
Reading package lists...
W: Target Packages (main/binary-amd64/Packages) is configured multiple times in /etc/apt/sources.list.d/extra.list:1 and /etc/apt/sources.list.d/ubuntu.sources:1
...
exit code: 0
With the right name the error was gone and the exit code was 0. The W:
lines appeared because the test line repeated what the image's own
ubuntu.sources file already lists. A line you did not need is better
deleted, which gave a clean run:
$ rm /etc/apt/sources.list.d/extra.list
exit code: 0
$ apt-get update
Hit:1 http://archive.ubuntu.com/ubuntu noble InRelease
Hit:2 http://archive.ubuntu.com/ubuntu noble-updates InRelease
Hit:3 http://security.ubuntu.com/ubuntu noble-security InRelease
Hit:4 http://archive.ubuntu.com/ubuntu noble-backports InRelease
Reading package lists...
exit code: 0
How it was reproduced
The capture was made in an ubuntu:24.04 container (Ubuntu 24.04.5 LTS,
apt 2.8.3) on Docker Engine 29.9.3, standing in for Ubuntu in WSL. As root, a list file
with the misspelled release nobel was written and
apt-get update was run; then the line was corrected and the update run again.
Next, for the add-apt-repository post, software-properties-common was
installed in the same container and add-apt-repository -y universe ran;
after that the file was removed and the last update was run.
Frequently asked
- How do I fix 'does not have a Release file' in apt-get update?
- Find the release name in the error, compare it with VERSION_CODENAME in /etc/os-release and correct or delete the repository line that holds it. In the test nobel was corrected to noble and the update returned 0.
- How do I find my Ubuntu codename?
- Run grep VERSION_CODENAME /etc/os-release. In the ubuntu:24.04 container it printed VERSION_CODENAME=noble.
- Why does apt say 'configured multiple times' after I fixed the line?
- In the test the corrected line repeated sources already listed in ubuntu.sources. Removing the extra file gave an update with no W: lines.
More decoded errors in the Fixes category. If the update reaches the server but the signature check fails, see NO_PUBKEY, the public key is not available.