63

我已经在 Ubuntu 上安装了 sbt。

:~/bin/sbt/bin$ ls
classes    sbt      sbt-launch.jar       target
jansi.jar  sbt.bat  sbt-launch-lib.bash  win-sbt

但是,每当我尝试启动 sbt(从 sbt 所在的同一目录)时,它都不起作用:

No command 'sbt' found, did you mean:
 Command 'skt' from package 'latex-sanskrit' (universe)
 Command 'sb2' from package 'scratchbox2' (universe)
 Command 'sbd' from package 'cluster-glue' (main)
 Command 'mbt' from package 'mbt' (universe)
 Command 'sbmt' from package 'atfs' (universe)
 Command 'lbt' from package 'lbt' (universe)
 Command 'st' from package 'suckless-tools' (universe)
 Command 'sb' from package 'lrzsz' (universe)

我是 linux 新手,我不知道如何解决这个问题。

4

5 回答 5

162

在 ubuntu 上安装 SBT 最简单的方法是debTypesafe 提供的包。

运行以下外壳命令:

  1. wget http://apt.typesafe.com/repo-deb-build-0002.deb
  2. sudo dpkg -i repo-deb-build-0002.deb
  3. sudo apt-get update
  4. sudo apt-get install sbt

你就完成了!

于 2012-12-05T08:20:11.497 回答
45

好像您安装了 sbt 的 zip 版本,这很好。但是如果你在 Ubuntu 上,我建议你安装原生的 debian 包。这就是我设法在我的 Ubuntu 12.04 上安装它的方式。在这里查看: http ://www.scala-sbt.org/release/docs/Installing-sbt-on-Linux.html 或者直接从这里下载。

于 2013-05-18T07:51:47.763 回答
13

sbt未找到命令

它是说那sbt不在你的道路上。尝试./sbt~/bin/sbt/bin可执行sbt文件所在的位置运行,以验证它是否正确运行。还要检查您是否对sbt可执行文件具有执行权限。如果这可行,则添加~/bin/sbt/bin到您的路径并sbt应该从任何地方运行。

请参阅有关将目录添加到路径的此问题。

要验证路径设置是否正确,请使用whichLINUX 上的命令。输出将如下所示:

$ which sbt
/usr/bin/sbt

最后,要验证sbt是否正在运行,请尝试运行sbt -help或以类似方式运行。-help 的输出将如下所示:

$ sbt -help
Usage: sbt [options]

  -h | -help         print this message
  ...
于 2012-12-04T20:40:24.623 回答
4

作为替代方法,您可以将SBT Extras脚本保存到名为 sbt.sh 的文件中,并将权限设置为可执行。然后将此文件添加到您的路径中,或者将其放在您的 ~/bin 目录下。

这里的好处是,它将根据您的项目属性下载和使用正确版本的 SBT。如果您倾向于编译从 GitHub 和其他网站提取的开源项目,这是一个很好的便利。

于 2012-12-04T21:22:00.980 回答
4

我的猜测是目录 ~/bin/sbt/bin 不在您的 PATH 中。

要执行当前目录中的程序或脚本,您需要在命令前加上 ./,如下所示:

./sbt

这是 linux 中的一项安全功能,以防止恶意方在您的主目录中删除文件(例如)覆盖系统命令(和其他程序)。想象一个名为“ls”的脚本,它在执行 ls 命令之前将您的 /etc/passwd 文件通过电子邮件发送给第 3 方……或者执行“rm -rf .”的脚本……

也就是说,除非您需要最新源代码中的特定内容,否则最好按照范式在他的帖子中所说的进行,然后从 Typesafe 存储库中安装它。

于 2013-05-17T23:07:05.647 回答