Описание тега octave
Рисунок 1: Снимок экрана интерфейса командной строки GNU Octave 4.0.0
GNU Octave - это интерпретируемый язык высокого уровня, который в основном совместим с MATLAB® и предназначен главным образом для численных вычислений. Он предоставляет удобный интерфейс командной строки (CLI) для численного решения линейных и нелинейных задач, хотя начиная с версии 3.8.0 (которая доступна в официальных репозиториях для Ubuntu 14.04 и более поздних версий) графический интерфейс пользователя (GUI) также был доступен для программное обеспечение (для версий 3.8.x этот графический интерфейс можно вызвать, запустив octave --force-gui
). Octave использует некоторые из лучших и наиболее уважаемых числовых библиотек, и его можно динамически расширять с помощью пользовательских файлов C++.
Рисунок 2: Снимок экрана графического интерфейса пользователя GNU Octave 4.0.0 в среде рабочего стола Xfce
Установка GNU Octave
Установка Octave в Ubuntu обычно проще всего выполнить через APT или Ubuntu Software Center, хотя установка из исходных кодов является жизнеспособной альтернативой, если вы предпочитаете другую версию программного обеспечения (например, последнюю версию) по сравнению с доступной в Ubuntu репозитории. Установка GNU Octave из исходных текстов сама по себе проста (хотя это часто занимает часы времени, большая часть которого не требует ввода данных пользователем), но что делает весь процесс более трудоемким и сложным, так это, к счастью, получение всех зависимостей. Тем не менее configure
Файл, который поставляется с исходным кодом GNU Octave, часто сообщает, когда отсутствует какая-либо зависимость, или если зависимость недоступна для Octave во время компиляции.
Установка GNU Octave из исходного кода
Архивы исходного кода для GNU Octave можно найти здесь. В качестве альтернативы, если кто-то знает точную версию GNU Octave, которую он хочет, можно использовать wget для ее получения через:
ver=4.0.0 #Replace 4.0.0 with the version one wants.
wget -c https://ftp.gnu.org/gnu/octave/octave-$ver.tar.gz
Список зависимостей для систем Ubuntu (включая их имена в репозиториях Ubuntu) можно найти здесь на официальной GNU Octave Wiki. Хотя этот список может устареть, здесь есть альтернативный источник для зависимостей сборки, который является официальной документацией для GNU Octave, но имейте в виду, что эта страница также может отставать от обновлений (например, по состоянию на 19 июля 2015 г. эта документация была последний раз обновлялся в 2013 году) и не дает названия этих зависимостей, как они появляются в репозиториях Ubuntu. Многие из этих зависимостей можно установить, запустив sudo apt-get install build-dep octave
, Как только кто-то считает, что у него есть все необходимые зависимости, извлеките tarball в нужный каталог и выполните команду trinity (то есть./configure && make && sudo make install
). Например, чтобы извлечь tarball и запустить троицу, можно выполнить:
tar -xzf octave-$ver.tar.gz
cd octave-$ver
./configure
make
sudo make install DESTDIR=/
Возможно, стоит только скопировать до./configure
этап, как./configure
Команда, скорее всего, сообщит, если отсутствует какая-либо необходимая зависимость. Например, если ./configure
Команда дает:
Warning: HDF5 library not found. Octave will not be able to save or load HDF5 data files.
даже если вы уверены, что HDF5 установлен в своей системе, в соответствии с ответом на этот отчет об ошибке, ./configure
строка должна быть изменена на:
./configure CPPFLAGS=-I/usr/include/hdf5/serial LDFLAGS=-L/usr/lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH)/hdf5/serial
Также можно получить предупреждение о том, что Java не была найдена и, следовательно, будет использоваться автоопределение, но оно ненадежно. В этом случае найдите домашний каталог для Java в вашей системе, а затем ./configure
линия установить его как ваш JAVA_HOME
переменная. Например, если у вас есть 32-битная система ./configure
линия, скорее всего, будет что-то вроде ./configure ... JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386
, где ...
может быть пустым или может включать решение об ошибке HDF5, описанное ранее в этом тэге вики.