如何在RHEL 8/CentOS 8上安装Scala

时间:2020-02-23 14:30:53  来源:igfitidea点击:

如何在RHEL 8/CentOS 8上安装Scala? Scala是一种面向对象的功能性编程语言,旨在极其简洁和逻辑化。 Scala编程基于Java,并为流行的应用程序(例如Spark)提供支持。如果我们了解Java语法,应该很容易掌握Scala。

从AppStream存储库在RHEL/CentOS 8上安装Scala

用于RHEL/CentOS的Scala通过AppStream存储库分发。

$sudo yum module list | grep scala
scala                2.10 [d]    default [d]                               A hybrid functional/object-oriented language for the JVM

通过运行以下命令安装Scala。

$sudo yum install @scala

通过检查版本来验证Scala安装。

$scala -version
Scala code runner version 2.10.6 -- Copyright 2002-2013, LAMP/EPFL

从RPM软件包安装Scala

这是从RPM软件包在RHEL/CentOS 8上安装Scala所需的几个步骤。

在CentOS 8/RHEL 8上安装Java

第一个要求是Java。确保在RHEL 8/CentOS 8计算机上安装了Java。以下指南应该会有所帮助。

如何在RHEL/CentOS 8上安装Java 11(OpenJDK 11)

使用以下命令验证Java运行时的安装:

$java -version
openjdk version "11-ea" 2016-09-25
OpenJDK Runtime Environment (build 11-ea+28)
OpenJDK 64-Bit Server VM (build 11-ea+28, mixed mode, sharing)

在CentOS 8/RHEL 8上安装Scala

安装Java之后,继续下载Scala RPM软件包并将其安装在RHEL 8计算机上。首先,在"下载"页面上检查Scale的最新版本。

export VER="2.13.1"
wget https://downloads.lightbend.com/scala/$VER/scala-$VER.rpm

用下载部分中提供的最新版本替换" 2.13.1"。

使用dnf命令安装下载的软件包。

$sudo dnf install scala-$VER.rpm
Last metadata expiration check: 0:27:09 ago on Tue 24 Sep 2019 08:26:12 PM EAT.
 Dependencies resolved.
  Package                         Arch                             Version                             Repository                              Size
 Upgrading:
  scala                           noarch                           2.13.1-1                            @commandline                           116 M
 Transaction Summary
 Upgrade  1 Package
 Total size: 116 M
 Is this ok [y/N]: y
 Downloading Packages:
 Running transaction check
 Transaction check succeeded.
 Running transaction test
 Transaction test succeeded.
 Running transaction
   Preparing        :                                                                                                                           1/1 
   Running scriptlet: scala-2.13.1-1.noarch                                                                                                     1/2 
   Upgrading        : scala-2.13.1-1.noarch                                                                                                     1/2 
   Cleanup          : scala-2.10.6-14.module_el8.0.0+82+8ee6c375.noarch                                                                         2/2 
   Running scriptlet: scala-2.10.6-14.module_el8.0.0+82+8ee6c375.noarch                                                                         2/2 
   Verifying        : scala-2.13.1-1.noarch                                                                                                     1/2 
   Verifying        : scala-2.10.6-14.module_el8.0.0+82+8ee6c375.noarch                                                                         2/2 
 Upgraded:
   scala-2.13.1-1.noarch                                                                                                                            
 Complete!

通过检查版本来验证Scala安装。

$scala -version
Scala code runner version 2.13.1 -- Copyright 2002-2019, LAMP/EPFL and Lightbend, Inc.

在CentOS 8/RHEL 8上测试Scala安装

尝试在Scala中打印Hello World。

$scala
Welcome to Scala 2.12.8 (OpenJDK 64-Bit Server VM, Java 11-ea).
Type in expressions for evaluation. Or try :help.
scala> println("Hello Scala World")
Hello Scala World
scala> :q

:q用于从Scala shell退出。

将Scala作为shell脚本运行

我们可以将Scala程序作为shell脚本运行。将以下文件保存到scala.sh

#!/bin/sh
  exec scala "
sh scala.sh
" "theitroad@localhost" !# object HelloWorld { def main(args: Array[String]) { println("Hello, Scala World! " + args.toList) } } HelloWorld.main(args)

如下运行脚本。

$cat HelloWorld.scala 
object HelloWorld {
  def main(args: Array[String]) {
    println("Hello, world!")
  }
}

编译Scala代码

scalac命令用于编译Scala源文件并生成可在任何标准JVM上执行的Java字节码。请参见下面的示例。

$scalac HelloWorld.scala

编译它。

$scala HelloWorld
Hello, world!

缺省情况下,scalac会将类文件生成到当前工作目录中,但是我们可以使用-d选项指定其他输出目录。

使用scala命令执行生成的字节码。

##代码##

要了解在RHEL 8上进行Scala开发的更多信息,请参考官方文档。