8

Linux系统使用snap安装jdk

 2 years ago
source link: https://segmentfault.com/a/1190000041369317
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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)

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK