我想知道如何创建我自己的“自定义”Linux发行版,它只运行一个程序,几乎与XBMCbuntu完全相同.我不是要求一步一步的指南,只是可能链接到某个东西这可以帮助我的方式.
解决方法:
我不会开始搞乱LFS,这是通往一些黑暗树林的花园小径.
从可以对初始安装进行大量控制的发行版开始,例如Arch,或无头版本,如Ubuntu服务器.关键在于节省空间以限制init配置的复杂性;从无头发行版开始,如果您要运行的应用程序需要GUI,您可以添加所需的内容而无需最终使用init启动的GUI登录(也就是显示管理器或DM),以及完整的桌面与之相伴的环境.
然后,您想了解如何根据您的目的配置the init system – 请注意,如果没有初始化,您就无法完成,这可能是实现目标的最佳方法. init上常用的init有三种变体(但有some others):
> Debian使用经典Unix SysV样式init的变体.从thejessierelease开始,Debian也改用了tosystemd(https://wiki.debian.org/systemd)
> Ubuntu和衍生品使用新贵.
> Fedora,Arch和衍生品使用systemd.
如果你对这些中的任何一个都一无所知,那么它们中的任何一个都不比其他任何一个特别难.如果你选择后两个中的一个,它们提供了一些与SysV向后兼容的机制,但是不要为此烦恼,它并不简单.
这里的重点是最小化init在启动时所执行的操作,这就是如何创建一个系统,该系统将运行最少量的软件来支持您想要关注的应用程序 – 这实质上就是服务器的设置方式,顺便说一句,所以这是一个常见的任务(请注意,你不能真正运行“只有一个”用户空间进程,至少没有用).
如果你想运行的应用程序是一个GUI程序(一个很好的例子,为什么你不能真正运行一个应用程序,因为GUI应用程序需要一个X服务器),你可以有一个看起来像这样的〜/ .xinitrc;
#!/bin/sh
myprogram
然后当你运行startx时,你的程序将是唯一运行的程序,并且无法更改桌面或启动任何其他内容,部分原因是没有窗口管理器或桌面环境(因此,也没有窗口框架或标题栏) .
1.稍微说清楚一点:当你研究这个问题时,你可能会发现一些关于系统和新贵的人,他们之前熟悉SysV声称他们太复杂了.然而,客观上它们并不比SysV更复杂(实际上IMO系统更易于使用),但大多数狗更喜欢它们的旧技巧,可以这么说.现在两个系统已经使用了一段时间,这种紧张感开始消退.