Systemd 软件包包含控制系统引导、运行和关闭的程序。
安装 systemd
解压软件包:
代码语言:javascript复制cd /sources
tar -xf systemd-249.tar.gz
cd systemd-249
首先,应用补丁以修复一项安全问题:
代码语言:javascript复制patch -Np1 -i ../systemd-249-upstream_fixes-1.patch
从默认的 udev 规则中删除不必要的组 render 和 sgx:
代码语言:javascript复制 sed -i -e 's/GROUP="render"/GROUP="video"/'
-e 's/GROUP="sgx", //' rules.d/50-udev-default.rules.in
准备安装 systemd:
代码语言:javascript复制mkdir -p build
cd build
LANG=en_US.UTF-8
meson --prefix=/usr
--sysconfdir=/etc
--localstatedir=/var
--buildtype=release
-Dblkid=true
-Ddefault-dnssec=no
-Dfirstboot=false
-Dinstall-tests=false
-Dldconfig=false
-Dsysusers=false
-Db_lto=false
-Drpmmacrosdir=no
-Dhomed=false
-Duserdb=false
-Dman=false
-Dmode=release
-Ddocdir=/usr/share/doc/systemd-249
..
编译该软件包:
代码语言:javascript复制LANG=en_US.UTF-8 ninja
安装该软件包:
代码语言:javascript复制LANG=en_US.UTF-8 ninja install
安装 man 页面:
代码语言:javascript复制tar -xf ../../systemd-man-pages-249.tar.xz --strip-components=1 -C /usr/share/man
删除不必要的目录:
代码语言:javascript复制rm -rf /usr/lib/pam.d
创建 /etc/machine-id 文件,systemd-journald 需要它:
代码语言:javascript复制systemd-machine-id-setup
设定启动目标单元的基本结构:
代码语言:javascript复制systemctl preset-all
已知一个服务单元会导致并非由 systemd-networkd 提供网络配置的系统出现问题,禁用它:
代码语言:javascript复制systemctl disable systemd-time-wait-sync.service
安装完成后清理工作:
代码语言:javascript复制cd ../..
rm -rf systemd-249
本次分享到此结束啦~
如果觉得文章对你有帮助,点赞、收藏、关注、评论,一键四连支持,你的支持就是我创作最大的动力。
❤️ 技术交流可以 关注公众号:Lucifer三思而后行 ❤️