linux - 为什么我需要 sudo 才能在 Linux 上使用 leiningen(安装在/bin 中)?

标签 linux clojure fedora leiningen

我在 fedora 上安装了 leiningen,我按照说明操作:

  1. 下载脚本
  2. 将脚本(通过命令行)粘贴到 ~/bin (PATH)
  3. 执行脚本
  4. 运行 lein(我必须用 sudo 来完成)以自行安装

但每次我想运行“lein”命令时,我都必须使用“sudo”来执行。

我该如何解决这个问题?或者我该怎么做才能解决这个问题?

注意:我在/bin 安装了 leiningen,但是当我按照安装指南所说的 cd ~/bin 时,我得到了关于文件夹的错误(不存在)。

最佳答案

您将它安装在 /bin 中并使用 sudo 运行它以最初安装 lein jars,这意味着它们由 root 拥有(并且可能只能读取)。您应该将脚本安装在 ~/bin 中。您可以这样修复它:

sudo rm /bin/lein
sudo rm ~/.lein
mkdir ~/bin
cd ~/bin
wget https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein
export PATH="${HOME}/bin:${PATH}"
lein

您还应该将 ${HOME}/bin 添加到您的 $PATH。如果您使用的是 bash,请将此添加到 ~/.bashrc:

export PATH="${HOME}/bin:${PATH}"

你可以使用 echo 来做到这一点:

echo 'export PATH="${HOME}/bin:${PATH}"' >> ~/.bashrc

关于linux - 为什么我需要 sudo 才能在 Linux 上使用 leiningen(安装在/bin 中)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32597440/

相关文章:

Eclipse 在调试时挂起

Linux:查找新添加的文件

linux - 如何识别大量文件的行结尾

python-3.x - 我应该如何与pyaudio直播

c - Linux C:类似于Shell的环境-用于单独执行-C命令? (C口译员)

clojure - 为什么 core.async go block 返回一个 channel ?

Clojure:为什么会出现 StackOverflowError?

video - 如何使用 ffmpeg 重建 openCV-python

Clojure 代理 Java 模板

c++ - ARM GCC 交叉编译器 fedora 22