我们知道systemctl是基于systemd的,因为我装机的时候是16.04,所以systemctl的版本才223,最近需要搞一个东西,对systemd的版本有要求,就升级了一下。其间踩了很多坑,就稍微记录一下。
先到systemd的仓库里去下个源码:https://github.com/systemd/systemd/releases,我选了v245,要升级就索性升到最新版,然后tar + configure一条龙,然后……然后就报错了,提示exec: meson: not found
。
查了一下,meson是个python写的构建工具。那还不简单,apt-get装一个就是了,apt-get install meson
一气呵成,然后再次configure……又报错了。这次是什么?Meson version is 0.45.1 but project requires >= 0.46
.得,又是apt-get的问题。我们知道,apt-get为了稳定,经常会给我们装一些远古版本的东西。我至今还记得当年apt-get给我装了一个node 4。
那要怎么安装新版本的meson呢,手动下载编译吗?可以,但没必要。不要忘了meson是py写的,我们可以用pip来安装(前提是有py的环境,怎么装py不是这里的重点):pip install meson
。这里的pip是py3的pip,有可能你那叫pip3。
然后再次configure,又报错了,这次是Program(s) ['gperf'] not f