SDKMan可供root用户使用,但其他用户无法使用

8

我在CentOS 6.8上使用curl以root用户身份安装了sdkman,然后使用sdkman安装了Grails,但是Grails只能被root用户使用。

想让Grails正常工作,我需要以其他普通用户身份安装sdkman吗?还是有办法让我已经以root用户身份安装的Grails正常运行?

谢谢。


如果您将其安装在/root/bin/目录下,则仅适用于root用户。如果将其放置在/usr/local/bin目录下,则适用于所有用户。 - cfrick
“...或者有没有办法使用我以root用户身份安装的Grails” - 以root用户身份运行Grails是一个不好的想法。 - Jeff Scott Brown
@JeffScottBrown,不是的。我的意思是作为普通用户使用Grails,但以某种方式访问Grails。 - monty_bean
@cfrick,我注意到我的Grails、PostgreSQL和pgAdmin3都无法供普通用户使用... 我需要将它们移动到/usr/local/bin吗? - monty_bean
如果您的工具(如psql)不可供所有用户使用,则该系统可能存在许多问题(或正确:例如,权限设置受限)。如果您有具体的编程问题,请明确表述。如果您有关于系统管理的问题,则也许超级用户SE可能更适合向他们提问。 - cfrick
2个回答

10
我鼓励你将sdkman提供给其他用户(查看其文档,第Custom Installation段,添加初始化脚本来自$SDKMAN_DIR/bin目录的init文件)。
然后让想要安装Grails的用户安装它。
或者通过其存储库安装Grails(接受,这将是比SDKMAN中的版本旧的版本)。
在我的情况下,我使用了:
1. export SDKMAN_DIR="/usr/local/sdkman" && curl -s "https://get.sdkman.io" | bash - 确保在安装sdkman之前不存在$SDKMAN_DIR,否则将被覆盖。 2. 对于我希望能够使用sdkman的用户,在它们的.bashrc文件的最后,插入以下内容;否则可能无法使用:

export SDKMAN_DIR="/usr/local/sdkman" [[ -s "/usr/local/sdkman/bin/sdkman-init.sh" ]] && source "/usr/local/sdkman/bin/sdkman-init.sh"

文档:http://sdkman.io/install.html

2
  1. 对于非交互式shell,请将以下内容添加到.profile文件中:

    export SDKMAN_DIR="/usr/local/sdkman"

    [[ -s "/usr/local/sdkman/bin/sdkman-init.sh" ]] && source "/usr/local/sdkman/bin/sdkman-init.sh"


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接