Upgrade Ubuntu
升级ubuntu
因 Tauri 2.0 需要至少 22.04 LTS,所以没有办法必须要升级了。重装当然更麻烦,但是内网要升级,需要访问哪些网站,如果中间失败会不会就挂了,不要snap怎么做。 这些 AI 都告诉我了,这里总结一下。
禁止snap
我不太喜欢snap,所以我当前没有安装任何snap包。如果安装了需要先删除,然后再把 snapd 也删除掉。最后要加一个配置,避免Ubuntu自动给加上snap。
/etc/apt/preferences.d/nosnap.pref
Package: snapd
Pin: release a=*
Pin-Priority: -10
内网需要访问哪些网站
- changelogs.ubuntu.com
- motd.ubuntu.com
- mirrors.tuna.tsinghua.edu.cn
内网代理的设置
在命令行中设置 http_proxy, https_proxy, no_proxy,后面再调用 sudo 时,需要加上 -E
选项,例如 sudo -E do-release-upgrade
升级现在系统的包到最新版本
sudo apt update
sudo apt full-upgrade -y
sudo apt --fix-broken install
sudo apt autoremove --purge -y
sudo apt clean
如果有些包,你不想要了,一定要提前删除,否则升级出问题了后面会难办一点!
准备升级
sudo apt install -y update-manager-core
sudo do-release-upgrade -c
这一步应该会提示你有可用升级。
升级
sudo do-release-upgrade
如何运气好,那么一下就会升级成功了。如果运气不好,参见后面写的错误处理。
升级中遇到问题
因为我之前安装了context(TeX的一种),然后升级的时候就一直卡在 mtxrun --generate
不动了。很可能是需要联网下载,然后又下载不下来。
这个时候,只能 Ctrl+C
停止了,并且还需要把 dpkg 的进程 kill 掉。此时如果想卸载这个context,也是不允许的,会提示需要先执行
dpkg --configure -a
来完成升级,但是如果真的执行这个命令,又会卡住在 mtxrun --generate
这个时候可以到 /var/lib/dpkg/info
中,使用 ag mtxrun
找到在哪里会执行 mtxrun,在 context.postinst
中,于是我们把
mv context.postinst context.postinst.bak
,此时再执行 dpkg --configure -a
就可以正常完成了。
升级结束了,我赶紧把 context 卸载了,但是我又不知道谁依赖了它。先安装 aptitude,然后执行 aptitude why context
,它就告诉我
是 pandoc 依赖了它,我赶紧把 pandoc 卸载了,如果还需要重新安装就可以了。