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

Why do I need to sudo to use leiningen (installed in /bin) on Linux?

我在 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