Linux下JDK应该安装在哪个位置

在百度知道上看到的回答觉得不错:https://zhidao.baidu.com/question/1692690545668784588.html

 

如果你认为jdk是系统提供给你可选的程序,放在opt里
如果你认为这是你个人行为,自主安装的,放在usr/local里,具体是usr/local/lib
如果你觉得jdk对你来说是必不可少的运行库,放在lib里

上面三句是最开始的想法,

其实我也想找出一个最佳实践,后来看了看linux的目录结构,发现就算是同一个东西,系统自带和你手动安装,就不应该在同一个目录里。同样是浏览器,系统自带的firefox就在/usr/lib里,而后来通过软件包安装的chrome就在/opt里。
如果系统自带java,我觉得他会在lib里或者/usr/lib,看它对java的定义是必需的库还是
如果能在软件管理器里安装,那么会安装在/usr/lib
如果oracle给你的是deb,那么会被安装在opt
所以自己安装,就要放在/usr/local/lib里比较合适了


 

另附两个关于Linux目录的对比说明


 

http://blog.51cto.com/mystery888/1835223

 

听完马哥的Linux培训关于Linux文件系统及文件类型,有一个疑惑,同样是存放第三方应用程序的安装位置,/opt跟/usr/local 有何区别,为什么存在两个相同功能的地方,让人混淆呢。带着这个问题,我寻找了资料,原来Linux的结构是这样的。

 

/usr/local下一般是你安装软件的目录,这个目录就相当于在windows下的programefiles这个目录 

/opt这个目录是一些大型软件的安装目录,或者是一些服务程序的安装目录

 

/opt

Here’s where optional stuff is put. Trying out the latest Firefox beta? Install it to /opt where you can delete it without affecting other settings. Programs in here usually live inside a single folder whick contains all of their data, libraries, etc.

/opt这里主要存放那些可选的程序。你想尝试最新的firefox测试版吗?那就装到/opt目录下吧,这样,当你尝试完,想删掉firefox的时候,你就可 以直接删除它,而不影响系统其他任何设置。安装到/opt目录下的程序,它所有的数据、库文件等等都是放在同个目录下面。

 

举个例子:刚才装的测试版firefox,就可以装到/opt/firefox_beta目录下,/opt/firefox_beta目录下面就包含了运 行firefox所需要的所有文件、库、数据等等。要删除firefox的时候,你只需删除/opt/firefox_beta目录即可,非常简单。

 

/usr/local

This is where most manually installed (ie. outside of your package manager) software goes. It has the same structure as /usr. It is a good idea to leave /usr to your package manager and put any custom scripts and things into /usr/local, since nothing important normally lives in /usr/local.

/usr/local这里主要存放那些手动安装的软件,即 不是通过“新立得”或apt-get安装的软件。 

它和/usr目录具有相类似的目录结构。

让软件包管理器来管理/usr目录,而把自定义的脚本(scripts)放到/usr/local目录下面,我想这应该是个不错的主意。

 

PS:新立得(Synaptic)是Debian和Ubuntu Linux操作系统的包管理工具apt的图形化前端。它结合了图形界面的简单操作和 apt-get 命令行工具的强大功能

 

什么?看完还是不够深刻?那结合Windows作对比,简单通俗点说:

 

Linux 的软件安装目录是也是有讲究的,理解这一点,在对系统管理是有益的

/usr:系统级的目录,可以理解为C:/Windows//usr/lib理解为C:/Windows/System32
/usr/local:用户级的程序目录,可以理解为C:/Progrem Files/。用户自己编译的软件默认会安装到这个目录下。
/opt:用户级的程序目录,可以理解为D:/Software,opt有可选的意思,这里可以用于放置第三方大型软件(或游戏),当你不需要时,直接rm -rf掉即可。在硬盘容量不够时,也可将/opt单独挂载到其他磁盘上使用。

源码放哪里?
/usr/src:系统级的源码目录。
/usr/local/src:用户级的源码目录。


https://docs.huihoo.com/lfs/blfs-1.0/introduction/position.html

 

应该把程序安装在 /usr还是 /usr/local?

对于一个以LFS为基础的系统来说,这是一个没有明确答案的问题。

在传统的unix系统中,/usr通常只包含系统发行时自带的程序,而/usr/local则是本地系统管理员用来自由添加程序的目录。这里有一条严厉而牢固的规则:除非在里面创建目录,unix发行版不得使用/usr/local 。

对于Linux发行版,如 RedHat, Debian 等等,一个可能的规定是:/usr目录只能由发行版的软件包管理工具负责管理,而对/usr/local却没有这样做。正是因为采用这种方式,软件包管理工具的数据库才能知道在/usr目录内的每一个文件。

LFS的用户是自己建立系统的,所以能自己决定系统文件和用户文件的放置方式。因此,应该按照有利于系统管理员使用的方式作出选择。这里有几个把文件安装到/usr或者是/usr/local的理由:

 

  • 如果网络上的计算机都运行LFS或者是混合使用LFS和其它linux发行版,所有连网计算机共用的软件应该安装在/usr/local内。这样可以通过NFS文件系统共享该目录或者从一个服务器上镜象过来。此时local表示本地服务器提供软件。

  • 如果网络上的计算机都运行同样的LFS系统,/usr/local应该安装各台计算机之间不相同的软件。这时local表示本地计算机提供软件。

  • 如果你在一台计算机上同时安装了几个linux发行版,并希望在某个目录存放它们共享的软件,这时/usr/local目录就能发挥作用了。

  • 或者你想要经常重建LFS系统,但又希望把不想每次重复编译的软件存放在某处,你也可以把软件安装在/usr/local目录。这样你就可以在不丢失数据的情况下删去LFS系统并从一个干净的分区重新开始。

一些人会问为什么不使用你自己的目录树,也就是使用/usr/site 而不是 /usr/local?

没有什么能阻止你,确实可以在很多地方创建自己的目录树,但这使安装新软件更加麻烦。自动化的安装程序通常要到/usr/usr/local目录下寻找所依赖的文件,如果要找的文件不在/usr目录里面,除非你指定目录让安装程序查找所依赖的文件,安装可能会失败。

那么在BLFS中软件的安装位置在那里?

除非特别声明,所有BLFS中的软件都安装在/usr目录下。也有一些文件被放在/usr/local目录下,但它们只是文档并且有足够的理由这样做。这些例外的情况都会在本书中得到很好的说明,如果发现有不对的地方,请告诉我们!


 

posted @ 2018-12-10 14:25  Leroscox  阅读(8320)  评论(0编辑  收藏