2012-12-04 86 views
49

我在Ubuntu上安装了sbt。在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,我不知道如何解决这个问题。

+1

若要在当前目录中执行文件,必须在名称前面写上“./”,否则它将尝试搜索类路径中的可执行文件。所以要做到这一点,你应该输入“./sbt”。这就是在这里出了问题,但显然最好遵循下面的其他答案,并实际安装它。 –

+8

我没有看到任何理由来解决这个问题。 sbt是scala非常有用的编程工具,也许它适合StackOverflow规则。 –

+3

谁做出了关闭此问题的决定?你为什么不先考虑什么是替代方案。超级用户是*不是*的地方。 'sbt'不属于那里。这是正确的地方 - 我是对这个问题/答案感兴趣的人之一。我是服务器端程序员是不是“在话题上”够了? – javadba

回答

32

似乎你安装了sbt的压缩版本,这很好。但是我建议你在Ubuntu上安装本地debian软件包。这就是我在Ubuntu 12.04上安装它的方式。看看这里: http://www.scala-sbt.org/release/docs/Installing-sbt-on-Linux.html 或直接从here下载它。

+0

是的,问题是由于我已经安装了一个zip版本,安装文件“破碎”。 – NoIdeaHowToFixThis

+1

仅供参考:连接中断。应该是这样的:http://dl.bintray.com/sbt/debian/我想。 –

+0

谢谢。链接已更新。 –

12

无命令sbt发现

它说sbt是不是你的路径上。尝试从~/bin/sbt/binsbt可执行文件验证其运行正确的位置运行./sbt。同时检查您是否拥有sbt可执行文件的执行权限。如果这样做,然后将~/bin/sbt/bin添加到您的路径和sbt应该从任何地方运行。

看到这个question关于添加一个目录到你的路径。

验证path is set correctly在LINUX上使用which命令。输出会是这个样子:

$ which sbt 
/usr/bin/sbt 

最后,为了验证sbt正在尝试运行sbt -help或亦同。与-help输出会是这个样子:

$ sbt -help 
Usage: sbt [options] 

    -h | -help   print this message 
    ... 
4

作为一个替代方法,可以将SBT Extras脚本保存到一个文件名为sbt.sh并设置为可执行的权限。然后将这个文件添加到你的路径,或者把它放在你的〜/ bin目录下。

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

152

在Ubuntu上安装SBT最简单的方法是由Typesafe提供的deb包。

运行以下shell命令:

  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

大功告成!

+4

非常棒!但我得到: “Detected sbt version 0.12.2 无法找到sbt启动器0.12.2 请下载: 从http://typesafe.artifactoryonline.com/typesafe/ivy-releases/org.scala-sbt/sbt -launch/0.12.2/sbt-launch.jar To /home/leo/.sbt/.lib/0.12.2/sbt-launch.jar“ 因此,它已经写入了什么功能。但在这里供您参考:“mkdir -p /home/leo/.sbt/.lib/0.12.2/ wget -O /home/leo/.sbt/.lib/0.12.2/sbt-launch.jar http ://typesafe.artifactoryonline.com/typesafe/ivy-releases/org.scala-sbt/sbt-launch/0.12.2/sbt-launch.jar“ – leo

+0

@leo感谢您的补充。我不会将它添加到答案中,因为它不是特定于该问题,但它与使用相同'sbt'脚本的所有sbt安装相关。 – paradigmatic

+2

复制/粘贴后立即生效。谢谢! – mdup

3

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

要执行当前目录中的程序或脚本,需要在该命令前添加前缀。/,如:

./sbt 

这是在Linux中的安全功能,所以由恶意方在你的home目录删除一个文件(例如),以防止系统命令(和其他程序)的压倒一切的。设想一个名为'ls'的脚本,它在执行ls命令之前将你的/ etc/passwd文件发送给第三方......或者执行'rm -rf'的脚本......

也就是说,除非你需要一些东西特定于最新的源代码,你最好在他的文章中做出范式说明,然后从Typesafe存储库安装它。