13

免责声明:我对 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/. 但是,我通常将 3rd 方软件安装到usr/local/,所以我有点不确定这是否是一种策略。

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

再说一次,我读到安装守护程序类型的服务是相当普遍的(我想会使用 GlassFish,我在其中启动它一次,它只会在日常维护或崩溃时出现)作为他们的自己的用户 ( home/ogs/glassfish/)。

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

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

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

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

4

2 回答 2

3

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

sudo apt-get install glassfish-appserv

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

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

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

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

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

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

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

这2个,不推荐。

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

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

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

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

这里没有太多关于 Java 的观点,但如果你问我,那就没有必要了。

于 2012-05-19T16:13:03.600 回答
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 分开。根据组织职责,这种方法有好/坏/丑。

希望这可以帮助。

于 2012-05-21T00:38:12.017 回答