安装 GNU Octave;路径错误

安装 GNU Octave;路径错误

我通过以下方式安装了 Octave:

cd /tmp
wget -c ftp://ftp.gnu.org/gnu/octave/octave-4.0.0.tar.gz
tar -xzf octave*.tar.gz
mv octave* octave && sudo mv octave /opt
sudo chmod 777 -R /opt/octave
./configure CPPFLAGS=-I/usr/include/hdf5/serial LDFLAGS=-L/usr/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH)/hdf5/serial JAVA_HOME='/usr/lib/jvm/java-1.7.0-openjdk-i386'
make
sudo make install DESTDIR=/opt/octave/build

DESTDIR变量最初设置为/usr/local/share/octave,运行可执行文件时遇到同样的问题。问题是运行可执行文件/opt/octave/build/usr/local/bin/octave会给出错误:

➜  octave  '/opt/octave/build/usr/local/bin/octave' 
octave: failed to exec '/usr/local/libexec/octave/4.0.0/exec/i686-pc-linux-gnu/octave-gui'

显而易见的解决方案是将 的内容移动/opt/octave/build/,从而将可执行文件的路径更改为/usr/local/bin/octave。但我试图创建一个二进制目录,它可以移动到文件系统上的任何位置,并且仍然可以工作。

但我还想知道如何在我的系统上安装 Octave(以一种不能像二进制包那样移动的方式)。如果是我建议的方式,即移动的内容,/opt/octave/build/告诉我如何从命令行进行操作。

答案1

简短的回答是您应该使用 Octave 来构建,--prefix=DIR而不是在命令DESTDIR=DIR上指定make install,正如评论中所指出的那样。

更根本的问题是如何创建 Octave 的二进制安装,使其可以移动到文件系统的任何位置,并且仍然完全正常运行。答案是目前还无法做到这一点。在编译 Octave 时,其自己的库和脚本的几个路径会被编译到可执行文件中,以便它可以找到自己的运行时。其中一些路径可能可以被覆盖(例如,请参阅一些覆盖默认路径的选项),但目前有些路径无法覆盖,例如或 的octave --help路径。这些辅助程序的位置完全取决于构建 Octave 时赋予的值。mkoctfileoctave-gui--prefix

相关内容