Я установил 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
в /
, пожалуйста, скажите, пожалуйста, как из командной строки.
Короткий ответ - то, что необходимо создать Октаву с --prefix=DIR
вместо того, чтобы указать DESTDIR=DIR
на эти make install
команда, как был уже обозначен в комментариях.
Ваш более фундаментальный вопрос состоит в том, как создать двоичную установку Октавы, которая может быть перемещена куда угодно в файловой системе и все еще быть полностью функциональной. И ответ - то, что в настоящее время не возможно сделать это. Когда Октава компилируется, несколько путей к ее собственным библиотекам и сценариям компилируются в исполняемый файл, таким образом, это может найти свое собственное время выполнения. Некоторые из тех могут быть переопределенными (см., например octave --help
для некоторых опций переопределить пути по умолчанию), но некоторый ток не может, такие как путь к mkoctfile
или octave-gui
. Местоположения этих программ помощника зависят полностью от значения, данного --prefix
, когда Октава создается.