zoukankan      html  css  js  c++  java
  • 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目录下,但它们只是文档并且有足够的理由这样做。这些例外的情况都会在本书中得到很好的说明,如果发现有不对的地方,请告诉我们!


  • 相关阅读:
    重新想象 Windows 8 Store Apps (15) 控件 UI: 字体继承, Style, ControlTemplate, SystemResource, VisualState, VisualStateManager
    重新想象 Windows 8 Store Apps (12) 控件之 GridView 特性: 拖动项, 项尺寸可变, 分组显示
    返璞归真 asp.net mvc (10) asp.net mvc 4.0 新特性之 Web API
    与众不同 windows phone (29) Communication(通信)之与 OData 服务通信
    与众不同 windows phone (33) Communication(通信)之源特定组播 SSM(Source Specific Multicast)
    与众不同 windows phone (27) Feature(特性)之搜索的可扩展性, 程序的生命周期和页面的生命周期, 页面导航, 系统状态栏
    与众不同 windows phone (30) Communication(通信)之基于 Socket TCP 开发一个多人聊天室
    返璞归真 asp.net mvc (12) asp.net mvc 4.0 新特性之移动特性
    重新想象 Windows 8 Store Apps (2) 控件之按钮控件: Button, HyperlinkButton, RepeatButton, ToggleButton, RadioButton, CheckBox, ToggleSwitch
    重新想象 Windows 8 Store Apps (10) 控件之 ScrollViewer 特性: Chaining, Rail, Inertia, Snap, Zoom
  • 原文地址:https://www.cnblogs.com/Leroscox/p/10096272.html
Copyright © 2011-2022 走看看