I am on 24.04 and I wish to upgrade specifically and only to 24.10 for reasons. Yes, I know that 24.10 is EOL, but I can deal with that. Around the web, people who’ve been having trouble upgrading to/from EOL releases had success by downloading http://{archive,old-releases}.ubuntu.com/ubuntu/dists/<CODENAME>-updates/main/dist-upgrader-all/current/<CODENAME>.tar.gz, so I downloaded the one for Ubuntu 24.10 Oracular Oriole from here and unzipped it to /var/tmp/oracular. When I run
cd /var/tmp/oracular
sudo ./oracular --frontend=DistUpgradeViewText
I get
Reading cache
Checking package manager
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Hit http://security.ubuntu.com/ubuntu noble-security InRelease
Hit http://us.archive.ubuntu.com/ubuntu noble InRelease
Hit http://us.archive.ubuntu.com/ubuntu noble-updates InRelease
Hit http://us.archive.ubuntu.com/ubuntu noble-backports InRelease
Get:1 http://security.ubuntu.com/ubuntu noble-security/restricted Sources [65.4 kB]
Get:2 http://security.ubuntu.com/ubuntu noble-security/multiverse Sources [20.9 kB]
Get:3 http://security.ubuntu.com/ubuntu noble-security/universe Sources [343 kB]
Get:4 http://security.ubuntu.com/ubuntu noble-security/main Sources [236 kB]
Get:5 http://us.archive.ubuntu.com/ubuntu noble/restricted Sources [18.7 kB]
Get:6 http://us.archive.ubuntu.com/ubuntu noble/multiverse Sources [299 kB]
Get:7 http://us.archive.ubuntu.com/ubuntu noble/main Sources [1,384 kB]
Get:8 http://us.archive.ubuntu.com/ubuntu noble/universe Sources [19.8 MB]
Get:9 http://us.archive.ubuntu.com/ubuntu noble-updates/restricted Sources [70.1 kB]
Get:10 http://us.archive.ubuntu.com/ubuntu noble-updates/universe Sources [513 kB]
Get:11 http://us.archive.ubuntu.com/ubuntu noble-updates/multiverse Sources [27.4 kB]
Get:12 http://us.archive.ubuntu.com/ubuntu noble-updates/main Sources [521 kB]
Get:13 http://us.archive.ubuntu.com/ubuntu noble-backports/main Sources [5,960 B]
Get:14 http://us.archive.ubuntu.com/ubuntu noble-backports/universe Sources [13.4 kB]
Fetched 23.4 MB in 0s (0 B/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Checking for installed snaps
Calculating snap size requirements
Updating repository information
No valid mirror found
While scanning your repository information no mirror entry for the
upgrade was found. This can happen if you run an internal mirror or
if the mirror information is out of date.
Do you want to rewrite your 'sources.list' file anyway? If you choose
'Yes' here it will update all 'noble' to 'oracular' entries.
If you select 'No' the upgrade will cancel.
Continue [yN] y
Generate default sources?
After scanning your 'ubuntu.sources' no valid entry for 'noble' was
found.
Should default entries for 'oracular' be added? If you select 'No',
the upgrade will cancel.
Continue [yN] y
Error in sys.excepthook:
Traceback (most recent call last):
File "/var/tmp/oracular/DistUpgrade/DistUpgradeViewText.py", line 138, in _handleException
apport_crash(type, value, tb)
File "/var/tmp/oracular/DistUpgrade/DistUpgradeApport.py", line 57, in apport_crash
apport_excepthook(type, value, tb)
TypeError: apport_excepthook() missing 1 required positional argument: 'exc_tb'
Original exception was:
Traceback (most recent call last):
File "/var/tmp/oracular/./oracular", line 8, in <module>
sys.exit(main())
^^^^^^
File "/var/tmp/oracular/DistUpgrade/DistUpgradeMain.py", line 239, in main
if app.run():
^^^^^^^^^
File "/var/tmp/oracular/DistUpgrade/DistUpgradeController.py", line 1993, in run
return self.fullUpgrade()
^^^^^^^^^^^^^^^^^^
File "/var/tmp/oracular/DistUpgrade/DistUpgradeController.py", line 1829, in fullUpgrade
if not self.updateDeb822Sources():
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/tmp/oracular/DistUpgrade/DistUpgradeController.py", line 966, in updateDeb822Sources
self._addDefaultSources()
File "/var/tmp/oracular/DistUpgrade/DistUpgradeController.py", line 732, in _addDefaultSources
e.suites = sorted([self.toDist, self.toDist + '-updates'],
^^^^^^^^
AttributeError: property 'suites' of 'ExplodedDeb822SourceEntry' object has no setter
This what my ubuntu.sources file contains:
Types: deb
URIs: http://us.archive.ubuntu.com/ubuntu/
Suites: noble noble-updates noble-backports
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
Types: deb
URIs: http://security.ubuntu.com/ubuntu/
Suites: noble-security
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
How do I fix this? I’m thinking I have two possible solutions:
- Patching the Python library file that provides
ExplodedDeb822SourceEntry. - Rewrite
ubuntu.sourcesin such a way that the upgrader find valid sources in it.
#2 looks like it’ll be easier, but I don’t know where to start.