在Debian下安装OpenJDK使用apt命令非常方便的安装,但安装Oracle就需要手动了,这里需了解ln和update-alternatvies命令。

ln链接

首先我们来说说linux的链接,它分为两种:符号链接(symbolic link)和硬链接(hard link)。

我们知道文件都有文件名与数据,这在 Linux 上被分成两个部分:用户数据 (user data) 与元数据 (metadata)。用户数据,即文件数据块 (data block),数据块是记录文件真实内容的地方;而元数据则是文件的附加属性,如文件大小、创建时间、所有者等信息。在 Linux 中,元数据中的 inode 号(inode 是文件元数据的一部分但其并不包含文件名,inode 号即索引节点号)才是文件的唯一标识而非文件名。文件名仅是为了方便人们的记忆和使用,系统或程序通过 inode 号寻找正确的文件数据块。下图展示了程序通过文件名获取文件内容的过程。

为解决文件的共享使用,Linux 系统引入了两种链接:硬链接 (hard link) 与软链接(又称符号链接,即 soft link 或 symbolic link)。链接为 Linux 系统解决了文件的共享使用,还带来了隐藏文件路径、增加权限安全及节省存储等好处。若一个 inode 号对应多个文件名,则称这些文件为硬链接。换言之,硬链接就是同一个文件使用了多个别名(下图hard link 就是 file 的一个别名,他们有共同的 inode)。而软链接与硬链接不同,若文件用户数据块中存放的内容是另一文件的路径名的指向,则该文件就是软连接。软链接就是一个普通文件,只是数据块内容有点特殊。软链接有着自己的 inode 号以及用户数据块。

Alternatives机制

Alternatives也称“替代品”机制,如下图

  • 在/etc/alternatives下存在一些符号链接(替代品),一个替代品链接可以链接一组文件,而这一组文件具有优先权,根据优先权可以选择替代品链接真实链接的文件;
  • 别的符号链接可以连接到替代品链接;

它的应用场景是这样的:比如现在流行的编辑器有Vim、nano、Emacs等,而debian里还自带了vim.tiny。如果系统了安装了这些编辑器,如何能使用一个友好的(符号)链接如editor映射到你最喜欢的编辑器呢?

使用Alternatives机制是这样的,在/etc/alternatives下建立一个editor符号链接指向Vim、nano、Emacs,当前的选择是vim;然后再在/usr/bin再建立一个符号链接editor链接到替代品链接editor,然后我们就可以使用editor来打开编辑器了,当想切换成Emacs的时候,使用命令update-alternatives --config editor可以选择别的编辑器。当然如果你不使用Alternatives机制也可以,只是想更换的时候手动做符号链接,这是我的理解。

安装Java

网上搜到的如何安装Java一般都是使用Alternatvies机制,其实手动直接创建符号链接我觉得也很方便,但可能考虑到多个Java版本吧。但不管怎么样,只要知道了上述理论就不能理解如何安装了。

首先到官网下载你需要的Java版本,我下载的是Java7 Server JRE,并解压至“/usr/lib/jvm//jdk1.7.0_60”中,然后使用下面的命令安装Alternatives

update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.7.0_60/bin/java 100

如果Alternatives的java不只指向一个java,需要使用下面的命令进行配置

update-alternatives --config java

更多的update-alternateives命令选项可以使用使用--help查看。

Debian安装Oracle Java步骤的更多相关文章

  1. apt 安装 Oracle Java JDK

    apt 安装 Oracle Java JDK 8/10 "Linux Uprising"团队维护一个PPA存储库,其中包含适用于所有当前Ubuntu版本的Oracle Java 1 ...

  2. Ubuntu12.04.3LTS安装Oracle Java 7

    今天在ubuntu 12.04 LTS 上安装Matlab时总是出错,显示拷贝jar包(cp "xx.jar")出现错误,在网上搜索了一下发现原来是没有安装java.自己打算安装o ...

  3. 通过PPA存储库在UBUNTU或LINUX MINT中安装ORACLE JAVA 8 [JDK8]

    http://www.webupd8.org/2012/09/install-oracle-java-8-in-ubuntu-via-ppa.html sudo add-apt-repository ...

  4. ubuntu安装oracle java

    通常UBUNTU源中带有openjava,但在使用eclipse与android studio时经常会有莫名奇妙的问题,所以个人觉得还是用oracle java,省点心. 安装步骤如下: sudo a ...

  5. Ubuntu 下安装 Oracle Java

    这只是一篇流水帐,记录如何安装Java. 在Ubuntu 下管理软件很方便,但安装的Java是opensdk.如果在某些条件下,需要安装Sun (Oracle)的Java,则需要自己手工安装. 一般情 ...

  6. 在Ubuntu 18.04中安装Oracle Java JDK 8

    Webupd8 Team维护一个PPA存储库,其中包含适用于所有当前Ubuntu版本的Oracle Java 8安装程序脚本. 1.打开终端并运行命令添加PPA: sudo add-apt-repos ...

  7. CentOS 5.6 安装Oracle Java 和 Eclipse

    1.卸载原有OpenJDK 1. 使用java  -version查看当前Java版本信息 2. 使用rpm  -qa  |  grep  java 列出所有被安装的java rpm package ...

  8. [报错集]ubuntu中安装oracle java报错

    1.因为版本更新,JAVA15以前的版本都已经没办法下载了,所以要使用oracle java必须使用最近的java15 $ sudo apt-get install oracle-java15-ins ...

  9. Linux下安装oracle的步骤和一些问题

    今天在Linux64位系统安装oracle数据库,折腾了一天,终于搞定了,现在把安装步骤梳理下,防止以后忘记:    (以下内容来自http://blog.163.com/junwu_lb/blog/ ...

随机推荐

  1. 配置Log4J(转载)

    Log4J的配置文件(Configuration File)就是用来设置记录器的级别.存放器和布局的,它可接key=value格式的设置或xml格式的设置信息.通过配置,可以创建出Log4J的运行环境 ...

  2. Linux目录结构示意详解图

  3. Linux 系统分区

    合理的系统分区,便于后期管理和提高文件的搜索速度 分区格式说明 linux分区不同于windows,linux下硬盘设备名为(IDE硬盘为hdx(x为从a—d)因为IDE硬盘最多四 个,SCSI,SA ...

  4. PHP的一些 有用但不常用的函数记录

    1. microtime() 当前 Unix 时间戳以及微秒数. <?php $mem = new Memcache; $mem->connect("127.0.0.1" ...

  5. Spring context:component-scan中使用context:include-filter和context:exclude-filter

    Spring context:component-scan中使用context:include-filter和context:exclude-filter XML: <?xml version= ...

  6. Activity生命周期完全解析

    **转载请注明出处:http://www.cnblogs.com/landptf/p/6309108.html** 生命周期是个老生常谈的问题了,今天做个汇总,全当是记个笔记,以后查找起来方便一些.下 ...

  7. iOS多线程的七大对象理解

    1用面向对象的观点去理解,进程和线程,同步和异步,并行和串行,还有主线程的主队列,的七者关系 进程:程序不运行时就是一堆代码,运行时就是一堆的进程的组合,进程是程序运行的基本单位. 线程:线程是进程的 ...

  8. Spark:一个独立应用

    [TOC] Spark:一个独立应用 关于构建 Java和Scala 在Java和Scala中,只需要给你的应用添加一个对于spark-core的Maven依赖. Python 在Python中,可以 ...

  9. C#文本框允许使用ctrl+A

    C#文本框中默认是不允许使用全选的.可以通过以下事件完成: private void textBox1_KeyDown(object sender, KeyEventArgs e) { if (e.C ...

  10. 理解volatile

    *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* ...