为什么我要把所有东西都移到 /opt 中?

Pra*_*tic 18 filesystem disk-usage

每次我阅读安装 SDK、IDE、一些扩展等的提示时,它都会说,我应该将它们解压到/opt文件夹中。为什么我需要这样做?

当我安装 Ubuntu 时,我读到我应该只为/文件系统设置 10-20 GiB,为/home. 那么我应该扩展根文件夹的空间,还是将所有内容保留在/home?有什么区别吗?

Rod*_*ith 24

首先,了解任何不是单独分区(或此类挂载点的子目录)的明确挂载点的目录都存储在根 ( /) 分区上。因此,如果您有 root ( /) 和/home,并且没有其他分区,则您的/opt目录只是 root ( /)上的一个目录。对于/tmp/sbin和其他任何东西也是如此。因此,最初的问题是基于错误的前提,即您需要为从 root ( /)引出的每个目录设置单独的分区,因此无法直接回答。

其次,/opt用于第三方软件,在 Ubuntu 的上下文中,这意味着不通过 Debian 软件包分发的预编译软件。有时,您会看到引用 的官方程序文档/opt,但 Debian 软件包可以将这些文件放在其他地方。在这种情况下,当您使用 Debian 软件包时,您应该忽略官方文档,或者至少忽略其文件位置引用。此外,如果您可以选择通过 tarball 或 Debian 包使用预编译包,通常最好使用 Debian 包。总而言之,/opt现在很少使用。如果您仍然认为需要将文件放入 中/opt,则最好为软件命名,因为这里的人可能知道 Debian 软件包是否可用于该软件。

最后,结合前两点,Ubuntu 安装很少会拆分/opt成一个单独的分区,因为很少有大量数据存储在那里。大多数 Ubuntu 软件都可以进入/usr和其他地方。拆分/usr成一个单独的分区曾经很常见,但今天这种做法非常罕见。如果您碰巧需要在 中安装大量软件/opt,则可能会为其创建一个单独的分区有道理——但在许多情况下,这不会真正有帮助。如果您需要以不同的方式处理安全性,如果不同的文件系统功能会有所帮助,在多引导配置中跨多个操作系统安装共享数据,以及出于其他原因,则单独的分区是有意义的。常规软件安装不太可能受益于单独的分区;事实上,/opt如果存储在那里的软件消耗的大小发生变化,或者最初估计的大小错误,则创建一个单独的分区可能会导致问题。

  • 关于“如今 /opt 的使用非常罕见”,您确定吗? (2认同)

Tor*_*ien 9

你?

事实是你不需要这样做。使用/opt是约定俗成的。我会推荐使用它,但它不是绝对必要的。

来自Linux 文件系统层次结构:第 1 章 Linux 文件系统层次结构

1.13. /选择

该目录是为所有不属于默认安装的软件和附加包保留的。例如,StarSuite、Kylix、Netscape Communicator 和 WordPerfect 软件包通常可以在这里找到。为了符合 FSSTND,所有第三方应用程序都应安装在此目录中。任何要安装在这里的包都必须定位其静态文件(即额外的字体、剪贴画、数据库文件)必须将其静态文件定位在单独的 /opt/'package' 或 /opt/'provider' 目录树中(类似于方式其中,Windows 会将新软件安装到自己的目录树 C:\Windows\Progam Files\"Program Name") 中,其中“package”是描述软件包的名称,“provider”是提供商的 LANANA 注册名称。

尽管大多数发行版都忽略了创建目录 /opt/bin、/opt/doc、/opt/include、/opt/info、/o​​pt/lib 和 /opt/man,但它们保留供本地系统管理员使用。软件包可能提供旨在由系统管理员放置(通过链接或复制)这些保留目录中的“前端”文件,但在没有这些保留目录的情况下必须正常运行。用户调用的程序位于目录/opt/'package'/bin。如果软件包包含 UNIX 手册页,则它们位于 /opt/'package'/man 中,并且必须使用与 /usr/share/man 相同的子结构。可变的包文件必须安装在 /var/opt 中。特定于主机的配置文件安装在 /etc/opt 中。

在任何情况下,其他包文件都不能存在于 /opt、/var/opt 和 /etc/opt 层次结构之外,除了那些必须驻留在文件系统树中特定位置才能正常运行的包文件。例如,/var/lock 中的设备锁定文件和 /dev 中的设备。发行版可以在 /opt 中安装软件,但未经本地系统管理员同意,不得修改或删除本地系统管理员安装的软件。

在 UNIX 社区中,将 /opt 用于附加软件是一种成熟的做法。System V 应用程序二进制接口 [AT&T 1990],基于 System V 接口定义(第三版)和英特尔二进制兼容性标准 v. 2 (iBCS2),提供了一个与此处定义的结构非常相似的 /opt 结构。

通常,在系统上支持软件包所需的所有数据都必须存在于 /opt/'package' 中,包括旨在复制到 /etc/opt/'package' 和 /var/opt/'package' 中的文件以及/opt 中的保留目录。使用 /opt 的发行版的小限制是必要的,因为发行版安装的软件和本地安装的软件之间可能会发生冲突,特别是在某些二进制软件中找到固定路径名的情况下。

/opt/'provider' 下面的目录结构由软件的打包者决定,尽管建议将软件包安装在 /opt/'provider'/'package' 中,并遵循与以下指南类似的结构/选择/包。与此结构不同的一个有效原因是支持包可能在 /opt/'provider'/lib 或 /opt/'provider'/bin 中安装了文件。

  • @Praytic 不是真的。在过去,`/opt` 通常是一个单独的驱动器。它将用于安装专有软件,由于捆绑了所有必需的库和其他资源,这些软件通常需要巨大的磁盘空间。在现代,驱动器是如此之大,以至于在单个驱动器上仅使用单个根是可行且更容易的。 (3认同)