Closed Jacky-YC closed 4 months ago
没有复现你的问题。
但是,有一点需要注意。vmr只能识别通过vmr安装的SDK,通过其他方式安装的SDK种类太多,无法识别。 另外,需要确保SDK已通过vmr安装成功。这一点,可以去~/.vmr/versions/下面确认。
没有复现你的问题。
但是,有一点需要注意。vmr只能识别通过vmr安装的SDK,通过其他方式安装的SDK种类太多,无法识别。 另外,需要确保SDK已通过vmr安装成功。这一点,可以去~/.vmr/versions/下面确认。
因为都是通过 vmr 进行安装的,新建的shell PATH中没有对应SDK的配置,所以无法使用。
我不太明白 vmr 的环境变量配置部分,从文档中也无法了解更加详细的设计细节
没有复现你的问题。 但是,有一点需要注意。vmr只能识别通过vmr安装的SDK,通过其他方式安装的SDK种类太多,无法识别。 另外,需要确保SDK已通过vmr安装成功。这一点,可以去~/.vmr/versions/下面确认。
因为都是通过 vmr 进行安装的,新建的shell PATH中没有对应SDK的配置,所以无法使用。
我不太明白 vmr 的环境变量配置部分,从文档中也无法了解更加详细的设计细节
对于zsh,vmr的环境变量放在~/.vmr/vmr.sh,然后在~/.zshrc中引用vmr.sh。 这一点文档中有,在FAQs中,https://gvcgo.github.io/vdocs/#/zh-cn/faq。
如果你首次安装SDK,使用的是session模式,那么不会永久加入环境变量。后面在local installed列表中use一下就行了。具体看界面上的key map提示。
如果你首次安装SDK,使用的是session模式,那么不会永久加入环境变量。后面在local installed列表中use一下就行了。具体看界面上的key map提示。
vmr version
v0.6.2(02c4dcd)
session模式是什么?
删除所有vmr安装的maven信息,重新安装没有看到需要我操作的提示。
安装完成后,新建一个shell ,无法使用刚刚安装的 mvn
命令
把你的~/.vmr/vmr.sh的内容粘贴出来, 另外,看看你的.zshrc文件中,是否有以下内容:
# vm_envs start
if [ -z "$VM_DISABLE" ]; then
. ~/.vmr/vmr.sh
fi
# vm_envs end
另外,无需新建shell,执行source .zshrc就能刷新环境变量。
没有复现你的问题。 但是,有一点需要注意。vmr只能识别通过vmr安装的SDK,通过其他方式安装的SDK种类太多,无法识别。 另外,需要确保SDK已通过vmr安装成功。这一点,可以去~/.vmr/versions/下面确认。
因为都是通过 vmr 进行安装的,新建的shell PATH中没有对应SDK的配置,所以无法使用。 我不太明白 vmr 的环境变量配置部分,从文档中也无法了解更加详细的设计细节
对于zsh,vmr的环境变量放在~/.vmr/vmr.sh,然后在~/.zshrc中引用vmr.sh。 这一点文档中有,在FAQs中,https://gvcgo.github.io/vdocs/#/zh-cn/faq。
我在 .zshrc 中找到了这个
1 全局模式安装 2 session模式安装
session模式安装不会永久加入环境变量。注意看提示。
把你的~/.vmr/vmr.sh的内容粘贴出来, 另外,看看你的.zshrc文件中,是否有以下内容:
# vm_envs start if [ -z "$VM_DISABLE" ]; then . ~/.vmr/vmr.sh fi # vm_envs end
另外,无需新建shell,执行source .zshrc就能刷新环境变量。
.vmr cat ~/.vmr/vmr.sh
# cd hook start
if [ -z "$(alias|grep cdhook)" ]; then
cdhook() {
if [ $# -eq 0 ]; then
cd
else
cd "$@" && vmr use -E
fi
}
alias cd='cdhook'
fi
# cd hook end
export PATH=~/.vmr:$PATH
# cd hook start
if [ -z "$(alias|grep cdhook)" ]; then
cdhook() {
if [ $# -eq 0 ]; then
cd
else
cd "$@" && vmr use -E
fi
}
alias cd='cdhook'
fi
# cd hook end
export PATH=~/.vmr:$PATH%
我很好奇为什么这个文件中内容会重复两次
这导致我的PATH产生很多冗余
/Users/jacky/.vmr:/Users/jacky/.vmr:/Users/jacky/.vmr/versions/maven_versions/maven-3.9.7/bin:/Users/jacky/.vmr:/Users/jacky/.vmr:/Users/jacky/.vmr:/Users/jacky/.vmr:/Users/jacky/.vmr:/Users/jacky/.vmr
无法重复你的问题。
export PATH=~/.vmr:$PATH%
最后的%也很奇怪。没其他人出现过这样的问题,从代码上也看不出会出现这样的问题。 你可以vmr-uninstall之后,重新安装试试。
@zzhaolei 可以看出来问题吗?这部分代码现在主要还是来自你的贡献,我目前看不出什么情况下会有这种现象。
1 全局模式安装 2 session模式安装
session模式安装不会永久加入环境变量。注意看提示。
😯,我明白了,我在选中对应SDK版本的时候用 s
进行安装,这导致它只在当前shell中生效;
对于全局安装应使用 i
选项进行安装。
我跟着 gallery 进行操作,没有理解这个意思。
很抱歉,给你添了不必要的麻烦。
1 全局模式安装 2 session模式安装 session模式安装不会永久加入环境变量。注意看提示。
😯,我明白了,我在选中对应SDK版本的时候用
s
进行安装,这导致它只在当前shell中生效;对于全局安装应使用
i
选项进行安装。我跟着 gallery 进行操作,没有理解这个意思。
很抱歉,给你添了不必要的麻烦。
没事。gallery不是教程,只是一个基本演示,而且没有具体按键显示,不要当做实际参考。 具体要看key map中的英文提示。
把你的~/.vmr/vmr.sh的内容粘贴出来, 另外,看看你的.zshrc文件中,是否有以下内容:
# vm_envs start if [ -z "$VM_DISABLE" ]; then . ~/.vmr/vmr.sh fi # vm_envs end
另外,无需新建shell,执行source .zshrc就能刷新环境变量。
.vmr cat ~/.vmr/vmr.sh # cd hook start if [ -z "$(alias|grep cdhook)" ]; then cdhook() { if [ $# -eq 0 ]; then cd else cd "$@" && vmr use -E fi } alias cd='cdhook' fi # cd hook end export PATH=~/.vmr:$PATH # cd hook start if [ -z "$(alias|grep cdhook)" ]; then cdhook() { if [ $# -eq 0 ]; then cd else cd "$@" && vmr use -E fi } alias cd='cdhook' fi # cd hook end export PATH=~/.vmr:$PATH%
我很好奇为什么这个文件中内容会重复两次
这导致我的PATH产生很多冗余
/Users/jacky/.vmr:/Users/jacky/.vmr:/Users/jacky/.vmr/versions/maven_versions/maven-3.9.7/bin:/Users/jacky/.vmr:/Users/jacky/.vmr:/Users/jacky/.vmr:/Users/jacky/.vmr:/Users/jacky/.vmr:/Users/jacky/.vmr
上面的vmr.sh中的重复部分可以删去。这个应该是某种未知情况下出现的,重复不出来。
至于下面echo $PATH出现重复,应该是因为你多次使用session模式,导致嵌套开了很多个session,session之间有环境变量集成,造成重复,这无所谓。只要所有session退出之后就没有了。
cat 显示的末尾的 % 是应该是文件在此处结束了,没有结束符,这个不会影响脚本的运行。它的出现应该和 vmr.sh 的内容重复有关
cat 显示的末尾的 % 是应该是文件在此处结束了,没有结束符,这个不会影响脚本的运行。它的出现应该和 vmr.sh 的内容重复有关
不太明白,重复是怎么来的。按道理,有检测重复的,如果存在就不会再添加了。不知道这是什么情况下出现的。
重复检测有问题,如果用户执行了多次 vmr i 进行安装,则会出现重复,我来提个 PR 优化一下这个检测
重复检测有问题,如果用户执行了多次 vmr i 进行安装,则会出现重复,我来提个 PR 优化一下这个检测
好的,辛苦。
只需要bash/zsh/fish就好了,windows的powershell环境变量是直接加入注册表的,没有这种问题。