Install sbt on linux

Введение в sbt

Этим постом, я попробую начать серию переводов официальной документации, об инструменте, который при текущем росте языка Scala становится все более востребованным, но о котором тем не менее очень мало информации на русском языке.
Речь пойдет о sbt — системе сборки проектов для языка Scala (хотя, важно упомянуть, что Java проекты (и вообще любые другие) им так же могут собираться).
Статья является началом перевода документации с сайта проекта scala-sbt.org и так как это мой первый опыт перевода — буду рад любым замечаниям и правкам.
Так же, из-за того, что пока перевод оформлен в виде статьи, я буду пропускать моменты, которые смотрелись бы не совсем корректно, в контексте отдельной части руководства.

Предисловие

sbt, используя небольшое число концепций, предлагает гибкие решения сборки проектов.
Это руководство расскажет о некоторых моментах, которые необходимы для создания и поддержки решений по сборке с помощью sbt.
Данное руководство, очень рекомендовано к прочтению. Но, если вам некогда читать все, то самую важную информацию вы можете прочитать в разделах “Параметры .sbt сборки”, “Области сборок”, “Дополнительные параметры сборок”. Но, мы не обещаем, что эта хорошая идея поможет вам пропустить все страницы данного руководства.
Лучше всего читать этот документ последовательно, опираясь на пройденный ранее материал.
Спасибо, что используете sbt! Желаем вам получить от этого максимум удовольствия!

1. Установка sbt

  • Установить sbt и создать скрипт запуска
  • Создать простой проект “Hello world”
  • Создать директорию проекта с исходными файлами внутри
  • Описать параметры сборки
  • Прочитать как запустить sbt
  • Продолжить чтение руководства о параметрах sbt сборки
1.a. Установка под Mac

С помощью Macports
$ port install sbt
Homebrew
$ brew install sbt

1.b. Установка под Windows

Просто скачайте инсталятор msi и запустите его.

1.c. Установка под Linux

Официально поддерживаемые дистрибутивы:
RPM пакет
DEB пакет

В дальнейшем я расскажу о том, как можно скачать и настроить sbt вручную. А пока что, самое интересное.

2. Hello, World

Создаем директорию проекта с исходным кодом

Одним из корректных вариантов sbt проекта, может быть директория, содержащая один файл с исходным кодом. Попробуйте создать директорию hello с файлом hw.scala, со следующим содержимым:

Читайте также:  Change symbolic link in linux

Теперь, в самой директории запустите sbt и наберите команду run в интерактивной консоле. В Linux или OS X это выглядить примерно так:

$ mkdir hello $ cd hello $ echo 'object Hi < def main(args: Array[String]) = println("Hi!") >' > hw.scala $ sbt . > run . Hi! 
  • Исходник лежит в корневой директории
  • Исходники лежат в директории src/main/scala или src/main/java
  • Тесты лежат в src/test/scala или src/test/java
  • Файлы ресурсов в src/main/resources или src/test/resources
  • Файлы jar в директории lib
Параметры сборки

Большинство проектов, все же нуждаются в более сложной настройке процесса сборки. В sbt основные параметры сборки хранятся в файле build.sbt в корневой директории проекта.
Например, если для нашего проекта hello создать файл настроек, то выглядеть бы он мог примерно так:

name := "hello" version := "1.0" scalaVersion := "2.10.3" 

Обратите внимание на пустые строки. Это не просто так, они на самом деле требуются чтобы отделять строки в файле конфигурации и без них sbt выдаст ошибку. Подробнее мы вернемся к этому файлу в последующих разделах.

Установка версии sbt

Вы можете принудительно скачать и установить нужную версию sbt если пропишете в файле hello/project/build.properties следующую строчку:
sbt.version=0.13.5
Теперь, при запуске будет использоваться версия sbt 0.13.5. Если ее нет, то скрип скачает и установит ее в системе.
Хранить версию sbt следует именно в файле project/build.properties для избежания возможных колизий.

В качестве заключения

Для эксперимента, я решил ограничиться только этими самыми первыми разделами, и если реакция будет более-менее положительной, надеюсь продолжить переводить и остальные.

P.S. Буду очень признателен, за указанные неточности и замечания перевода. Спасибо!

Источник

How to install sbt on ubuntu/debian with apt-get?

Installing sbt (Scala Build Tool) on Ubuntu/Debian using apt-get is a common task for developers who are working with Scala. However, sometimes it can be challenging to get it set up correctly, especially if you are new to Ubuntu/Debian. This can result in error messages and other issues that can be difficult to resolve. If you are facing such challenges, then this guide is for you. In this guide, we will look at several methods for installing sbt on Ubuntu/Debian using apt-get, including the recommended way and some alternative methods that might help if you run into problems.

Method 1: Installing sbt with apt-get using a Package Manager

That’s it! You have successfully installed sbt on Ubuntu/Debian using apt-get and created a new sbt project.

Method 2: Installing sbt with apt-get from the Typesafe repository

To install sbt on Ubuntu/Debian with apt-get, you can use the Typesafe repository. Here are the steps to follow:

echo "deb https://repo.scala-sbt.org/scalasbt/debian all main" | sudo tee /etc/apt/sources.list.d/sbt.list echo "deb https://repo.scala-sbt.org/scalasbt/debian /" | sudo tee /etc/apt/sources.list.d/sbt_old.list curl -sL "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x2EE0EA64E40A89B84B2DF73499E82A75642AC823" | sudo apt-key add sudo apt-get update

This should output the version of sbt installed on your system.

Читайте также:  Линукс как войти в биос

