如何将MySQL、Docker第三方软件源从focal切换为jammy以适配Ubuntu 22.04?
如何将MySQL、Docker第三方软件源从focal切换为jammy以适配Ubuntu 22.04?
嗨,我来帮你搞定这个问题!当你把Ubuntu从20.04(focal)升级到22.04(jammy)后,系统自带源会自动切换版本代号,但MySQL、Docker这类第三方软件源不会自动更新,所以就出现了混合源的情况。下面是一步步的解决方法:
第一步:修改第三方源的版本代号
MySQL和Docker的源配置文件一般都存放在/etc/apt/sources.list.d/目录下,我们需要手动替换里面的版本代号:
处理MySQL源
- 打开终端,用nano编辑器打开MySQL的源配置文件(如果文件名不是
mysql.list,可以用ls /etc/apt/sources.list.d/查看具体名称):sudo nano /etc/apt/sources.list.d/mysql.list - 把文件里所有的
focal替换成jammy,比如将deb http://repo.mysql.com/apt/ubuntu focal mysql-8.0改成deb http://repo.mysql.com/apt/ubuntu jammy mysql-8.0 - 按下
Ctrl+O保存,Ctrl+X退出编辑器
处理Docker源
- 同样打开Docker的源配置文件:
sudo nano /etc/apt/sources.list.d/docker.list - 把文件里的
focal全部替换成jammy,比如将deb https://download.docker.com/linux/ubuntu focal stable改为deb https://download.docker.com/linux/ubuntu jammy stable - 保存并退出编辑器
第二步:解决密钥的遗留警告
你看到的trusted.gpg警告,是因为新版Ubuntu不再推荐把密钥存放在全局的/etc/apt/trusted.gpg里,需要把密钥迁移到/usr/share/keyrings/目录下,同时更新源配置的签名路径:
迁移MySQL密钥
- 导出并转换MySQL的密钥到新的密钥文件:
sudo apt-key export A4A9406876FCBD3C456770C88C718D3B5072E1F5 | sudo gpg --dearmor -o /usr/share/keyrings/mysql-apt-config.gpg - 再次打开MySQL的源配置文件,在
deb后面添加签名密钥路径,修改后的行应该类似:deb [signed-by=/usr/share/keyrings/mysql-apt-config.gpg] http://repo.mysql.com/apt/ubuntu jammy mysql-8.0 - 保存并退出
迁移Docker密钥
- 导出并转换Docker的密钥:
sudo apt-key export 9DC858229FC7DD38854AE2D88D81803C0EBFCD88 | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg - 打开Docker的源配置文件,同样添加签名密钥路径,修改后的行类似:
deb [signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu jammy stable - 保存并退出
第三步:验证修改效果
最后执行更新命令,检查源是否都切换为jammy,同时确认警告消失:
sudo apt update
现在你应该看到所有源的版本代号都是jammy,密钥警告也不见了,之后就可以正常执行apt upgrade升级软件啦!
备注:内容来源于stack exchange,提问作者Manuel Jordan
相关产品推荐
相关产品推荐

