2012-12-04 21 views
49

Ho installato sbt su Ubuntu.Installa sbt su ubuntu

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

Tuttavia, ogni volta che provo a lanciare SBT (dalla stessa directory in cui si trova SBT) non funziona:

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) 

Sono nuovo a Linux e non ho idea di come affrontare questa edizione.

+1

per eseguire un file nella directory corrente è necessario scrivere un "./" davanti al nome, altrimenti tenterà di cercare gli eseguibili all'interno del classpath. Quindi per farlo in particolare dovresti aver digitato "./sbt". Ecco cosa stava andando storto qui, tuttavia è ovviamente meglio seguire le altre risposte qui sotto e installarlo. –

+8

Non vedo alcun motivo per chiudere questa domanda. sbt è uno strumento di programmazione molto utile per scala e forse si adatta alle regole di StackOverflow. –

+3

Chi ha preso la decisione di chiudere questa domanda ?? Perché non consideri prima quali sarebbero le alternative. Superuser è * non * il luogo. 'sbt' non appartiene a questo. Questo è il posto giusto - e io sono tra le persone interessate a questa domanda/risposta. Sono un programmatore lato server non è abbastanza "on topic"? – javadba

risposta

32

Sembra che tu abbia installato una versione zip di sbt, che va bene. Ma ti suggerisco di installare il pacchetto nativo di Debian se sei su Ubuntu. È così che sono riuscito a installarlo su Ubuntu 12.04. Dateci un'occhiata qui: http://www.scala-sbt.org/release/docs/Installing-sbt-on-Linux.html O semplicemente scaricatelo direttamente da here.

+0

Sì, il problema era dovuto al fatto che ho installato una versione zip ei file di installazione erano in qualche modo "guasti". – NoIdeaHowToFixThis

+1

FYI: link è rotto. Dovrebbe essere questo: http://dl.bintray.com/sbt/debian/ Penso. –

+0

Grazie. Link aggiornato. –

12

Nessun comando sbt trovato

E 'dire che sbt non è sul vostro cammino. Prova a eseguire ./sbt da ~/bin/sbt/bin o ovunque l'eseguibile sbt verifichi che funzioni correttamente. Verificare inoltre di disporre delle autorizzazioni di esecuzione per l'eseguibile sbt. Se funziona, aggiungi ~/bin/sbt/bin al tuo percorso e sbt dovrebbe essere eseguito da qualsiasi luogo.

Vedere questo question sull'aggiunta di una directory al percorso.

Per verificare il path is set correctly utilizzare il comando which su LINUX. L'output sarà simile a questa:

$ which sbt 
/usr/bin/sbt 

Infine, per verificare sbt è provare a lavorare in esecuzione sbt -help o allo stesso modo. L'uscita con -help sarà simile a questa:

$ sbt -help 
Usage: sbt [options] 

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

Come approccio alternativo, è possibile salvare lo script SBT Extras ad un file chiamato sbt.sh e impostare il permesso di eseguibile. Quindi aggiungi questo file al tuo percorso, o semplicemente mettilo sotto la tua directory ~/bin.

Il bonus qui è che scaricherà e utilizzerà la versione corretta di SBT a seconda delle proprietà del progetto. Questa è una buona comodità se si tende a compilare progetti open source che si estrae da GitHub e altri.

152

Il modo più semplice di installare SBT su ubuntu è il pacchetto deb fornito da Typesafe.

eseguire i seguenti comandi di 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

E il gioco è fatto!

+4

Funziona alla grande! Ma quello che ricevo: "sbt Rilevato versione 0.12.2 Non riesci a trovare SBT lanciatore 0.12.2 Si prega di scaricare: Da http://typesafe.artifactoryonline.com/typesafe/ivy-releases/org.scala-sbt/sbt -launch/0.12.2/sbt-launch.jar A /home/leo/.sbt/.lib/0.12.2/sbt-launch.jar " Quindi è già scritto cosa fare. Ma qui per il vostro riferimento: "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 Grazie per l'aggiunta. Non lo aggiungerò alla risposta perché non è specifico per la domanda, ma è rilevante per tutte le installazioni di sbt che usano lo stesso script 'sbt'. – paradigmatic

+2

Funziona immediatamente dopo la copia/incolla. Grazie! – mdup

3

La mia ipotesi è che la directory ~/bin/sbt/bin non sia nel PATH.

Per eseguire programmi o script presenti nella directory corrente è necessario aggiungere il prefisso al comando./, Come in:

./sbt 

Questa è una caratteristica di sicurezza in Linux, in modo da prevenire primario di comandi di sistema (e di altri programmi) da un partito dannoso cadere un file nella propria home directory (per esempio). Immagina uno script chiamato "ls" che invia il tuo file/etc/passwd a terze parti prima di eseguire il comando ls ... O uno che esegue 'rm -rf .'...

Detto questo, a meno che non sia necessario qualcosa specifico dal codice sorgente più recente, è meglio fare ciò che ha detto paradigmatico nel suo post e installarlo dal repository Typesafe.