That’s it! You now have sbt installed on your Ubuntu/Debian system using apt-get from the Typesafe repository.

Method 3: Installing sbt with apt-get from the Debian Backports repository

To install sbt on Ubuntu/Debian using apt-get from the Debian Backports repository, you can follow these steps:

sudo sh -c 'echo "deb http://deb.debian.org/debian buster-backports main" > /etc/apt/sources.list.d/backports.list'
sudo apt-get install -t buster-backports sbt

This should output the version of sbt installed on your system.

Note: You may need to install the dirmngr package if it is not already installed on your system:

sudo apt-get install dirmngr

That’s it! You have successfully installed sbt on Ubuntu/Debian using apt-get from the Debian Backports repository.

Method 4: Installing sbt Manually using a Package or Tarball

Here are the steps to install sbt on Ubuntu or Debian manually using a package or tarball:

    Download the latest version of sbt from the official website:

wget https://piccolo.link/sbt-1.5.5.tgz
echo 'export PATH="/opt/sbt/bin:$PATH"' >> ~/.bashrc source ~/.bashrc

That’s it! You have successfully installed sbt manually on Ubuntu or Debian.

Источник

Install sbt on linux

Follow Install page, and install Scala using Coursier. This should install the latest stable version of sbt .

Installing from SDKMAN

To install both JDK and sbt, consider using SDKMAN.

$ sdk install java $(sdk list java | grep -o "\b8\.3*\.8*\-tem" | head -1) $ sdk install sbt 

Using Coursier or SDKMAN has two advantages.

  1. They will install the official packaging by Eclipse Adoptium, as opposed to the “mystery meat OpenJDK builds“.
  2. They will install tgz packaging of sbt that contains all JAR files. (DEB and RPM packages do not to save bandwidth)

Install JDK

You must first install a JDK. We recommend Eclipse Adoptium Temurin JDK 8, JDK 11, or JDK 17.

The details around the package names differ from one distribution to another. For example, Ubuntu xenial (16.04LTS) has openjdk-8-jdk. Redhat family calls it java-1.8.0-openjdk-devel.

Installing from a universal package

Download ZIP or TGZ package and expand it.

Ubuntu and other Debian-based distributions

DEB package is officially supported by sbt.

Ubuntu and other Debian-based distributions use the DEB format, but usually you don’t install your software from a local DEB file. Instead they come with package managers both for the command line (e.g. apt-get , aptitude ) or with a graphical user interface (e.g. Synaptic). Run the following from the terminal to install sbt (You’ll need superuser privileges to do so, hence the sudo ).

sudo apt-get update sudo apt-get install apt-transport-https curl gnupg -yqq echo "deb https://repo.scala-sbt.org/scalasbt/debian all main" | sudo tee /etc/apt/sources.list.d/sbt.list echo "deb https://repo.scala-sbt.org/scalasbt/debian /" | sudo tee /etc/apt/sources.list.d/sbt_old.list curl -sL "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x2EE0EA64E40A89B84B2DF73499E82A75642AC823" | sudo -H gpg --no-default-keyring --keyring gnupg-ring:/etc/apt/trusted.gpg.d/scalasbt-release.gpg --import sudo chmod 644 /etc/apt/trusted.gpg.d/scalasbt-release.gpg sudo apt-get update sudo apt-get install sbt 

Package managers will check a number of configured repositories for packages to offer for installation. You just have to add the repository to the places your package manager will check.

Читайте также:  Secure your server linux

Once sbt is installed, you’ll be able to manage the package in aptitude or Synaptic after you updated their package cache. You should also be able to see the added repository at the bottom of the list in System Settings -> Software & Updates -> Other Software:

Ubuntu Software & Updates Screenshot

Note: There have been reports about SSL error using Ubuntu: Server access Error: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty url=https://repo1.maven.org/maven2/org/scala-sbt/sbt/1.1.0/sbt-1.1.0.pom , which apparently stems from OpenJDK 9 using PKCS12 format for /etc/ssl/certs/java/cacerts cert-bug. According to https://stackoverflow.com/a/50103533/3827 it is fixed in Ubuntu Cosmic (18.10), but Ubuntu Bionic LTS (18.04) is still waiting for a release. See the answer for a workaround.

Note: sudo apt-key adv —keyserver hkps://keyserver.ubuntu.com:443 —recv 2EE0EA64E40A89B84B2DF73499E82A75642AC823 may not work on Ubuntu Bionic LTS (18.04) since it’s using a buggy GnuPG, so we are advising to use web API to download the public key in the above.

Red Hat Enterprise Linux and other RPM-based distributions

RPM package is officially supported by sbt.

Red Hat Enterprise Linux and other RPM-based distributions use the RPM format. Run the following from the terminal to install sbt (You’ll need superuser privileges to do so, hence the sudo ).

# remove old Bintray repo file sudo rm -f /etc/yum.repos.d/bintray-rpm.repo curl -L https://www.scala-sbt.org/sbt-rpm.repo > sbt-rpm.repo sudo mv sbt-rpm.repo /etc/yum.repos.d/ sudo yum install sbt 

On Fedora (31 and above), use sbt-rpm.repo :

# remove old Bintray repo file sudo rm -f /etc/yum.repos.d/bintray-rpm.repo curl -L https://www.scala-sbt.org/sbt-rpm.repo > sbt-rpm.repo sudo mv sbt-rpm.repo /etc/yum.repos.d/ sudo dnf install sbt 

Note: Please report any issues with these to the sbt project.

Gentoo

The official tree contains ebuilds for sbt. To install the latest available version do:

Источник

Оцените статью
Adblock
detector