ユーザ用ツール

サイト用ツール


linux:scilab

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

次のリビジョン
前のリビジョン
linux:scilab [2020/02/01 01:55] – 作成 aninecolinux:scilab [2020/02/03 10:09] (現在) anineco
行 1: 行 1:
 ====== Fedora 31 に scilab をインストール ====== ====== Fedora 31 に scilab をインストール ======
 +[[https://www.scilab.org/|Scilab]] からバイナリ(scilab-6.0.2.bin.linux-x86_64.tar.gz)をダウンロード、展開して、"bin/scilab" を起動すると、次のような selinux 回りの警告がでる。動作はするが、なかなかうざい。
 +<code>
 +/usr/bin/chcon: '/usr/local/scilab-6.0.2/bin/scilab-bin' のコンテキストを `unconfined_u:object_r:execmem_exec_t:s0' に変更できません: 許可されていない操作です
 +Error: Cannot chcon 'scilab-bin'
 +/usr/bin/chcon: '/usr/local/scilab-6.0.2/bin/scilab-cli-bin' のコンテキストを `unconfined_u:object_r:execmem_exec_t:s0' に変更できません: 許可されていない操作です
 +Error: Cannot chcon 'scilab-cli-bin'
 +</code>
 +Fedora 31 には scilab のパッケージが一応あるので、
 <code> <code>
 sudo dnf install scilab sudo dnf install scilab
行 11: 行 19:
 (try to add '--skip-broken' to skip uninstallable packages) (try to add '--skip-broken' to skip uninstallable packages)
 </code> </code>
-が表示され、jeuclid と jrosetta が Fedora 31 のレポジトリにないために、インストールに失敗する。rpmfind.net で jeuclid と jrosetta を検索し、パッケージをダウンロードしてインストールする。+が表示され、jeuclid と jrosetta が Fedora 31 のレポジトリにないために、インストールに失敗する。rpmfind.net で jeuclid と jrosetta を検索し、パッケージをダウンロードしてインストールする。足りないパッケージがあると表示されるので、その都度、入れていく
 <code> <code>
 sudo rpm -ivh jeuclid-3.1.3-23.fc26.noarch.rpm sudo rpm -ivh jeuclid-3.1.3-23.fc26.noarch.rpm
行 18: 行 26:
 しかるのちに scilab をインストール。 しかるのちに scilab をインストール。
 <code> <code>
-sudo dnf install+sudo dnf install scilab 
 +</code> 
 +コンソールからscilabを起動すると、次のエラーメッセージがでる。 
 +<code> 
 +警告: Javaパッケージ '/usr/share/java/lucene/lucene-core.jar' が見つかりません。 
 +警告: Javaパッケージ '/usr/share/java/lucene/lucene-core.jar' が見つかりません。 
 +警告: Javaパッケージ '/usr/share/java/lucene/lucene-queryparser.jar' が見つかりません。 
 +警告: Javaパッケージ '/usr/share/java/saxon/saxon.jar' が見つかりません。 
 +警告: Javaパッケージ '/usr/share/java/ecj.jar' が見つかりません。 
 +Javaライブラリのロードでいくつかの問題が発生しました。 
 +これは、一貫性がない挙動をするかもしれません。 
 +どうぞ SCI/etc/classpath.xml を確認してください。 
 +</code> 
 +足りないパッケージをさらに追加する。 
 +<code> 
 +dnf whatprovides /usr/share/java/lucene/lucene-core.jar 
 +</code> 
 +で必要なパッケージ名が "lucene-7.7.0-2.fc31.noarch" と分かる。 
 +<code> 
 +sudo dnf install lucene lucene-queryparser saxon
 </code> </code>
-コンソールからscilabを起動すると、'/usr/share/java/ecj.jar'がないと警告される。ecj.jar は'/usr/share/java/ecj/ecj.jar' にあるので、'/usr/share/scilab/etc/classpath.xml'の該当個所を書き換える。+ecj.jar は'/usr/share/java/ecj/ecj.jar' にあるので、'/usr/share/scilab/etc/classpath.xml'の該当個所を書き換える。
 <code> <code>
 --- classpath.xml.orig 2020-02-01 01:37:50.491042675 +0900 --- classpath.xml.orig 2020-02-01 01:37:50.491042675 +0900
行 35: 行 62:
 </code> </code>
 これで scilab がGUIも含めて動作し、日本語表示もOK。 これで scilab がGUIも含めて動作し、日本語表示もOK。
 +
 +追記:java-1.8.0-openjdk{,-headless}-1.8.0.242.b08-0.fc31.x86_64 では "Main Scilabクラスにアクセスできませんでした。" とのメッセージが出て、scilab を起動できない。過去のバージョンは
 +<code>
 +dnf --showduplicates list java-1.8.0-openjdk
 +</code>
 +でわかる。次のコマンドでダウングレードする。
 +<code>
 +sudo dnf downgrade java-1.8.0-openjdk{,-headless}-1.8.0.222.b10-1.fc31
 +</code>
 +これらのパッケージをアップデートの対象から外すには、次のファイルに記述する。
 +<code - /etc/dnf/dnf.conf>
 +[main]
 +excludepkgs=java-1.8.0-openjdk*
 +</code>
 +この設定の下で、強制的にアップデートする場合は、次のコマンド
 +<code>
 +sudo dnf update --disableexcludes=all
 +</code>
 +なお、"ldd /usr/bin/scilab-bin" を実行すると、"lib{java,jvm,verify}.so" が not found となっている。これらは次のパスにある。いずれも、"java-1.8.0-openjdk-headless-1.8.0.222.b10-1.fc31" のファイルである。
 +<code>
 +/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-1.fc31.x86_64/jre/lib/amd64/libjava.so
 +/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-1.fc31.x86_64/jre/lib/amd64/server/libjvm.so
 +/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-1.fc31.x86_64/jre/lib/amd64/libverify.so
 +</code>
 +"1.8.0.222.b10-1" → "1.8.0.242.b08-0" の変更では、"jre/bin/{clhsdb,hsdb}" が消えている。
 +<code>
 +JDK-8226870 removed clhsdb and hdsdb from the JRE bin directory, so we should do likewise.
 +Add alternatives support for these two new SDK binaries.
 +</code>
 +JDK-8226870 を検索して見てみたが、あまり関係はなさそう。
 +
linux/scilab.1580489718.txt.gz · 最終更新: 2020/02/01 01:55 by anineco