2012-12-04 123 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存儲庫安裝它。