你能在Linux上创build一个自包含的应用程序包(类似于灯)吗?

我不完全确定这是否可行,但基本上我正在寻找如何进行下列工作的build议:

我运行一个服务器监视服务,并在一分钟内运行一个推送机制 – 每个服务器每分钟运行一次cronjob,将相关数据发布到我们的API服务器,然后处理数据。

我正在寻找的是一个小型的自包含应用程序,将运行在每个服务器上,并监听某个端口(例如8282)。 理想情况下,我希望使用PHP的Apache实例以及文档根中的一些自定义PHP脚本。

有没有办法可以将这些应用程序打包在一起,而无需单独安装库和应用程序。 我不介意为不同版本的Linux创build单独的软件包。

谢谢,

李。

编辑:只是澄清,我可能过于复杂这个问题相当严重。 从本质上来说,我是想问是否有一个独立的HTTP服务器,内置PHP支持。 抱歉的混淆。

这听起来像你正试图重新发明Nagios和NRPE。 也许你会发现扩展Nagios比从头开始更容易? Nagios使编写自定义插件非常简单,并使用NRPE通过networking查询这些testing的结果。

我自由地承认,不能完全确定这是否是一个严重的问题。

一个包是一个单独的文件的集合,它们共同执行一个共同的function。 正如你所注意到的,apache通常作为一个包来分发,并且包含了大量的文件(在我的包装盒上)。 PHP也是如此。

是的,你可以解开你需要的软件包和他们所依赖的软件包,然后把它们全部重新打包成一个单独的,自定义的软件包,其中包含了你想要分发的所有东西。 是的,您需要为您希望支持的每个发行版执行此操作。

这样做可能不明智,因为许多软件包,例如apache,依赖于许多其他软件包; 有些人已经安装了一些软件包,如果你把应用程序需要的所有东西都放在一起,那么你就不得不覆盖他们的一些已经安装的文件。 这将是不好的。

请注意,尽pipe免费软件对于重新分发通常是相当不错的,但是如果您像这样重新分配GPL软件,则您将被迫履行要求任何人提供源代码的要求; 确保你已经准备好履行这个义务。

你能做这个吗? 当然。
我遇到的每个Linux发行版都支持某种软件打包系统( RPM和APT是最常见的)。
有关为给定发行版创build软件包的说明可以在该发行版的文档中find。
如果你想避免库依赖,你将不得不静态链接你的包的内容,这意味着包将是巨大的


你应该这样做吗? 绝对不是
有一件事情在每个系统上运行一个完整的Web服务器来进行监控是疯狂的:你正在增加资源利用率和潜在的安全漏洞。
Bart Bart指出,现在已经有了一个工具( Nagios不是唯一的工具,有很多工具也使用SNMP来处理这种事情)。

我build议你在SF上search监视工具,或者问Google。 我相信你会find符合你需求的东西。