「sdkman」「nvm」Linux:基于sdkman安装多版本Java;安装maven;基于nvm安装多版本nodejs;安装yarn
0. 前言
这里的Linux 实际上是 wsl2安装的第三方 Arch

1. 基于sdkman 安装多版本Java
Linux环境下管理多版本java可以使用sdkman,官网: https://sdkman.io/
需要注意sdkman 依赖 zip和unzip 命令,记得提前下载再下载sdkman
安装命令
提前安装zip和unzip,arch命令示例:
sudo pacman -S zip unzip
按官网走很简单:
curl -s “https://get.sdkman.io” | bash
source “$HOME/.sdkman/bin/sdkman-init.sh”
验证安装
执行 sdk version 有打印信息说明安装成功!!
SDKMAN!
script: 5.18.2
native: 0.4.6
- curl命令可能有网络问题timeout 导致下载失败,网络代理问题请自行解决
- sdkman默认安装路径在 ~/.sdkman ,下载失败后再次下载我记得会报错sdkman已安装,请
rm -rf ~/.sdkman删除目录后再次下载
查看可安装版本
输入命令 查看sdkman可下载的java(进入类似vi 的环境,:q退出,空格翻页)
sdk list java
我提前安装了 17.0.9 的 Jetbranis 提供的java可以看到Status 是installed

安装指定版本
安装指定版本java ,后面数字就是的是 Identifier 列值(版本)
sdk install java 17.0.9-jbr
或
sdk install java 8.0.392-tem
卸载指定版本
sdk uninstall java 8.0.392-tem
下载完会提示是否将当前下载版本设为默认,按需选择,我为 n了
切换版本
查看(当前所有生效sdk)版本 : sdk current
切换版本:
1. 设为默认(全局): sdk default java 17.0.9-jbr
2. 设为临时(当前shell生效,关闭shell后恢复默认): sdk use java 8.0.392-tem
切换java版本效果如图:

其他命令请参考官方doc : https://sdkman.io/usage#use
2.Maven 安装
maven 官网下载 :https://maven.apache.org/download.cgi
如果不想下载最新maven,下滑至 Other Releases -> Maven 3 archives / legacy archives

如下:
下载maven
maven依赖java,Maven 3.9+ requires JDK 8 or above to execute. 这里下载的 3.9.6
curl -O https://dlcdn.apache.org/maven/maven-3/3.9.6/binaries/apache-maven-3.9.6-bin.tar.gz
解压:
tar -xzf apache-maven-3.9.6-bin.tar.gz
配置maven settings.xml
maven 配置文件所在路径 : $MAVEN_DIR/conf/settings.xml
一般我会修改: 本地仓库路径 和国内镜像 (aliyunmaven和 huaweicloud)
<localRepository>/opt/maven_repo</localRepository>
...
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
<mirror>
<id>huaweicloud</id>
<mirrorOf>*</mirrorOf>
<url>https://repo.huaweicloud.com/repository/maven/</url>
</mirror>
配置环境变量:
我这边直接配置在全局 /etc/profile 里了,如过有洁癖就按需写在 ~/.bashrc 或 ~/.bash_profile 或 ~/.zshrc ,Maven并不强制要求将其路径添加到/etc/profile
vi /etc/profile ,追加环境变量,注意路径写自己的
export MAVEN_DIR=/opt/apache-maven-3.9.6
export PATH=$MAVEN_DIR/bin:$PATH
上面我的path格式是xxx:$PATH,
因为当你的Linux是 wsl 时且你的Windows也装了maven时,若写法为export PATH=$PATH:格式
会导致windows环境变量就会在前,就会使用windows path里面的路径,而不会使用wsl里的maven
记得source , source /etc/profile
重启终端
验证
mvn -v
3.基于nvm安装多版本nodejs
Linux nvm 的repo:https://github.com/nvm-sh/nvm ,下文安装过程命令来源于该repo
安装nvm
安装nvm的命令类似sdkman
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
配置
之后你当前的shell rc文件的末尾你应该有以下内容,没有自行添加.
以bash为例: vi ~/.bashrc ,在文末追加下列
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
最后编译生效
source ~/.bashrc
验证
nvm -v
基于nvm安装nodejs
nvm安装后,安装多版本nodejs
#查询目前线上所能安装的所有nodejs版本
nvm ls-remote
#安装相应版本nodejs
nvm install 14.19.3
#使用相应版本的nodejs
nvm use 14.19.3
#列出已经安装的版本
nvm ls
#卸载相应的nodejs
nvm uninstall 14.19.3
#查看当前版本
nvm current
npm 国内最好配下淘宝镜像加速下载,需要注意淘宝镜像url 21年变更过别设置旧的!
域名切换规则:
老 => 新
https://npm.taobao.org => https://npmmirror.com
https://registry.npm.taobao.org => https://registry.npmmirror.com
全局配置命令
// 查询源
npm config get registry
// 更换国内源
npm config set registry https://registry.npmmirror.com
// 恢复官方源
npm config set registry https://registry.npmjs.org
// 删除注册表
npm config delete registry
4.安装yarn
安装 yarn ,一种方式是基于npm安装yarn
npm install -g yarn
我的arch系统直接pacman安装的
sudo pacman -S yarn
yarn也最好配下国内镜像(下面命令是全局配置)
// 查询源
yarn config get registry
// 更换国内源
yarn config set registry https://registry.npmmirror.com
// 恢复官方源
yarn config set registry https://registry.yarnpkg.com
// 删除注册表
yarn config delete registry
备注:
Windows 下npm安装yarnnpm install -g yarn 后,还需要 在powershell窗口中执行
set-ExecutionPolicy RemoteSigned
否则报错下列问题:
yarn : 无法加载文件 C:\Program Files\nodejs\yarn.ps1,因为在此系统上禁止运行
报错说明在电脑系统上禁止运行 PowerShell 脚本,因此导致无法加载 Yarn 的安装脚本。这是由于系统的执行策略(Execution Policies)设置所导致的,
set-ExecutionPolicy RemoteSigned 后应该可以 正常 看到yarn- v 的输出
更多推荐



所有评论(0)