Debian安装Oracle Java步骤
在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查看。
最新文章
- POJ 1637 Sightseeing tour
- Html--表单练习
- MVC 框架搭建
- 安装 SQL SERVER 2008 必须使用 ";角色管理工具"; 错误 的 解决方案 (转)
- R&;&;rstudio
- Android跨进程通信的四种方式
- (十)makefile
- $where $options: 'g','i'
- What is the difference between differed processing mode and interactive mode?
- 编译linux内核问题
- mysql卸载
- C#网络编程简单实现通信小例子-1
- COJ 0601&;0602 动态规划(二)及加强
- Java---文件的切割与合并,已经实现图形界面(工具)
- Linq:切勿使用 Count() >; 0 来判断集合非空
- mongoDB介绍、安装、搭建简单的mongoDB服务器(一)
- rails将类常量重构到数据库对应的表中之一
- 大受喜欢安卓触控一体机连接云端数据化管理提供例程DEMO
- antd-mobile less文件用模块方式引入
- axios封装异步获取数据的函数以及全局拦截