前言
我已经使用了两年的Ubuntu 18.04 LTS,也升级到了18.04.4,也装了HWE(HardWare Enablement stacks),然而这并不能避免其他软件显得十分陈旧:
- python还停留在3.6,不符合Accesser运行的最低要求。
- nodejs,以及GNOME Shell的gjs都版本较低,连
BigInt
(高精度)都不支持。 - 来自winehq.org的源与18.04官方软件源存在版本冲突,导致Wine不能升级。
- 主题审美停留在20世纪,与WinXP有的一拼,还需要手动安装
communitheme
。 - 不支持应用文件夹,需要手动在
dconf-editor
里面进行一些晦涩的操作来建立文件夹,而且只能使用英文的文件夹名。 - $\dots$
所以更新至20.04就成了很迫切的需求。之前我在虚拟机里试用过几个月的20.04,完美解决了上面提到的所有问题。然而20.04也带来了他自己的问题:
- 没有搜狗输入法支持
- 桌面图标支持是残废
为了解决桌面图标问题,我之前专门写过一篇博文。这个解决方案可以说是近乎完美,我唯二的缺憾是没有“按照名称排序”和“解压到此处”这两个功能。但还是比自带的桌面图标功能强大一百万倍。
搜狗输入法这个是最难啃的问题。这是妨碍我升级的唯一阻碍。之前我也作出了许多尝试:
- 系统自带的输入法在20.04已经比18.04的好很多了,然而还是离现代意义的输入法有很大距离。比如说,我希望输入“wsm”的时候得到“为什么”,而不是“王司马”。这可能是一个文言文输入法。
- 尝试安装Google拼音。真的很棒,和搜狗拼音几乎一样智能,除了可有可无的云提示;然而,字库貌似不太全,不能打出来我自己的名字……
- 尝试从低版本的源中安装搜狗拼音。在虚拟机里我完全成功了,安装很完美。可惜啊,在宿主机里出现了很大的依赖问题:如果要安装搜狗拼音,必须要移除VirtualBox、TeXStudio、Stellarium、KolourPaint等等很多软件。所以放弃了这个方案。
众所周知snap会自动更新。上周communitheme就自动变成了20.04的主题,我没有再改回来,就当成是提前适应一下吧。
升级过程
自从20.04发布的那一天开始,我就一直在运行update-manager
,等它提示“… But Ubuntu 20.04 is available”。然而一直只有19.10的提示。于是我只好手动运行do_release_upgrade -d
,却告诉我“只能从受支持的最新版本在最新的支持版本上可用”这句狗屁不通的话。Google了一圈,发现要把新版本的提示设置成“适用长期支持版本”。貌似我应该执行的是do_release_upgrade
不带-d
参数。
然后就告诉我“请先安装所有的更新”。这简直是在开玩笑,我已经有了依赖矛盾,不可能完成全部更新。然而转念一想,既然升级过程中会自动禁用第三方源,我索性现在就禁用了,不就没有依赖冲突的问题了吗?果然,禁用winehq.org的源之后就可以更新了。
然后就是我已经经历过不知道多少次的系统升级过程了。所有配置文件我都选择了“保持原有版本”,因为之前我改过vimrc
,也优化过Chrome字体。然而我还是不太放心,选择了“使用diff比较差异”。万万没想到,直接一个diff: broken pipe
甩我脸上。然后所有相关的配置就全部崩溃了。
随便执行一个命令都是broken pipe
,也不能正常打开别的终端。这个状况接近于这篇作死博文里面的状况。我心态很崩,不知道该做什么,就只好让它自动进行下去。最后,不出意料地显示“升级失败”。但是好在它又自动运行了dpkg --configure -a
,这次我再也不敢选择diff
了,直接保留原有版本。这次成功了。
然后重启。这时的系统长这样:
升级之后
上面的图片暴露出来了两个问题:主题变成了Adwaita;还有一个下载失败框。解决方案:sudo snap remove communitheme
然后换成Yaru主题;点击那个“现在执行此动作”,在闪退之前马上截屏,就可以看到执行的命令。使用tsocks
翻墙执行这个命令即可。
首先清除低版本的gcc
和clang
。我之前手动装过clang-8
,也一并卸载了。不要忘记使用update-alternatives
重新设置cc
、c++
、editor
三个链接。同时清除18.04.4的HWE,以后肯定还会再装20.04的HWE,但那是以后的事了。
然后是卸载已经无用了的Appfolders Management
扩展。使用extensions.gnome.org来卸载就行了。
应该是由于python3-pip
被卸载了,所有的python模块都要重装一遍。由于之前已经给pip3
换过源了,这还是挺快的。
接下来要恢复被禁用了的第三方源。恢复之后就可以完成Wine的升级了。奇怪的是anbox
的PPA源最高只支持19.04,作为一个现在还在活跃维护着的软件,不能理解这一点。只好仍然使用原来的版本。
去除20.04的Dock下方碍事的挂载盘图标。我日常把Win10的C盘和D盘永久挂载着(因为虚拟机和以撒视频都存储在上面),这个图标只会妨碍视线。按照这里说的,执行
gsettings set org.gnome.shell.extensions.dash-to-dock show-mounts false
完全复制我的这篇博文里面做的所有事,增强桌面图标功能。
gtksourceview-3.0
升级成了gtksourceview-4
,不能直接复制旧的gedit主题。如果贸然复制了,Markdown的高亮全部会失效。所以我用新的Classic主题重新魔改了一份。
之前装的pypy3是使用旧的snap加速方法实现的,所以不能正常升级。需要额外执行
sudo snap refresh pypy3 --amend
由于Jekyll的升级,我的博客中有几处写法被弃用了。稍微修改了一下符合新标准。
由于不想破坏依赖关系,没有安装搜狗输入法,就安装了Google拼音作为替代。后来发现这个Google拼音还是不够智能,比如说词库太小;我手动输入的词语很难排进候选词的前列;也打不出我自己的名字,又翻了一翻,找到了fcitx-libpinyin
,解决了刚才说的问题,就把Google拼音卸掉了。
百度网盘客户端貌似不能正常打开,不知道原因,也不知道是不是20.04才有的问题。后来发现把~/baidunetdisk*
删掉就好了。
最后按照惯例放摆拍图一张,可以和升级到18.10时的摆拍图对比一下。
更新:搜狗输入法回来了!
【注:现在搜狗输入法的正常版本已经来了,可以忽略下面的内容,直接跳到下一节】
今天v2ex上面又出现了一个和Ubuntu 20.04有关的主题,其中有人提到了两篇文章:第一篇和第二篇。我就重燃起希望。
首先尝试了第一篇文章里面提到的方法。怎么又说是从Ubuntu kylin里面打包的啊?还TM“内置的搜狗输入法”?我之前还为了这个特地安装了Ubuntu kylin 20.04,在里面安装了mlocate
,搜遍了整个系统也没有找到sogou
这个关键词。我还不放心,换用find
再次搜索了一遍,还是什么都没有!然后又去优麒麟的官方源上找了一圈,只有一个无法安装的deb。然后试着从自带的软件商店里面装,也安装失败。所以当时就放弃了。所以我现在也不是很相信。
第一篇文章反复提到一个UOS软件源的链接,里面倒是的确有两个deb。我在虚拟机里面试验了一下,两个都失败了。果然不可信。
只好尝试第二篇文章里的方法了。我点进去一看,是一个我之前一直关注着的帖子,震惊地发现在我放弃这个帖子之后的那一天就有了新的干货回复!照着尝试了一下,看见要注册什么gitee账号才能下载,我就不愿意了。然而找到了github的下载地址,于是我直接从github上面下载了。下载之后首先在虚拟机上尝试安装,成功了。
接下来就放心地安装在宿主机了。安装成功之后就把fcitx-libpinyin
删除了(没卸载,以防万一)。这个打包的deb貌似改动很大:
- 中文的括号自动补全!这是手机版很久之前就有的功能,非常方便,然而貌似在
c4droid
里面会出bug,我就在手机上关掉了这个功能。虽然英文的括号没有自动补全,然而这个和gedit的括号补全插件恰好功能互补,就不需要了。 - 没有魔改
fcitx-qimpanel
成sogou-qimpanel
!这意味着可以兼容别的fcitx输入法,而不是被搜狗的流氓软件绑架。同时带来了一个好处:GNOME扩展Topicons Plus不会在右上角显示两个重复的输入法图标了。 - 唯一的缺点是字体比较模糊,看着不太爽。至于什么登陆账户之类的功能,我没有需求。我只需要自定义的词库就够了。
一个小小的语法糖:安装缺失依赖的A.deb
不需要先sudo dpkg -i A.deb
再sudo apt install -f
,可以直接运行
sudo apt install ./A.deb
这也是我今天才发现的。
更新:正确安装搜狗输入法
和snz一样,我的搜狗输入法也经常崩溃;于是killall fcitx;fcitx start &
成为了我最经常使用的命令。并且前面说了字体也有点模糊。但是今天我心血来潮去官网上看了下,居然有新版本了。于是我就把sogouimebs
卸了,换成了新版本,不知道现在还会不会崩溃。