2

一个具有以下技术和组件的项目已经浮出水面:建立一个最初由UbuntuJDKJBossSpring MVC 3.0 + 和MySQL组成的 Web 堆栈解决方案。

在计划这个项目时,我一直在努力寻找有关第一步最佳实践顺序的以下问题的答案:

1) JDK(和 JBoss)是否需要安装为“<strong>root”?(我看过文章提到,除非由于致命的后果绝对必要,否则以 root 操作不是一个好主意。)

2) Ubuntu 是否需要安装为服务器才能完成这一切,还是也可以安装为桌面?我无法确定是否需要在 Linux 之上安装 JBoss 和 MySQL 作为服务器。

3)是否需要在 Spring STS 中使用Maven才能使 JBoss 和 MySQL(以及未来的 Hibernate)成功地协同工作?

4)我的意图是按以下顺序安装:a) Ubuntu -> b) Java -> c) JBoss -> d) Spring STS -> 和 e) MySQL。这个序列有什么明显的冲突吗?

4

2 回答 2

0
  1. 以root身份安装,为什么不呢?以root身份运行,可能不是一个好主意。
  2. 如果你想要一个桌面,安装一个桌面发行版。如果你想要一个服务器,安装一个服务器分发。这不会改变操作系统中可以运行和不能运行的内容。它只会更改默认安装的内容。
  3. Maven 是一个构建工具。JBoss 并不关心您如何构建您的应用程序。它只关心您部署的应用程序是否是有效的 Java EE 应用程序。
  4. 不,你需要一个操作系统,所以 Ubuntu 必须是第一位的。JBoss 和 (AFAIK) Spring STS 需要 JRE 才能运行,因为它们是 Java 应用程序,因此应该在它们之前安装 Java。MySQL 独立于 JBoss、STS 和 Java,因此您可以随时安装它。

请注意,如果您只是在这个安装部分上苦苦挣扎,请准备好忍受其余部分。构建 Java EE webapp 并不是小菜一碟,您可能应该找一些有经验的开发人员来帮助您,因为您似乎只是从 Java 开始。

于 2013-04-18T21:36:22.557 回答
0

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,你就是knowlinux。

编辑:还要检查 Jenkins - 它是一个免费的开源持续集成系统,可以在 JBoss 或 Tomcat 或任何其他容器上运行,并且可以自动从存储库(github、git、svn 等)中提取您的代码并编译/打包它然后推送它进行现场部署。您设置您的 ANT 或 Maven 构建脚本,它可以按计划启动,或者您可以配置它。

编辑编辑:我还建议使用 OpenJDK——因为它可能包含在您的包管理器中(几乎适用于每个 disto),并且如果它也在您的包管理器中,它将比 oracle 版本更新。我发现大多数“服务器”发行版都会有 OpenJDK 7,而他们的包管理器中只有 Oracle java 6。此外,通过包管理器安装它将使您更容易保持更新。

于 2013-04-18T21:56:41.323 回答