1

Scilab 6 seems to have some error on Ubuntu 18.04, so I want to try running 5.5.2. I downloaded the binaries from Scilab website. When I try to run with ./scilab in the bin folder, it gives an authentication problem with something called a libEGL license:

$ ./scilab
libEGL warning: DRI2: failed to authenticate
Segmentation fault (core dumped)

Is there any fix to this?

  • See bugzilla.scilab.org/show_bug.cgi?id=15194, apparently related with the kernel. Although solved for later 16.04 kernels, I get "Segmentation fault" when trying to run ./bin/scilab on Ubuntu 18.04. You probably should file the issue with the developpers. – vanadium Jul 7 '18 at 12:04
  • About Scilab 6 you can read my Q&A. You can get it working by downloading version 6 from official site. Did not tried 5.5.2 yet on 18.04 LTS. – N0rbert Jul 7 '18 at 14:55
0

On clean VM with Ubuntu MATE 18.04.1 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 http://mirrors.kernel.org/ubuntu/pool/universe/s/scilab/scilab_5.5.2-2ubuntu3_all.deb
wget http://mirrors.kernel.org/ubuntu/pool/universe/s/scilab/scilab-cli_5.5.2-2ubuntu3_all.deb
wget http://mirrors.kernel.org/ubuntu/pool/universe/s/scilab/scilab-data_5.5.2-2ubuntu3_all.deb
wget http://mirrors.kernel.org/ubuntu/pool/universe/s/scilab/scilab-doc_5.5.2-2ubuntu3_all.deb
wget http://mirrors.kernel.org/ubuntu/pool/universe/s/scilab/scilab-full-bin_5.5.2-2ubuntu3_amd64.deb
wget http://mirrors.kernel.org/ubuntu/pool/universe/s/scilab/scilab-include_5.5.2-2ubuntu3_amd64.deb
wget http://mirrors.kernel.org/ubuntu/pool/universe/s/scilab/scilab-minimal-bin_5.5.2-2ubuntu3_amd64.deb
wget http://mirrors.kernel.org/ubuntu/pool/universe/s/scilab/scilab-test_5.5.2-2ubuntu3_all.deb
# scilab dependencies
wget http://security.ubuntu.com/ubuntu/pool/universe/h/hdf5/libhdf5-10_1.8.16+docs-4ubuntu1.1_amd64.deb
wget http://mirrors.kernel.org/ubuntu/pool/main/s/suitesparse/libsuitesparseconfig4.4.6_4.4.6-1_amd64.deb
wget http://mirrors.kernel.org/ubuntu/pool/main/s/suitesparse/libamd2.4.1_4.4.6-1_amd64.deb
wget http://mirrors.kernel.org/ubuntu/pool/universe/libm/libmatio/libmatio2_1.5.3-1_amd64.deb
wget http://mirrors.kernel.org/ubuntu/pool/main/s/suitesparse/libcamd2.4.1_4.4.6-1_amd64.deb
wget http://mirrors.kernel.org/ubuntu/pool/main/s/suitesparse/libccolamd2.9.1_4.4.6-1_amd64.deb
wget http://mirrors.kernel.org/ubuntu/pool/main/s/suitesparse/libcolamd2.9.1_4.4.6-1_amd64.deb
wget http://mirrors.kernel.org/ubuntu/pool/main/s/suitesparse/libcholmod3.0.6_4.4.6-1_amd64.deb
wget http://mirrors.kernel.org/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.

Note: the method above is also applicable to Ubuntu 18.10, but you need to get libcurl3 deb-file manually from 18.04 LTS repository.


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...

  • Thanks for this procedure. I just added xenial as a repo in my apt sources and did apt-get install -t xenial scilab which I assume has an equivalent effect. However, plotting fails with com.jogamp.opengl.GLException: Profile GL_DEFAULT is not available on X11GraphicsDevice. Have you encountered the same problem ? – ysalmon Oct 1 at 20:51
  • I do not have this problem, but it really depends on video driver. What is your video adapter and driver in use? Did you tried to run Scilab as LIBGL_ALWAYS_SOFTWARE=1 scilab? – N0rbert Oct 2 at 20:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.