ΠΠ°ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Scala Π½Π° RHEL 8 / CentOS 8 ?.
Scala – ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΉ Π΄Π»Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΡΠΆΠ°ΡΠΎΠΉ ΠΈ Π»ΠΎΠ³ΠΈΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ.
Scala Programming ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° Java ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Spark.
ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Java, Π²Π°ΠΌ Π±ΡΠ΄Π΅Ρ Π»Π΅Π³ΠΊΠΎ ΠΎΡΠ²ΠΎΠΈΡΡ Scala.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Scala Π½Π° RHEL 8 / CentOS 8
Scala Π΄Π»Ρ RHEL / CentOS ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΏΠ°ΠΊΠ΅ΡΠ° RPM.
ΠΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π³ΠΎΠ², Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Scala Π½Π° RHEL 8 / CentOS 8.
Π¨Π°Π³ 1: Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Java
ΠΠ΅ΡΠ²ΠΎΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ – ΡΡΠΎ Java.
Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π½Π° Π²Π°ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ RHEL 8 / CentOS 8 ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° Java.
ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΡΠ΅Π΄Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Java Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
$ java -version openjdk version "11-ea" 2018-09-25 OpenJDK Runtime Environment (build 11-ea+28) OpenJDK 64-Bit Server VM (build 11-ea+28, mixed mode, sharing)
Π¨Π°Π³ 2: ΠΠ°Π³ΡΡΠ·ΠΈΡΠ΅ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Scala
ΠΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Java ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ ΠΊ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ RPM-ΠΏΠ°ΠΊΠ΅ΡΠ° Scala ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π΅Π³ΠΎ Π½Π° ΡΠ²ΠΎΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ Ρ RHEL 8.
Π‘Π½Π°ΡΠ°Π»Π° ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π²Π΅ΡΡΠΈΡ Scale Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ Π·Π°Π³ΡΡΠ·ΠΎΠΊ.
export VER="2.12.8" wget https://downloads.lightbend.com/scala/$VER/scala-$VER.rpm
ΠΠ°ΠΌΠ΅Π½ΠΈΡΠ΅ 2.12.8 Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ, Π΄ΠΎΡΡΡΠΏΠ½ΡΠΉ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Π·Π°Π³ΡΡΠ·ΠΎΠΊ Π²ΡΠΏΡΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ dnf.
$ sudo dnf install scala-$VER.rpm Updating Subscription Management repositories. Updating Subscription Management repositories. Last metadata expiration check: 0:19:41 ago on Thu 14 Mar 2019 08:12:19 PM EAT. Dependencies resolved. Package Arch Version Repository Size Installing: scala noarch 2.12.8-1 @commandline 124 M Transaction Summary Install 1 Package Total size: 124 M Installed size: 595 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 Installed: scala-2.12.8-1.noarch Running scriptlet: scala-2.12.8-1.noarch 1/1 Installing : scala-2.12.8-1.noarch 1/1 Running scriptlet: scala-2.12.8-1.noarch 1/1 Installed: scala-2.12.8-1.noarch Verifying : scala-2.12.8-1.noarch 1/1 Installed: scala-2.12.8-1.noarch Complete!
ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ Scala, ΠΏΡΠΎΠ²Π΅ΡΠΈΠ² Π²Π΅ΡΡΠΈΡ.
scala -version
ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ Π½Π°ΠΏΠ΅ΡΠ°ΡΠ°ΡΡ Β«Hello WorldΒ» Π² Scala.
$ 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.
ΠΠ°ΠΏΡΡΠΊ Scala Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΊΡΠΈΠΏΡΠ° ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Scala ΠΊΠ°ΠΊ ΡΠΊΡΠΈΠΏΡ ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠΈ. Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ» Π½ΠΈΠΆΠ΅ ΠΊΠ°ΠΊ scala.sh.
#!/bin/sh
exec scala "$0" "$@"
!#
object HelloWorld {
def main(args: Array[String]) {
println("Hello, Scala World! " + args.toList)
}
}
HelloWorld.main(args)
ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ ΡΠΊΡΠΈΠΏΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.
sh scala.sh
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΊΠΎΠ΄Π° Scala
ΠΠΎΠΌΠ°Π½Π΄Π° scalac ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Scala ΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π° Java, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ Π½Π° Π»ΡΠ±ΠΎΠΉ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ JVM. Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ Π½ΠΈΠΆΠ΅.
$ cat HelloWorld.scala
object HelloWorld {
def main(args: Array[String]) {
println("Hello, world!")
}
}
Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠΉΡΠ΅ ΡΡΠΎ.
$ scalac HelloWorld.scala
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ scalac ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠ°ΠΉΠ»Ρ ΠΊΠ»Π°ΡΡΠΎΠ² Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅, Π½ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ Π΄ΡΡΠ³ΠΎΠΉ Π²ΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΎΠΏΡΠΈΡ -d.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ scala Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π°.
$ scala HelloWorld Hello, world!
ΠΡΠΎ Π²ΡΠ΅. ΠΠ°ΡΠ»Π°ΠΆΠ΄Π°ΠΉΡΠ΅ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ Scala Π½Π° RHEL 8 ΠΈ ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ΡΡ ΠΊ ΠΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ.
![]()
