Debian – How to configure apt in Debian Buster after release

debian

I currently run Debian Buster on my computer as testing.
Now that Buster has become stable, how should I update my system?

Specifically, how do I configure /etc/apt/sources.list?

Currently, it looks like this:

# deb cdrom:[Official Debian GNU/Linux Live 9.9.0 xfce 2019-04-27T10:47]/ stretch main
# deb cdrom:[Official Debian GNU/Linux Live 9.9.0 xfce 2019-04-27T10:47]/ stretch main

deb http://ftp.uk.debian.org/debian/ buster main
deb-src http://ftp.uk.debian.org/debian/ buster main
deb http://security.debian.org/debian-security/ buster/updates main
deb-src http://security.debian.org/debian-security/ buster/updates main

#stretch-updates, previously known as 'volatile'
deb http://ftp.uk.debian.org/debian/ buster-updates main
deb-src http://ftp.uk.debian.org/debian/ buster-updates main

And when I run sudo apt-get update I get this output:

Ign:1 http://deb.debian.org/debian stretch InRelease
Get:2 http://security.debian.org/debian-security buster/updates InRelease [31.1 kB]
Get:3 http://ftp.uk.debian.org/debian buster InRelease [118 kB]                  
Get:4 http://deb.debian.org/debian stretch Release [118 kB]
Get:5 http://ftp.uk.debian.org/debian buster-updates InRelease [46.8 kB]
Get:6 http://deb.debian.org/debian stretch Release.gpg [2,434 B]
Reading package lists... Done          
E: Repository 'http://security.debian.org/debian-security buster/updates InRelease' changed its 'Suite' value from 'testing' to 'stable'
N: This must be accepted explicitly before updates for this repository can be applied. See apt-secure(8) manpage for details.
N: Repository 'http://ftp.uk.debian.org/debian buster InRelease' changed its 'Version' value from '' to '10.0'
E: Repository 'http://ftp.uk.debian.org/debian buster InRelease' changed its 'Suite' value from 'testing' to 'stable'
N: This must be accepted explicitly before updates for this repository can be applied. See apt-secure(8) manpage for details.
E: Repository 'http://ftp.uk.debian.org/debian buster-updates InRelease' changed its 'Suite' value from 'testing-updates' to 'stable-updates'
N: This must be accepted explicitly before updates for this repository can be applied. See apt-secure(8) manpage for details.
E: Repository 'http://deb.debian.org/debian stretch Release' changed its 'Suite' value from 'stable' to 'oldstable'
N: This must be accepted explicitly before updates for this repository can be applied. See apt-secure(8) manpage for details.

Update:
I ran sudo apt update and had this dialog with the update manager:

geoff@geoff-debian:/etc/apt$ sudo apt update
Get:1 http://ftp.uk.debian.org/debian buster InRelease [118 kB]
Get:2 http://security.debian.org/debian-security buster/updates InRelease [31.1 kB]                
E: Repository 'http://security.debian.org/debian-security buster/updates InRelease' changed its 'Suite' value from 'testing' to 'stable'
N: This must be accepted explicitly before updates for this repository can be applied. See apt-secure(8) manpage for details.
Do you want to accept these changes and continue updating from this repository? [y/N] y
Get:3 http://ftp.uk.debian.org/debian buster-updates InRelease [46.8 kB]                                                 
Ign:4 http://deb.debian.org/debian stretch InRelease                                                                     
Get:5 http://deb.debian.org/debian stretch Release [118 kB]                                                              
Get:6 http://security.debian.org/debian-security buster/updates/main Sources [1,688 B]                                   
Get:7 http://deb.debian.org/debian stretch Release.gpg [2,434 B]                                                         
Get:8 http://security.debian.org/debian-security buster/updates/main amd64 Packages [1,448 B]                            
Get:9 http://security.debian.org/debian-security buster/updates/main Translation-en [1,364 B]                            
N: Repository 'http://ftp.uk.debian.org/debian buster InRelease' changed its 'Version' value from '' to '10.0'           
E: Repository 'http://ftp.uk.debian.org/debian buster InRelease' changed its 'Suite' value from 'testing' to 'stable'
N: This must be accepted explicitly before updates for this repository can be applied. See apt-secure(8) manpage for details.
Do you want to accept these changes and continue updating from this repository? [y/N] y
E: Repository 'http://ftp.uk.debian.org/debian buster-updates InRelease' changed its 'Suite' value from 'testing-updates' to 'stable-updates'
N: This must be accepted explicitly before updates for this repository can be applied. See apt-secure(8) manpage for details.
Do you want to accept these changes and continue updating from this repository? [y/N] y
E: Repository 'http://deb.debian.org/debian stretch Release' changed its 'Suite' value from 'stable' to 'oldstable'      
N: This must be accepted explicitly before updates for this repository can be applied. See apt-secure(8) manpage for details.
Do you want to accept these changes and continue updating from this repository? [y/N] y
Fetched 171 kB in 1min 6s (2,594 B/s)                                                                                    
Reading package lists... Done
Building dependency tree       
Reading state information... Done
159 packages can be upgraded. Run 'apt list --upgradable' to see them.
geoff@geoff-debian:/etc/apt$ 

Is this fine? I am particularly concerned with the old-stable message. Am I supposed to have this repository still?

Best Answer

tl;dr : run once apt-get update --allow-releaseinfo-change

What happens here, is that the local apt database remembered your package-sources "release-information" to be "busterAsTesting", and when updating now "busterAsStable" is returned.

This results in the error, and the indication, that you need to "allow the change of the release version information".

Luckily, apt-get has an option for that, aptly named allow-releaseinfo-change

When running apt-get with this option, it notices -as without- the version discrepancy (the N:-lines), but now accepts it as told to do, and then updates the local database.

Related Question