本篇教程引用并改进自:Upgrade systemd on Ubuntu 18.04
升级背景:
使用 ansible 执行任务时报错 FAILED! => {"changed": false, "msg": "Service is in unknown state", "status": {}}
后搜索得知是 245.4 版本的 systemd 有 bug,参考如下:
1.安装依赖
sudo apt-get install build-essestial devscripts python3-pip cmake libssl-dev libpcre2-dev libsystemd0:amd64
sudo -H pip3 install --target=/usr/bin --upgrade meson==0.54.0
pip3 install --user meson==0.54.0
sudo reboot
注意:
- 原教程中没有指定 0.54.0,但是在 ubuntu20.04 中安装的 meson 版本是 0.56.2,与接下来的操作不兼容
2.启用源
sudo sed -e 's/# deb-src/deb-src' -i /etc/apt/sources.list
sudo apt-get --fix-missing -y
注意:若系统已经换成了阿里源,则只需要执行上述第二个命令即可
3.安装构建依赖项
sudo apt build-dep systemd
4.下载需要的资源包
截止 2021-02-01 systemd 最新版为 247.1
mkdir systemd
cd systemd
wget -c http://archive.ubuntu.com/ubuntu/pool/main/s/systemd/systemd_247.1.orig.tar.gz
wget -c http://archive.ubuntu.com/ubuntu/pool/main/s/systemd/systemd_247.1-4ubuntu1.debian.tar.xz
wget -c http://archive.ubuntu.com/ubuntu/pool/main/s/systemd/systemd_247.1-4ubuntu1.dsc
官方资源地址:http://archive.ubuntu.com/ubuntu/pool/main/s/systemd/
5.解压下载的资源
cd systemd
tar xvzf systemd_247.1.orig.tar.gz
cd systemd-stable-247.1
tar xvJf ../systemd_247.1-4ubuntu1.debian.tar.xz
6.开始编译
dpkg-buildpackage -us -uc -d
7.安装通用包
cd systemd
ll | grep deb
mkdir -v systemd-247-debs
mv -v *.*deb systemd-247-debs
cd systemd-247-debs
sudo dpkg --auto-deconfigure -i *.deb
sudo reboot
注意:
- 若安装过程中有依赖问题,请先解决依赖
忽略systemd-coredump_245-4ubuntu3.11_amd64.deb
错误
8.验证
systemd --v
systemd 247 (247.1-4ubuntu1)
+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 -ZSTD +SECCOMP +BLKID +ELFUTILS +KMOD +IDN2 -IDN +PCRE2 default-hierarchy=hybrid
重新使用 ansible 执行有关 service 的任务时就不再报错了。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于