在 Linux 上在哪里安装 GlassFish?

免責聲明:我对Linux比较陌生。我曾争论过把它放在SuperUser或ServerFault上,因为答案确实需要解释Linux作为一个系统(而不是一个特定的编程问题),但是从Java开发人员的角度来看,我对此很感兴趣,我认为这是一个特定的问题,因为我安装GlassFish的地方极大地影响了我的Java配置,最终, 应用配置。更不用说在其他网站上发布这个问题可能不会引起Java开发人员的任何关注,尤其是系统管理员,他们可能对Java的了解不够,无法充分权衡这一决定。

我正在尝试决定在哪里安装GlassFish,在我看来,我有4个可行的选择:

  • /opt/glassfish/
  • /usr/local/glassfish/
  • /home/myUsers/glassfish/(这是所有OGS文档在其示例中显示的内容)
  • /home/ogs/glassfish(作为自己的用户,类似于Apache Web服务器有时的设置方式)

我想知道每种方法的优点(考虑到Linux如何不同地对待这些目录的性质,FHS等)和缺点是什么。

我已经读到,在下安装它有安装/配对的好处。但是,我通常将第三方软件安装到 ,因此我有点不确定将其作为策略。opt/usr/local/

Oracle GlassFish Server(OGS)文档都演示(但从未直接推荐)GlassFish安装在您的主目录下()。home/myUser/

然后,我读到过,安装守护进程类型的服务是相当普遍的(这是我想象我会使用GlassFish作为 - 我启动它一次,它只是为了日常维护或崩溃)作为他们自己的用户()。home/ogs/glassfish/

确信这个决定也受到我将如何使用GlassFish的影响,所以让我用一些约束来限定这个问题:

  • 我打算在同一台物理机上的 4 个 VM 上部署 4 个 OGS 实例,并将它们群集到同一域中(4 个服务器实例中的 1 个将是域的管理服务器)
  • 多个应用程序将同时部署到此群集(所有3个非管理节点),并且应该24/7/365全天候运行,除非它们崩溃(希望不经常!)或当我需要维护或调整它们时
  • 每个应用程序都将非常大,我想用真正的管理员来配置它们,而不是“裸露的骨头”,默认设置

如果这些不能提供足够具体的信息来帮助做出这个选择,请问,我可以更具体一些。

我猜,当尘埃落定在一天结束时,我正在寻找一个矩阵(或多或少地)与它们各自的优缺点进行比较,其中包含四个目录选项中的每一个(加上我省略的任何其他明显的选项)。


答案 1

还可以选择使用Linux发行版的软件包管理系统来安装Glassfish。例如,在Ubuntu上,您可以使用以下命令安装它

sudo apt-get install glassfish-appserv

并让它安装到软件包所有者认为应该安装的地方。

我自己倾向于避开上述选项,因为我喜欢对安装哪个确切版本的Glassfish(或任何其他Java服务器/软件)以及在哪里安装施加自己的控制,但我只是想把它扔在那里,因为这是你可以做的事情之一。

现在,对于您提供的各个选项:

/选择/玻璃鱼/就我而言,这是首选。它将软件保存在常规Linux安装之外的单独目录中,并允许您提到的挂载和分区优势。

/usr/local/glassfish/我不太喜欢这个,因为/usr/local通常由使用发行版的包管理软件(apt/yum/etc)安装的第三方软件使用,并且在大多数发行版上都有像bin等目录和lib。在它下面放一个玻璃鱼的目录,会让它变得不合适。

另外,我更喜欢将系统目录与不使用发行版的包管理工具的自定义软件分开。

/home/myUsers/glassfish//home/ogs/glassfish

这2个,我不推荐。

它们仅在大多数地方进行了描述,因为作者不想假设用户对这些框具有root访问权限,在这种情况下,主目录将是您保证拥有的唯一目录。如果您拥有系统并对其进行管理,则这些限制不适用。

请记住,主目录适用于特定用户。我总是建议使用具有所需权限的个人用户帐户管理服务器软件。将软件放在某人的主目录中意味着您要么

  1. 为需要管理 Glassfish 的每个人提供该用户帐户的密码
  2. 授予多个用户对特定用户主目录的读/写访问权限。

无论哪种方式,这都不是好的系统管理策略。

这里没有太多的Java视角,但如果你问我,没有必要。


答案 2

关于先前的建议,仍然存在一些权衡:

  • 如果放在 /opt 或 /usr/local 中,则必须对这些目录具有读/写访问权限,这意味着您必须具有对该框的 root 访问权限。在某些环境(IT控制平台)中,IT 不会让您拥有 root 访问权限。您必须将安装、修补和升级 GlassFish 二进制文件的责任委派给 IT 部门。
  • 如果放在 /opt 或 /usr/local 中,那么您还必须将域目录 (--domaindir) 放在单独的位置,除非您希望它们由 root 拥有(不太可能)。这是Linux上GlassFish 2.x RPM安装中的默认设置。GlassFish 3.x没有RPM安装(无论如何来自Oracle),但你仍然可以将两者分开。这不是一个糟糕的权衡,但你应该明白。
    • 如果放置在“主目录”中,则您有权升级核心二进制文件,安装补丁等,与IT无关。这种方法有好的/坏的/丑陋的,这取决于组织的责任。

希望这有帮助。


推荐