Linux系统使用snap安装jdk

snap是什么?

snap是一种全新的软件包管理方式,它类似一个容器拥有一个应用程序所有的文件和库,各个应用程序之间完全独立。所以使用snap包的好处就是它解决了应用程序之间的依赖问题,使应用程序之间更容易管理。但是由此带来的问题就是它占用更多的磁盘空间。
  snap的安装包扩展名是.snap,类似于一个容器,它包含一个应用程序需要用到的所有文件和库(snap包包含一个私有的root文件系统,里面包含了依赖的软件包)。它们会被安装到单独的目录;各个应用程序之间相互隔离。使用snap有很多好处,首先它解决了软件包的依赖问题;其次,也使应用程序更容易管理。
现在支持snap的应用并不多,snap软件包一般安装在/snap目录下。

如何安装snap?

在ubuntu系统中,snap是系统默认自带的,docker容器中ubuntu系统官镜像中则没有,大部分linux发行版也没有自带snap,需要额外安装,这里演示debian系发行版如何安装snap。centos等rpm系发行版安装snap的步骤可以参考这篇文章https://www.linuxidc.com/Linux/2020-03/162485.htm

配置apt的阿里源

默认ubuntuapt软件源在国内访问过慢,经常会导致安装失败,这里使用sed命令对apt软件源进行替换,换成阿里的apt软件源
sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list
sed -i s@/security.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list
apt-get clean
apt-get update

安装snap

sudo apt-get install snapd

使用snap安装jdk

sudo snap install openjdk

将JDK添加到环境变量中

细心的同学可能已经发现,使用snap安装openjdk,还是无法在命令中运行java相关的命令,这是因为我们还没有把jdk配置到环境变量中。

在命令中输入openjdk可以获得openjdk的配置文件地址

openjdk
// 例如输出
// /var/snap/openjdk/common/openjdk.env

使用cat命令输出查看配置文件内的内容

cat /var/snap/openjdk/common/openjdk.env

例如我这里输出的如下:

# Source this file for OpenJDK environment variables and aliases
export JAVA_HOME=/snap/openjdk/714/jdk
export MANPATH=/snap/openjdk/714/jdk/man:
alias java='openjdk.java'
alias javac='openjdk.javac'
alias javadoc='openjdk.javadoc'
alias jar='openjdk.jar'
alias jarsigner='openjdk.jarsigner'
alias jlink='openjdk.jlink'
alias jpackage='openjdk.jpackage'

复制配置文件的输出,用vim获取其他编辑器打开/etc/profile文件(注意,有些时候需要sudo),将复制的配置内容,添加到/etc/profile文件最后面。

刷新环境变量

source /etc/profile

此时可以在终端中查看java版本信息,如果可以成输出,说明配置成功了。(有些时可能需要重启下电脑)

java --version

// 输出样例
// openjdk 17.0.2 2022-01-18
// OpenJDK Runtime Environment (build 17.0.2+8-snap)
// OpenJDK 64-Bit Server VM (build 17.0.2+8-snap, mixed mode, sharing)

你可能感兴趣的:(Linux系统使用snap安装jdk)