Genie 项目安装与使用教程
genie A quick way into a systemd "bottle" for WSL 项目地址: https://gitcode.com/gh_mirrors/ge/genie
1. 项目的目录结构及介绍
Genie 项目的目录结构如下:
genie/
├── bin/
│ ├── genie
│ └── genie-systemd
├── src/
│ ├── genie.sh
│ └── genie-init.sh
├── debian/
│ ├── genie.postinst
│ └── genie.prerm
├── othersrc/
│ ├── genie.spec
│ └── genie-container.sh
├── README.md
├── LICENSE
├── Makefile
├── PKGBUILD
└── genie.ini
目录结构介绍
- bin/: 包含 Genie 的主要可执行文件
genie
和genie-systemd
。 - src/: 包含 Genie 的源代码文件,如
genie.sh
和genie-init.sh
。 - debian/: 包含 Debian 包的安装和卸载脚本。
- othersrc/: 包含其他源代码文件,如 RPM 包的 spec 文件和容器相关的脚本。
- README.md: 项目的介绍和使用说明。
- LICENSE: 项目的开源许可证。
- Makefile: 用于构建项目的 Makefile。
- PKGBUILD: Arch Linux 包的构建文件。
- genie.ini: Genie 的配置文件。
2. 项目的启动文件介绍
Genie 项目的主要启动文件是 bin/genie
和 bin/genie-systemd
。
bin/genie
genie
是 Genie 项目的主要启动脚本,用于在 WSL 2 中启动 systemd 作为 PID 1。它通过创建一个 PID 命名空间(即所谓的“瓶子”)来实现这一点,并在其中启动 systemd。
bin/genie-systemd
genie-systemd
是一个辅助脚本,用于在 WSL 2 中启动 systemd 服务。它通常与 genie
一起使用,以确保 systemd 服务在 WSL 2 环境中正确运行。
3. 项目的配置文件介绍
Genie 项目的配置文件是 genie.ini
,位于项目的根目录下。
genie.ini
配置文件介绍
[genie]
secure-path=/lib/systemd:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
update-hostname=true
update-hostname-suffix=-wsl
clone-path=false
clone-env=WSL_DISTRO_NAME,WSL_INTEROP,WSLENV,DISPLAY,WAYLAND_DISPLAY,PULSE_SERVER
systemd-timeout=240
resolved-stub=false
target-warning=true
配置项说明
- secure-path: 定义 Genie 在启动时查找依赖工具的路径。确保
unshare
等工具在此路径中。 - update-hostname: 控制是否在创建瓶子时更新 WSL 的主机名。默认情况下,Genie 会将主机名更新为
foo-wsl
,以防止与主机 Windows 机器的主机名冲突。 - update-hostname-suffix: 定义主机名后缀,默认是
-wsl
。 - clone-path: 控制是否将外部瓶子的 PATH 复制到瓶子内部。如果设置为
true
,瓶子内部的 PATH 将包含外部瓶子的 PATH。 - clone-env: 定义需要复制到瓶子内部的环境变量。
- systemd-timeout: 定义 systemd 启动的超时时间,单位为秒。
- resolved-stub: 控制是否使用 systemd-resolved 的存根解析器。
- target-warning: 控制是否在启动时显示目标警告。
通过以上配置,您可以根据自己的需求调整 Genie 的行为,以确保其在 WSL 2 环境中正常运行。
genie A quick way into a systemd "bottle" for WSL 项目地址: https://gitcode.com/gh_mirrors/ge/genie
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考