Scilab 5.5.2 on Ubuntu 18.04
On clean VM with Ubuntu MATE 18.04.5 LTS the binary version (scilab-5.5.2.bin.linux-x86_64.tar.gz) crashes with Segmentation fault (core dumped)
caused by Java-related problem with thirdparty/java
.
So we need to install Scilab 5.5.2 by manually downloading packages from 16.04 LTS repository with all their dependencies. Below is the complete instruction:
cd ~/Downloads
# scilab files
wget -c http://archive.ubuntu.com/ubuntu/pool/universe/s/scilab/scilab_5.5.2-2ubuntu3_all.deb
wget -c http://archive.ubuntu.com/ubuntu/pool/universe/s/scilab/scilab-cli_5.5.2-2ubuntu3_all.deb
wget -c http://archive.ubuntu.com/ubuntu/pool/universe/s/scilab/scilab-data_5.5.2-2ubuntu3_all.deb
wget -c http://archive.ubuntu.com/ubuntu/pool/universe/s/scilab/scilab-doc_5.5.2-2ubuntu3_all.deb
wget -c http://archive.ubuntu.com/ubuntu/pool/universe/s/scilab/scilab-full-bin_5.5.2-2ubuntu3_amd64.deb
wget -c http://archive.ubuntu.com/ubuntu/pool/universe/s/scilab/scilab-include_5.5.2-2ubuntu3_amd64.deb
wget -c http://archive.ubuntu.com/ubuntu/pool/universe/s/scilab/scilab-minimal-bin_5.5.2-2ubuntu3_amd64.deb
wget -c http://archive.ubuntu.com/ubuntu/pool/universe/s/scilab/scilab-test_5.5.2-2ubuntu3_all.deb
# scilab dependencies
wget -c http://security.ubuntu.com/ubuntu/pool/universe/h/hdf5/libhdf5-10_1.8.16+docs-4ubuntu1.1_amd64.deb
wget -c http://archive.ubuntu.com/ubuntu/pool/main/s/suitesparse/libsuitesparseconfig4.4.6_4.4.6-1_amd64.deb
wget -c http://archive.ubuntu.com/ubuntu/pool/main/s/suitesparse/libamd2.4.1_4.4.6-1_amd64.deb
wget -c http://archive.ubuntu.com/ubuntu/pool/universe/libm/libmatio/libmatio2_1.5.3-1_amd64.deb
wget -c http://archive.ubuntu.com/ubuntu/pool/main/s/suitesparse/libcamd2.4.1_4.4.6-1_amd64.deb
wget -c http://archive.ubuntu.com/ubuntu/pool/main/s/suitesparse/libccolamd2.9.1_4.4.6-1_amd64.deb
wget -c http://archive.ubuntu.com/ubuntu/pool/main/s/suitesparse/libcolamd2.9.1_4.4.6-1_amd64.deb
wget -c http://archive.ubuntu.com/ubuntu/pool/main/s/suitesparse/libcholmod3.0.6_4.4.6-1_amd64.deb
wget -c http://archive.ubuntu.com/ubuntu/pool/main/s/suitesparse/libumfpack5.7.1_4.4.6-1_amd64.deb
sudo apt-get update
sudo apt-get install libcurl3
sudo apt-get install ./libhdf5-10_1.8.16+docs-4ubuntu1.1_amd64.deb \
./libsuitesparseconfig4.4.6_4.4.6-1_amd64.deb \
./libamd2.4.1_4.4.6-1_amd64.deb \
./libmatio2_1.5.3-1_amd64.deb \
./libcamd2.4.1_4.4.6-1_amd64.deb \
./libccolamd2.9.1_4.4.6-1_amd64.deb \
./libcolamd2.9.1_4.4.6-1_amd64.deb \
./libcholmod3.0.6_4.4.6-1_amd64.deb \
./libumfpack5.7.1_4.4.6-1_amd64.deb \
./scilab*.deb
Then we need to get OpenJDK 8
sudo apt-get install openjdk-8-jre openjdk-8-jre-headless
Then we need to edit Scilab desktop file to use OpenJDK 8:
sudo sed -i "s/^Exec=scilab -f$/Exec=env JAVA_HOME=\/usr\/lib\/jvm\/java-8-openjdk-$(dpkg --print-architecture)\/jre scilab -f/" /usr/share/applications/scilab.desktop
sudo sed -i "s/^Exec=scilab-adv-cli$/Exec=env JAVA_HOME=\/usr\/lib\/jvm\/java-8-openjdk-$(dpkg --print-architecture)\/jre scilab-adv-cli/" /usr/share/applications/scilab-adv-cli.desktop
Optionally we can create an alias for scilab to use OpenJDK 8:
echo "alias scilab='env JAVA_HOME=/usr/lib/jvm/java-8-openjdk-$(dpkg --print-architecture) scilab'" >> ~/.bashrc
echo "alias scilab-adv-cli='env JAVA_HOME=/usr/lib/jvm/java-8-openjdk-$(dpkg --print-architecture) scilab-adv-cli'" >> ~/.bashrc
echo "alias xcos='env JAVA_HOME=/usr/lib/jvm/java-8-openjdk-$(dpkg --print-architecture) xcos'" >> ~/.bashrc
And finally we need to pin/hold all manually installed packages to prevent their upgrades:
cat <<EOF | sudo tee /etc/apt/preferences.d/pin-scilab
Package: libamd2.4.1
Pin: version 4.4.6-1
Pin-Priority: 1337
Package: libcamd2.4.1
Pin: version 4.4.6-1
Pin-Priority: 1337
Package: libccolamd2.9.1
Pin: version 4.4.6-1
Pin-Priority: 1337
Package: libcholmod3.0.6
Pin: version 4.4.6-1
Pin-Priority: 1337
Package: libcolamd2.9.1
Pin: version 4.4.6-1
Pin-Priority: 1337
Package: libhdf5-10
Pin: version 1.8.16+docs-4ubuntu1.1
Pin-Priority: 1337
Package: libmatio2
Pin: version 1.5.3-1
Pin-Priority: 1337
Package: libsuitesparseconfig4.4.6
Pin: version 4.4.6-1
Pin-Priority: 1337
Package: libumfpack5.7.1
Pin: version 4.4.6-1
Pin-Priority: 1337
Package: scilab
Pin: version 5.5.2-2ubuntu3
Pin-Priority: 1337
Package: scilab-cli
Pin: version 5.5.2-2ubuntu3
Pin-Priority: 1337
Package: scilab-data
Pin: version 5.5.2-2ubuntu3
Pin-Priority: 1337
Package: scilab-doc
Pin: version 5.5.2-2ubuntu3
Pin-Priority: 1337
Package: scilab-full-bin
Pin: version 5.5.2-2ubuntu3
Pin-Priority: 1337
Package: scilab-include
Pin: version 5.5.2-2ubuntu3
Pin-Priority: 1337
Package: scilab-minimal-bin
Pin: version 5.5.2-2ubuntu3
Pin-Priority: 1337
Package: scilab-test
Pin: version 5.5.2-2ubuntu3
Pin-Priority: 1337
EOF
The resulting version is fully-functional - you can use ATOMS, Xcos and so on.
But we still need official reaction from Scilab Ubuntu (or Debian) maintainers.
Scilab is very feature rich application and it is very pity that it is non-well-maintained...