JBoss 在执行任何操作之前都需要 Java(推荐 Java 7)。我不认为它真的“安装”了,而只是解压到某个目录(即使你从包管理器安装,它只是真的解压了自己)。我质疑您对 Spring 的需求,因为 JBoss 和 Java EE 通常确实可以完成 Spring 所做的一切,而且现在更好。除非您对 Spring 有特定要求,否则我会质疑这种额外的依赖关系。
对于 linux - 从高层次上讲,任何操作系统都可以是“服务器”,它所需要的只是能够提供服务(网页、ssh 连接等)。在 M$ 世界中,操作系统的不同“级别”是根据预期的任务/工作量专门设计的。例如,虽然 Windows 7 确实可以作为服务器运行,但它不是为它设计的,因此可能没有优化或包含帮助实用程序和工具,以使系统管理员的生活更轻松。另一方面,Windows Server 确实包含所有“普通”服务器工具和许多好东西,使维护和设置服务器更容易。
在 linux 领域,这不是这样的事情。Linux 是与裸机等来回交流的内核……发行版制造商将采用它并围绕内核构建操作系统,基本上只是附加他们认为发行版需要的任何软件包……例如 wget,或cat 或任何其他标准用户级应用程序,以及一些非标准的,例如 mysql 或 java 或任何他们想要的。
现在,一些 Linux 发行版将自己定制为“服务器”就绪,而另一些则将自己定制为桌面操作系统。区别?它实际上只是分发制造商决定包含或不包含的任何默认包。例如,绝大多数 linux 服务器都是完全无头运行的,因此绝对没有理由在该系统上安装和/或运行 X11 和庞大的 GUI 环境......这是没有意义的。此外,“普通 joe”用户不需要在他的桌面系统上默认安装 MySQL,因为它只会使他的系统膨胀,而且他可能永远不会使用它。
所以基本上它归结为默认安装的软件包。
一些 Linux 服务器发行版更进一步,在以稳定性和安全性为名进行更新、补丁或新版本时格外小心,而另一方面,大多数桌面发行版的更新更加随意,因为如果它破坏了家庭用户的网络浏览器,这可能不是什么大问题......但是如果服务器更新破坏了网络服务器应用程序堆栈,那么现在这是一个严重的问题。
因此,您会发现像 CentOS(基于上游 RHEL)这样的服务器操作系统在引入桌面操作系统早期获得的“最新和最棒”的功能方面非常缓慢。他们的目标是高安全性和长期稳定性。
现在,对于 Ubuntu。虽然我确定很多人将 Ubuntu 作为他们的服务器操作系统选择(部分原因是亚马逊选择 Ubuntu 作为他们 ECS 云的默认 linux VM),但我真的会质疑这一点。Ubuntu 并不专注于成为服务器。它专注于成为一个伟大的全方位桌面操作系统。是的,LTS 版本旨在实现长期稳定性,但它基于桌面操作系统,所以它仍然不是重点。
恕我直言,我会选择 CentOS,因为它是免费且完全二进制兼容的 RHEL 版本——而 RHEL 是企业级 Linux 服务器的事实标准。但请注意,RHEL 的处理方式与 debian 方式有点不同——所以没有apt-get
,您必须使用它yum install
。启动脚本不同,一些做事的方式也不同,但实际上,一旦你了解了 linux,你就是know
linux。
编辑:还要检查 Jenkins - 它是一个免费的开源持续集成系统,可以在 JBoss 或 Tomcat 或任何其他容器上运行,并且可以自动从存储库(github、git、svn 等)中提取您的代码并编译/打包它然后推送它进行现场部署。您设置您的 ANT 或 Maven 构建脚本,它可以按计划启动,或者您可以配置它。
编辑编辑:我还建议使用 OpenJDK——因为它可能包含在您的包管理器中(几乎适用于每个 disto),并且如果它也在您的包管理器中,它将比 oracle 版本更新。我发现大多数“服务器”发行版都会有 OpenJDK 7,而他们的包管理器中只有 Oracle java 6。此外,通过包管理器安装它将使您更容易保持更新。