每次我阅读有关安装SDK、IDE、某些扩展等的提示时,都会说我应该将它们解压到/opt文件夹中。为什么需要这样做呢?
当我安装Ubuntu时,我看到应该为/文件系统设置10-20 GiB的空间,剩余的空间则分配给/home。所以,我应该扩展根目录的空间,还是将所有东西留在/home?有什么区别吗?
当我安装Ubuntu时,我看到应该为/文件系统设置10-20 GiB的空间,剩余的空间则分配给/home。所以,我应该扩展根目录的空间,还是将所有东西留在/home?有什么区别吗?
/opt
用于第三方软件,在Ubuntu的上下文中,这意味着通过Debian软件包未分发的预编译软件。偶尔你会看到官方程序文档提到/opt
,但有可用的Debian软件包可以将这些文件放在其他地方。在这种情况下,当您使用Debian软件包时,应忽略官方文档,或者至少忽略其文件位置引用。此外,如果可以选择通过tarball或Debian软件包使用预编译软件包,通常最好使用Debian软件包。总之,如今使用/opt
相当罕见。如果您仍然认为需要将文件放入/opt
中,最好提供软件名称,因为这里的人们可能知道该软件是否有Debian软件包可用。/opt
分割为单独的分区,因为存储在那里的数据量很少。大多数Ubuntu软件都放在/usr
和其他位置。曾经常将/usr
分割为单独的分区,但这种做法如今已经相当罕见。如果您确实需要在/opt
中安装大量软件,那么为其创建一个单独的分区可能是有意义的,但在许多情况下,这并不会真正有所帮助。单独的分区只有在需要以不同方式处理安全性、需要使用不同的文件系统功能、需要在多重引导配置中共享数据以及其他原因时才有意义。常规软件安装不太可能从单独的分区中受益;事实上,为/opt
创建单独的分区可能会导致问题,如果存储在那里的软件消耗的空间发生变化,或者最初的大小估计错误。事实是你不需要这样做。使用/opt
只是一种约定俗成的做法。我建议你使用它,但并非必须。
来自Linux文件系统层次结构:第1章. Linux文件系统层次结构:
1.13. /opt/opt
通常是一个独立的驱动器。它用于安装专有软件,由于捆绑了所有所需的库和其他资源,这些软件通常需要大量的磁盘空间。现代驱动器如此之大,以至于只使用单个驱动器上的单个根目录更为可行和简便。 - bain/opt
用于(有时是专有的)外部应用程序,这些应用程序不被视为Linux发行版的一部分。这些应用程序可能具有硬编码的路径,因此只有在安装到/opt
时才能正确运行 - 但如果没有硬编码的路径,则可以将它们安装到任何路径。在/opt
中安装的程序应该是自包含的。
使用/opt
的主要原因是提供一个常见的标准路径,可以在不干扰已安装系统的情况下安装外部软件。 /opt
不会出现在标准编译器或链接器路径(如gcc -print-search-dirs
或/etc/ld.so.conf
等)中,因此在那里安装的头文件和库与主系统有一定的隔离,并且不应干扰已安装的程序。
使用/opt
的方式由文件系统层次结构标准:/opt指定,该标准指出/opt
最初来自Unix。
关于/opt
并没有什么神圣的地方,将预编译软件放在这个目录下只是一种常见做法,以便让系统中的所有用户都能够访问。如果你是系统的唯一用户,在你的主目录下提取软件也没有任何问题。即使系统上有多个需要访问该软件的用户,但你想要使用/home
分区的空间,创建一个公共可访问的/home/softwarename
目录并在其中提取软件也没有问题(唯一的注意事项是,如果你恰好有一个名为softwarename
的用户,你将无法在该用户的主目录下使用它)。
type cp
这样的命令(甚至可能不足以显示出问题),以找出正在运行的不是你认为的那个程序。在那之前,你只能陷入“除了它不工作这个小细节外,一切都正常!”的困境。