[JAVA] (Note) Points to be addicted to when installing Scilab on ArchLinux

Introduction

If you know what Scilab is for and are already using ArchLinux, you can skip the introduction.

What is Scilab in the first place?

Something like a commercial numerical analysis app MATLAB. GNU Octave is similar. I've never used MATLAB myself, so I'm not sure if that's the case, but after a little research, Octave seems to be aiming for a MATLAB clone, and Scilab doesn't seem to want that much compatibility. [Features of ^ scilab] Home MATLAB has recently been caught up by free Octave and Scilab, so we are focusing on design / prototyping / testing plug-ins for companies with money such as automobiles / robots / semiconductor manufacturing / telecommunications carriers. pattern.

And in terms of category, statistical processing software group represented by R is also available. Something similar. [^ Digression]

Numerical analysis software is for industrial systems that require real-time processing, and statistical processing software is for biotechnology / human sciences that bring data from databases.

[Features of ^ scilab]: The biggest point is that the GUI is Java-based. [^ Digression]: Commercial statistical processing software is completely dying because free R has become mainstream in the last 10 years ...

What kind of distribution is ArchLinux?

Please see Japanese Official for details. Below, personal impressions

--Anyway, it's light [^ 1] ――It is quick to support the new OSS version with a moderate rolling update [^ 2] --Major apps / libraries do not need to be compiled and can be updated quickly [^ 3] [^ 4]

[^ 1]: Measured by the systemd-analyze time command, the 10-second range is rough. If you shape the boot process, such as not auto-mounting the remote file system, it may be in the 5 second range. [^ 2]: Better than Slackware, which has the same policy of minimalism but emphasizes stability with "dead technology" (for me) [^ 3]: Overwhelmingly better than Gentoo, which wastes a lot of time compiling gcc and llvm [^ 4]: For minor ones, you need to follow the steps of source download, compilation, package creation, and installation from AUR via git, but one command It's not a hassle because it ends with.

Why try to put Scilab in ArchLinux?

I've used R and Octave before, but I've never used Scilab, so it was an easy idea to compare and evaluate. ・ ・ ・

Install Scilab on ArchLinux

R and Octave are registered in the genuine package, but Scilab is not registered in the genuine package, so download the package creation files from AUR and compile the package yourself. This was the beginning of hell.

[hoge@fuga ~]$ git clone https://aur.archlinux.org/scilab.git
(Omit git output)
[hoge@fuga ~]$ cd scilab
[hoge@fuga scilab]$ makepkg -si
(Below, many error messages)
[hoge@fuga scilab]$

Addictive point # 1: There are too many dependencies to reach the build ...

When you try to build → install an ArchLinux package, if a program / library that depends on it and is not installed is registered in the genuine package, it will be installed obediently. However, if you rely on a library that is only registered with AUR, you will need to compile that package yourself. After all, I built a few new libraries just for Scilab. [^ Dependence]

[^ Dependency]: Why do I even need Java or Ocaml (anger). Java was pre-installed, and Ocaml has a genuine package, so let's try it (so it's not a genuine package ...)

Addictive point # 2: It takes too long to compile ...

The environment I installed this time is a poor VMWare virtual machine that takes less than 2 hours to compile gcc, but it took more time (2.5 hours) than gcc. The meaning of using ArchLinux is lost ...

Addictive point # 3: It doesn't start (1st stage) ...

[hoge@fuga ~]$ scilab
(libjava.Error message stating that so cannot be found)
[hoge@fuga ~]$

Oh yeah ... that's what it is, right?

[hoge@fuga ~]$ cat | sudo tee /etc/ld.so.conf.d/java.conf
/usr/lib/jvm/default-runtime/lib
[hoge@fuga ~]$ sudo /sbin/ldconfig
[hoge@fuga ~]$ source /etc/profile
[hoge@fuga ~]$ scilab
(libjvm.Error message stating that so cannot be found)
[hoge@fuga ~]$

What!

[hoge@fuga ~]$ find /usr/lib/jvm/default-runtime -name libjvm.so
/usr/lib/jvm/default-runtime/lib/server/libjvm.so
[hoge@fuga ~]$ cat | sudo tee -a /etc/ld.so.conf.d/java.conf
/usr/lib/jvm/default-runtime/lib/server
[hoge@fuga ~]$ sudo /sbin/ldconfig
[hoge@fuga ~]$ source /etc/profile
[hoge@fuga ~]$ scilab
(The JVM can't create the main class because of an incorrect reflect.!An error message with a long stack trace.)
[hoge@fuga ~]$

What's this···

Addictive point # 4: It doesn't start (second stage) ...

Hmm? Maybe

Java on ArchLinux

--Widely compatible with OpenJDK 7-10. --Multiple major versions are installed and can be selected. --The default version can be set with the dedicated archlinux-java command

Java9 is the only Java in the environment where Scilab is installed.

[hoge@fuga ~]$ sudo pacman -S jre8-openjdk jre8-openjdk-headless
(Installation)
[hoge@fuga ~]$ sudo archlinux-java set java-8-openjdk
[hoge@fuga ~]$ scilab
(It took some time because of the first startup, but I managed to start it)
[hoge@fuga ~]$

Summary

--Java8 is required to run Scilab 6.0.x. ――In the end, using Octave is overwhelmingly easier in terms of environment construction. ――Since we only confirm the startup, we have not learned the language or evaluated the performance at all.

Recommended Posts

(Note) Points to be addicted to when installing Scilab on ArchLinux
Points to note when updating to WSL2
A note I was addicted to when making a beep on Linux
Points to note when performing logistic regression with Statsmodels
Points to note when deleting multiple elements from the List
Memo (March 2020) that I was addicted to when installing Arch Linux on MacBook Air 11'Early 2015
Points to note when making pandas read csv of excel output
The record I was addicted to when putting MeCab on Heroku
Things to note when running Python on EC2 from AWS Lambda
A note I was addicted to when creating a table with SQLAlchemy
Support when installing pillow on python3.9
What to do if you get "The session could not be opened" when installing CentOS on VirtualBox
Points to consider when hitting SoftLayer API from an app on Bluemix
Error resolution when installing numba on macOS
[Note] Procedures for installing Ubuntu on Windows 10
A struggle when installing pyenv on Cygwin
I was addicted to Flask on dotCloud
Be careful when adding an array to an array
Personal Note Package to install on Anaconda
Check! Troubleshooting when installing PyObjc on Mac
Solution when aws-cli cannot be executed on Mac virtual environment (after installing Python 3.8)
To avoid seeing hell when installing django-toolbelt on windows, heroku and python3.4 (64bit) ...
Summary of points I was addicted to running Selenium on AWS Lambda (python)
I want to be notified when the command operation is completed on linux!