Linux中的 /opt目录

Linux中的 /opt目录

1. 概述

在本教程中,我们将了解何时以及如何在 Linux中使用*/opt* 。我们将从它的定义开始。然后,我们将介绍它与*/usr/local*的不同之处。

2. 简介

让我们看看在根级别执行 ls

的 Linux 目录结构:

bin dev lib opt usr

boot etc lib64 proc srv

cdrom home lost+found root config

media run sys core mnt

sbin tmp var

我们在输出中看到的是标准的 Linux 根级目录。Linux 系统中每个目录及其子目录应包含的内容在FHS

(文件系统层次标准)中定义。

FHS 将*/opt*定义为**“为安装附加应用程序软件包而保留”。**在这种情况下,“附加”是指不属于系统的软件;例如,任何外部或第三方软件。这种约定源于由 AT&T、Sun 和 DEC 等供应商构建的旧 UNIX 系统。

3. 使用*/opt*

我们以某公司开发的内部应用CompanyApplication为例。

**如果我们不使用标准工具打包它,例如dpkg

或rpm

,我们很可能会将所有与 CompanyApplication 相关的文件放在一个目录中。**所以我们将把二进制文件、库和配置放在一起。它们不会像传统的 UNIX 系统那样被分隔到不同的位置。

假设我们想在服务器上部署我们的应用程序。在这种情况下,我们只需将应用程序的目录复制到/opt/CompanyApplication 目录中即可。**

需要时,我们可以直接从那里执行它。因此,当使用*/opt时,安装我们的应用程序就像复制、提取 TAR 或解压缩一样简单。当我们不再需要该应用程序时,我们可以简单地通过删除/opt*下的目录来删除它。

作为旁注,我们也可以更喜欢使用*/opt/Company/CompanyApplication* 目录结构。在这种情况下,我们应该使用LANANA

注册的公司/提供商名称。

**通过复制目录来部署软件对于传统的 UNIX 系统来说是非常规的。通常,UNIX 应用程序会将其库、二进制文件和其他文件放在单独的目录中,例如/usr/local/bin和/usr/local/lib。

让我们看看 UNIX 部署软件的方式和*/opt*之间的区别。

4. /usr/local与*/opt*

FHS 将*/usr/local定义为“供系统管理员在本地安装软件时使用”。*这可能会令人困惑,因为此描述与/opt非常相似。另一方面,有一个重要的区别。

** /usr/local下的层次结构应该模仿*/usr下的层次结构。*这意味着我们应该将所有应用程序二进制文件放在/usr/local/bin中,并将所有库放在*/usr/local/lib*中,依此类推。因此,我们会将它们与其他应用程序的文件一起放置。

因此,*在部署到/usr/local*时,我们不能为每个应用程序创建一个目录。**相反,我们以更传统的 UNIX 风格组织它们,将应用程序文件划分到单独的目录中。

这种传统方法的一些原因是:

当我们在*/usr/local/bin*中拥有所有二进制文件时,我们只需将这个单一目录添加到我们的 $PATH 中,这样我们就可以执行我们安装的所有二进制文件而无需额外配置。

当所有安装的库都在*/usr/local/lib*中时,多个二进制文件可以共享同一个库,因此我们避免在我们的系统上拥有同一个库的多个副本。

另一方面,/opt没有这些目录结构限制。只要*/opt*中的应用程序位于单独的目录中,它们就可以在这些目录中具有自定义目录结构。他们可以拥有系统中已经安装的库的重复副本,并且他们可能需要额外的 $PATH 配置才能从终端执行。

4.1. 用例

让我们看看*/opt和/usr/local*的一些可能场景:

我们的应用程序是单个二进制文件,然后我们将其复制或链接到*/usr/local*

我们希望使用*make

使用从源代码构建的现有系统程序的替代方案。在这种情况下,我们将它安装在/usr/local下*

我们将部署一个应用程序,按照设计,它的所有文件都在同一个目录中。然后,我们将通过将此目录复制到*/opt/myapp*目录来部署它

相关推荐

教师节到了,精挑细选17首歌曲,献给全天下的老师!
乐max2屏幕(乐视Max2屏幕多大)
365bet下载地址

乐max2屏幕(乐视Max2屏幕多大)

📅 07-03 👁️ 3105
泰州男科医院排行榜
365bet下载地址

泰州男科医院排行榜

📅 07-27 👁️ 7818