CentOS 7
Sponsored Link

Scala インストール
2017/10/31
 
オブジェクト指向言語と関数型言語の双方の特徴を統合し Java VM 上で動作する Scala のインストールです。
[1] CentOS SCLo Software Collections からインストール可能です。
# SCLoからインストール

[root@dlp ~]#
yum --enablerepo=centos-sclo-rh -y install rh-scala210
[2] Software Collections パッケージは /opt 配下にインストールされます。
環境変数を読み込んで利用するには以下のように実行します。
# 環境変数を読み込む

[root@dlp ~]#
scl enable rh-scala210 bash
[root@dlp ~]#
scala -version

Scala code runner version 2.10.6 -- Copyright 2002-2013, LAMP/EPFL
[root@dlp ~]#
which scala

/opt/rh/rh-scala210/root/usr/bin/scala
[3] ログイン時に自動的に有効にするには以下のように設定します。
[root@dlp ~]#
vi /etc/profile.d/rh-scala210.sh
# 以下の内容で新規作成

#!/bin/bash

source /opt/rh/rh-scala210/enable
export X_SCLS="`scl enable rh-scala210 'echo $X_SCLS'`"
[4] Scala REPL (Read Eval Print Loop) と呼ばれる対話型シェルを起動して動作確認します。
[root@dlp ~]#
scala

Welcome to Scala version 2.10.6 (OpenJDK 64-Bit Server VM, Java 1.8.0_151).
Type in expressions to have them evaluated.
Type :help for more information.

# 文字列を表示 
scala> println("Hello Scala World")
Hello Scala World

# 定数に代入
scala> val msg:String = "Hello Scala World"
msg: String = Hello Scala World

scala> println(msg)
Hello Scala World

# 終了
scala> sys.exit
[5] テストプログラムで動作確認します。
[root@dlp ~]#
vi readfile.scala
import java.io.File
import java.io.FileReader
import java.io.BufferedReader

object readfile {
  def main(args: Array[String]) {
    val reader = new BufferedReader(new FileReader(new File("/etc/passwd")))
    try {
      var line : String = null
        while ({ line = reader.readLine; line != null }) {
          println(line)
        }
    } finally {
      reader.close
    }
  }
}

# そのまま実行

[root@dlp ~]#
scala readfile.scala

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
.....
.....

# コンパイルして実行

[root@dlp ~]#
scalac readfile.scala

[root@dlp ~]#
total 16
-rw-------. 1 root root 1441 Dec 19  2016 anaconda-ks.cfg
-rw-r--r--. 1 root root  574 Nov  1 19:44 readfile.class
-rw-r--r--. 1 root root 1104 Nov  1 19:44 readfile$.class
-rw-r--r--. 1 root root  387 Nov  1 19:42 readfile.scala

[root@dlp ~]#
scala readfile

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
.....
.....
 
Tweet