【问题标题】:Install sbt on ubuntu [closed]在 ubuntu 上安装 sbt [关闭]
【发布时间】:2017-08-03 23:59:44
【问题描述】:

我已经在 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 新手,不知道如何解决这个问题。

【问题讨论】:

  • 要执行当前目录中的文件,您必须在名称前写一个“./”,否则它将尝试在类路径中搜索可执行文件。因此,特别要做到这一点,您应该输入“./sbt”。这就是这里出了什么问题,但是显然最好遵循下面的其他答案并实际安装它。
  • 我看不出有什么理由结束这个问题。 sbt 是 scala 非常有用的编程工具,也许它符合 StackOverflow 规则。
  • 谁决定关闭这个问题??您为什么不首先考虑替代方案。超级用户是不是的地方。 sbt 不属于那里。这是正确的地方 - 我是对这个问题/答案感兴趣的人之一。我是服务器端程序员,这还不够“主题”吗?
  • 关闭这个问题真是太荒谬了。 SBT 是一种编程工具。
  • Linux官方安装说明在这里:scala-sbt.org/1.x/docs/Installing-sbt-on-Linux.html

标签: scala debian ubuntu-12.04 sbt deb


【解决方案1】:

在 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

你就完成了!

【讨论】:

  • 效果很好!但比我得到的:“检测到 sbt 版本 0.12.2 找不到 sbt 启动器 0.12.2 请下载:从 typesafe.artifactoryonline.com/typesafe/ivy-releases/… 到 /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 @987654322 @"
  • @MariusKavansky 它只安装一个脚本,允许运行每个版本的 sbt。您必须在文件project/build.properties 中指定要使用的版本。然后运行sbt,脚本将启动启动器。按照出现的说明进行操作。
  • @RémiM 正如我在上面的 cmets 中所回答的,一旦您使用我描述的方法安装 sbt 启动器,您就可以在 project/build.properties 文件中选择实际的 SBT 版本。我目前正在使用 SBT 13.6 和建议的方法,没有任何问题。
  • 刚刚安装了一个非常旧的 sbt 0.11.3。知道如何安装最新的吗?
【解决方案2】:

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

【讨论】:

  • 是的,问题是由于我安装了一个 zip 版本并且安装文件以某种方式“损坏”。
  • 仅供参考:链接已损坏。应该是这样的:dl.bintray.com/sbt/debian 我想。
  • 如果常规 apt-get 不起作用,您也可以通过编写以下命令来安装 sbt: wget dl.bintray.com/sbt/debian/sbt-0.13.15.deb sudo dpkg -i path/to/sbt.deb sudo apt-get install -f
【解决方案3】:

找不到命令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 和其他网站提取的开源项目,这将非常方便。

    【讨论】:

      【解决方案5】:

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

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

      ./sbt
      

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-06-02
        • 2021-05-30
        • 2016-11-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-29
        相关资源
        最近更新 更多