Difference between revisions of "Octave for Microsoft Windows"

From Octave
Jump to navigation Jump to search
(fixing broken links)
(→‎Pre-installed Packages: Add note about minimal Python)
 
(169 intermediate revisions by 50 users not shown)
Line 1: Line 1:
GNU Octave is primarily developed on GNU/Linux and other POSIX conformal systems. The ports of GNU Octave to Windows use different approaches to get most of the original Octave and adapt it to Microsoft Windows idiosyncrasies (eg: dynamic libraries, file paths, permissions, environment variables, GUI system, etc). Bear this in mind and don't panic if you get unexpected results. There are a lot of suggestions on the mailing lists for tuning your Octave installation.
+
:''This article is about using pre-built installers of Octave for Windows; for instructions about building it, see [[Windows Installer]].''
  
About version numbers (Feb 2012):
+
{{Note|Windows installers are available for the latest version of '''Octave ({{Release}}, released on {{Release Date}})''' from https://ftp.gnu.org/gnu/octave/windows/.}}
*The 3.6.x are current releases.
 
*The 3.4.x are previous releases.
 
*The 3.2.x are very old releases.
 
  
=Standalone ports=
+
Users are encouraged to use the latest version unless a specific feature or requirement warrants using an older version of the software. Version specific instructions and installation notes are provided below.
  
==Octave-3.6.0-mingw + octaveforge pkgs==
+
:'''Note:''' As of version 4.4.1, '''Octave no longer supports Windows XP'''. There may be some workarounds to get Octave installed and running in command line mode (see Bug {{bug|54662}}), but maintainers cannot provide support and troubleshooting for this beyond what has already been documented.
  
===Files for manual installation===
+
=Installers for Microsoft Windows=
  
#Octave-3.6.0-mingw binaries tree
+
The easiest way to install GNU Octave on Microsoft Windows is by using [http://hg.octave.org/mxe-octave/ MXE] builds. For the current release, both 32-bit and 64-bit installers and zip archived packages (.zip and .7z formats) can be found at https://www.gnu.org/software/octave/download.html under the Windows tab.  
#* Octave3.6.0_gcc4.6.2_20120129.7z - MD5:53E4823B0DC5F2923C4CBCB8B60FC1B6
 
#: This is a 7z archive which includes a directory tree of all the binaries and libraries required for a complete octave installation (excluding octaveforge packages)
 
#:
 
#: It can be downloaded from [http://sourceforge.net/projects/octave/files/Octave%20Windows%20binaries/Octave%203.6.0%20for%20Windows%20MinGW%20installer/Octave3.6.0_gcc4.6.2_20120129.7z/download octave forge]
 
#:
 
#* The archive include:
 
#:* octave-3.6.0 including PDF documentation (built by Tatsuro Matsuka http://www.tatsuromatsuoka.com/octave/Eng/Win/)
 
#:* mingw32 + msys tool chain
 
#:* gnuplot-4.4.4
 
#:* fig2dev-3.2.5c
 
#:* ghostscript-9.0.4
 
#:* pstoedit-3.60
 
#:
 
#*'''Maintainer:''' Nitzan Arazi
 
#*'''Latest update:''' 2012-01-29
 
#Octaveforge pkgs, built for Octave-3.6.0-mingw
 
#* Octave3.6.0_gcc4.6.2_pkgs_20120128.7z - MD5:93CC6207EED411BCE747193D3A8B6625
 
#:
 
#: It can be downloaded from [http://sourceforge.net/projects/octave/files/Octave%20Windows%20binaries/Octave%203.6.0%20for%20Windows%20MinGW%20installer/Octave3.6.0_gcc4.6.2_pkgs_20120128.7z/download octave forge]
 
#:
 
#: This is a 7z archive which includes additional binaries and libraries for a set of octaveforge packages.
 
#:
 
#* The included packages are:
 
#:* actuarial-1.1.0
 
#:* ad-1.0.6_patched
 
#:* audio-1.1.4
 
#:* benchmark-1.1.1
 
#:* bim-1.0.2
 
#:* bioinfo-0.1.2
 
#:* civil-engineering-1.0.7
 
#:* combinatorics-1.0.9
 
#:* communications-1.1.0_svn20120127_patched
 
#:* control-2.2.4
 
#:* data-smoothing-1.2.3
 
#:* dataframe-0.8.2
 
#:* econometrics-1.0.8
 
#:* fenv-0.1.0
 
#:* financial-0.3.2
 
#:* fpl-1.2.0
 
#:* fuzzy-logic-toolkit-0.3.0
 
#:* ga-0.9.8
 
#:* general-1.2.2
 
#:* generate_html-0.1.3
 
#:* geometry-1.4.0
 
#:* gnuplot-1.0.1
 
#:* gpc-0.1.7
 
#:* gsl-1.0.8
 
#:* ident-1.0.7
 
#:* image-1.0.15
 
#:* informationtheory-0.1.8
 
#:* integration-1.0.7_svn20120128
 
#:* io-1.0.16
 
#:* irsa-1.0.7
 
#:* java-1.2.8_patched
 
#:* linear-algebra-2.1.0_svn20120127
 
#:* mapping-1.0.7
 
#:* mechanics-1.2.0
 
#:* miscellaneous-1.0.11_svn20120127
 
#:* missing-functions-1.0.2
 
#:* msh-1.0.2
 
#:* multicore-0.2.15
 
#:* nlwing2-1.2.0
 
#:* nnet-0.1.13
 
#:* nurbs-1.3.5
 
#:* ocs-0.1.3_svn20120128_patched
 
#:* octclip-1.0.0
 
#:* octgpr-1.2.0
 
#:* odebvp-1.0.6
 
#:* odepkg-0.8.0_svn20120127
 
#:* optim-1.0.17_patched
 
#:* optiminterp-0.3.4_svn20120128_patched
 
#:* outliers-0.13.9
 
#:* physicalconstants-0.1.7
 
#:* plot-1.1.0
 
#:* quaternion-1.0.0
 
#:* secs1d-0.0.8
 
#:* secs2d-0.0.8
 
#:* secs3d-0.0.1
 
#:* signal-1.1.2
 
#:* simp-1.1.0
 
#:* sockets-1.0.7_svn20120128_patched
 
#:* specfun-1.1.0
 
#:* special-matrix-1.0.7
 
#:* spline-gcvspl-1.0.8
 
#:* splines-1.0.7
 
#:* statistics-1.1.0_svn20120128
 
#:* strings-1.0.7
 
#:* struct-1.0.9
 
#:* symband-1.0.10
 
#:* symbolic-1.1.0
 
#:* tcl-octave-0.1.8
 
#:* time-1.0.9
 
#:* tsa-4.1.1
 
#:* video-1.0.2_patched
 
#:* vrml-1.0.12_svn20111014_patched
 
#:* windows-1.1.0
 
#:* xraylib-1.0.8
 
#:* zenity-0.5.7
 
#:
 
#*'''Maintainer:''' Nitzan Arazi
 
#*'''Latest update:''' 2012-01-28
 
  
===Manual installation instructions===
+
* For executable (.exe) installers: the user can simply run the downloaded file and follow the on-screen installation prompts. It is recommended that the installation path does not include spaces or non-ASCII charactersShortcuts to the program will be created automatically.
#Create an installation directory of which doesn't have space chars (i.e. C:\Octave\Octave3.6.0_gcc4.6.2\). This directory is referred hereafter as <your_install_dir>.
 
#Extract the complete directories tree from Octave3.6.0_gcc4.6.2_20120129.7z to the installation directory  keeping the original directory structure as in the archive (you can use 7-zip tool from http://www.7-zip.org/).
 
#Copy octave3.6.0_gcc4.6.2.lnk to any convenient location and edit its properties respectively to point to <your_install_dir>\bin\octave.exe and <your_install_dir>\share\octave\3.6.0\imagelib\octave-logo.ico as an icon
 
#Copy octave3.6.0_gcc4.6.2_docs.lnk to any convenient location and edit its properties respectively to point to <your_install_dir>\doc\octave and <your_install_dir>\share\octave\3.6.0\imagelib\octave-logo.ico as an icon.
 
#:At this point you can:
 
#: a. Launch and use octave by double-clicking the copied octave3.6.0_gcc4.6.2.lnk
 
#: b. Access and browse the documentation files by double-clicking the copied octave3.6.0_gcc4.6.2_docs.lnk
 
===Manual installation instructions for the Octave-forge packages===
 
#Extract the complete directories tree from Octave3.6.0_gcc4.6.2_pkgs_20120128.7z to the installation directory (<your_install_dir>) keeping the original directory structure as in the archive (you can use 7zip tool from http://www.7-zip.org/).
 
#In order to update octave_packages database with your installation tree and auto-load most packages (excluding 'ad' and 'windows' which may crash octave when loaded and 'clear all' is executed), launch Octave and execute the following 3 rebuild commands from the octave console:
 
    pkg rebuild -auto
 
    pkg rebuild -noauto ad windows
 
    pkg rebuild -auto java
 
#: Last pkg rebuild command is required in order for the java pkg entry to be moved to the top of <your_install_dir>\share\octave\octave_packages db file - thus java pkg is loaded before io pkg is loaded, and io pkg related jars are added to java class path.
 
#You can optionally adjust your installed packages status per your specific needs and usage by executing  the following commands:
 
: a. To interactively load or unload a package
 
pkg load <pkg_name>
 
: or
 
pkg unload <pkg_name>
 
: b. To disable auto-load for specific pkg <pkg_name>
 
pkg rebuild -noauto <pkg_name>
 
: c. To enable auto-load for specific pkg <pkg_name>
 
pkg rebuild -auto <pkg_name>
 
: d. To completely uninstall a package
 
  pkg uninstall <pkg_name>
 
===Optional installation of Notepad++ as an editor (recommended)===
 
#Download recent Notepad++ installation package from http://notepad-plus-plus.org/ and install it on your system.
 
#Edit <your_install_dir>\share\octave\site\m\startup\octaverc and un-comment the line which sets octave default editor:
 
EDITOR('C:\Program Files\Notepad++\notepad++.exe');
 
: Note: You may adjust the above line for the location of notepad++.exe as installed on your system.
 
  
===Troubleshooting===
+
* For the 7z/zip archives:
Upon launching, some warnings may be displayed. These warnings can be ignored.
+
# Extract the file content to a directory on the harddrive (such as {{Path|C:\Octave}}). Spaces or non-ASCII characters in the path are discouraged and may cause program errors.
*Following warnings are about missing external tools which may reduce some of the functions of some packages. These external tools are not provided by the 7z archives in sourceforge.  
+
# Manually create a shortcut to the {{Path|octave.vbs}} file in the main installation directory. (Right-click on the file, select 'Create Shortcut', and move the new shortcut to your desired location.)
warning: gmsh does not seem to be present some functionalities will be disabled
+
# If a command-line only instance of Octave is desired, the user can create another shortcut as stated above, right-click on the shortcut, select Properties, and add <code>--no-gui</code> to the end of the Target field.
warning: dx does not seem to be present some functionalities will be disabled
+
# IMPORTANT: Run the {{Path|post-install.bat}} file before running Octave the first time to reduce plot delays due to the Windows font cache and make the pre-installed packages visible to the system.
*Following warning is about fstat function of the statistics package that overloads the old (to be deprecated) fstat function of octave-3.6.0
 
warning: function C:\Octave\3.6.0_gcc-4.6.2\share\octave\packages\statistics-1.1.0\fstat.m shadows a core library function
 
  
==Octave-3.4.3-mingw + octaveforge pkgs==
+
* note: users who have problems running .vbs files due to local security policy or software can instead make a shortcut to the {{Path|octave.bat}} file located in {{Path|\mingw32\bin}} or {{Path|\mingw64\bin}}, depending on the version of Octave installed.  
  
#Octave-3.4.3-mingw (without pkgs)
+
==Octave Packages==
#: Octave3.4.3_gcc4.5.2_20111025.7z - MD5:5AA004D933E000E762AE2AE95573ACBD - http://www.multiupload.com/KDQ1N463UW
+
Like many software programs, Octave uses ''packages'' to optionally extend and modify its capability. These packages can be installed and loaded using the built in package management program 'pkg'. (Note that Octave does not automatically load installed packages, they must be manually loaded from within Octave by the user.)  
#Octaveforge pkgs, built for Octave-3.4.3-mingw
 
#: Octave3.4.3_gcc4.5.2_pkgs_20111026.7z - MD5:2987F6078B4AD161F2D23634D5109D61 - http://www.multiupload.com/7U6J23CSZ6
 
:
 
:The above  archive files are now able to be downloaded from
 
:https://sourceforge.net/projects/octave/files/Octave_Windows%20-%20MinGW/Octave%203.4.3%20for%20Windows%20MinGW%20Installer/
 
*'''Maintainer:''' Nitzan Arazi
 
*'''Latest update:''' 2011-10-26
 
*Packages are archived by 7zip. 7zip software can be download from http://www.7-zip.org/
 
*Octave Binaries are built using Tatsuro Matsuka OctaveLibs.zip and gplibs.zip (http://www.tatsuromatsuoka.com/octave/Eng/Win/)
 
  
===Troubleshooting===
+
Octave maintains a system-wide (or ''global'') package list, and a user-specific (or ''local'') package list. By default in Windows 10, local packages are located at {{Path|C:\Users\%USERNAME%\octave\}}. (The \octave folder will be created during the first package install\update if it is not already present.) The global packages are stored in {{Path|%OCTAVE_HOME%\mingw64\share\octave\packages\}}, and are available to all users on the machine. Specific locations on your system can be found by typing the following commands at the Octave command line:
Upon launching, some warnings may be displayed. The following warnings can be ignored:
 
*Following warning is about interpretation of logical operators (on scalars) in octave which is slightly different than matlab's interpretation.
 
warning: C:\Octave\3.4.3_gcc-4.5.2\share\octave\packages\integration-1.0.7\PKG_ADD: possible Matlab-style short-circuit operator
 
at line 9, column 32
 
*Following messages are from java package about loading of java classes that have been found and how to manually run a statement which will display its capabilities.
 
io PKG_ADD: java classes has been found and added in C:\Octave\3.4.3_gcc-4.5.2\bin
 
  io PKG_ADD: run chk_spreadsheet_support([],3) to view io support
 
*Following warnings are about missing external tools which may reduce some of the functions of some packages. These external tools are not provided by the 7z archives in sourceforge.
 
warning: gmsh does not seem to be present some functionalities will be disabled
 
warning: dx does not seem to be present some functionalities will be disabled
 
*Following warning is about fstat function of the statistics package that overloads the old (to be deprecated) fstat function of octave-3.4.3
 
warning: function C:\Octave\3.4.3_gcc-4.5.2\share\octave\packages\statistics-1.0.10\fstat.m shadows a core library function
 
  
==Octave-3.4.2-mingw + octaveforge pkgs==
+
    >> pkg local_list
#Octave-3.4.2-mingw (without pkgs)
+
    >> pkg global_list
#:Octave3.4.2_gcc4.5.2_20110914.7z - MD5:4AA0DD4C97F73B2E9E0F7370CD8AD719 - http://www.multiupload.com/TCUHKNNH9S
 
#Octaveforge pkgs, built for Octave-3.4.2-mingw
 
#:Octave3.4.2_gcc4.5.2_pkgs_20111014.7z - MD5:49097AF3C6FC6CDB58EE83F510A50993 - http://www.multiupload.com/DCWFZOUGZA
 
*'''Maintainer:''' Nitzan Arazi
 
*'''Latest update:''' 2011-10-14
 
*Packages are archived by the 7zip. The 7zip software can be download from http://www.7-zip.org/
 
*Octave Binaries are built by Tatsuro Matsuoka (http://www.tatsuromatsuoka.com/octave/Eng/Win/)
 
*Octave manual (<code>octave-3.4.2.pdf.zip, octave-3.4.2.html.zip</code>) can be downloaded from http://www.tatsuromatsuoka.com/octave/Eng/Win/
 
  
===Installation===
+
Octave versions for Windows prior to 6.1.0 defaulted to always making changes to global packages unless the user specified otherwise.  The default is now to follow the same behavior on all platforms, and for all package updates and installations to apply to local or global package locations according to whether or not the user is running with Administrative privileges (on Windows, this is usually accomplished by running as an Administrator privileged account, or starting Octave with the "Run as Administrator" option).  Alternatively, some pkg command options can force octave to try to use either the local or global packages.
  
The installation instructions are the same as for the 3.4.3 version, above.
+
===Pre-installed Packages===
  
===Notes===
+
A selection of pre-built, [[Octave Forge]] packages is included with all versions of the official Windows release. If you followed the installation directions above, you can display a list of packages by typing the command below at the Octave command prompt:
For details, please see http://old.nabble.com/Octave-3.4.2-mingw-%2B-octaveforge-pkgs-to32394771.html
 
  
Upon launching, some warnings may be displayed. The following warnings can be ignored:
+
  >> pkg list
*Following warning is about interpretation of logical operators (on scalars) in octave which is slightly different than matlab's interpretation.
 
warning: C:\Octave\Octave3.4.2_gcc4.5.2\share\octave\packages\integration-1.0.7\PKG_ADD: possible Matlab-style
 
short-circuit operator at line 9, column 32
 
*Following warnings are about missing external tools which may reduce some of the functions of some packages. These external tools are not provided by the 7z archives in sourceforge.
 
warning: gmsh does not seem to be present some functionalities will be disabled
 
warning: dx does not seem to be present some functionalities will be disabled
 
*Following warning is about fstat function of the statistics package that overloads the old (to be deprecated) fstat function of octave-3.4.3
 
warning: function C:\Octave\Octave3.4.2_gcc4.5.2\share\octave\packages\statistics-1.0.10\fstat.m shadows a core library
 
  
 +
The output for preinstalled global packages included with version 6.2.0 when installed into {{Path|C:\Octave}} is:
 +
                                                                                           
 +
    Package Name        | Version | Installation directory
 +
    ---------------------+---------+-----------------------
 +
                  audio  |  2.0.2 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\audio-2.0.2
 +
        communications  |  1.2.2 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\communications-1.2.2
 +
                control  |  3.2.0 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\control-3.2.0
 +
        data-smoothing  |  1.3.0 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\data-smoothing-1.3.0
 +
              database  |  2.4.4 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\database-2.4.4
 +
              dataframe  |  1.2.0 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\dataframe-1.2.0
 +
                  dicom  |  0.4.0 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\dicom-0.4.0
 +
              financial  |  0.5.3 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\financial-0.5.3
 +
                  fits  |  1.0.7 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\fits-1.0.7
 +
    fuzzy-logic-toolkit  |  0.4.6 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\fuzzy-logic-toolkit-0.4.6
 +
                    ga  |  0.10.2 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\ga-0.10.2
 +
                general  |  2.1.1 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\general-2.1.1
 +
          generate_html  |  0.3.2 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\generate_html-0.3.2
 +
              geometry  |  4.0.0 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\geometry-4.0.0
 +
                    gsl  |  2.1.1 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\gsl-2.1.1
 +
                  image  |  2.12.0 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\image-2.12.0
 +
    instrument-control  |  0.6.0 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\instrument-control-0.6.0
 +
              interval  |  3.2.0 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\interval-3.2.0
 +
                    io  |  2.6.3 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\io-2.6.3
 +
        linear-algebra  |  2.2.3 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\linear-algebra-2.2.3
 +
                  lssa  |  0.1.4 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\lssa-0.1.4
 +
                  ltfat  |  2.3.1 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\ltfat-2.3.1
 +
                mapping  |  1.4.1 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\mapping-1.4.1
 +
                matgeom  |  1.2.2 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\matgeom-1.2.2
 +
          miscellaneous  |  1.3.0 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\miscellaneous-1.3.0
 +
                    nan  |  3.5.2 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\\nan-3.5.3
 +
                netcdf  |  1.0.14 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\netcdf-1.0.14
 +
                  nurbs  |  1.3.13 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\nurbs-1.3.13
 +
                    ocs  |  0.1.5 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\ocs-0.1.5
 +
                  optim  |  1.6.1 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\optim-1.6.1
 +
            optiminterp  |  0.3.6 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\optiminterp-0.3.6
 +
            quaternion  |  2.4.0 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\quaternion-2.4.0
 +
              queueing  |  1.2.7 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\queueing-1.2.7
 +
                signal  |  1.4.1 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\signal-1.4.1
 +
                sockets  |  1.2.1 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\sockets-1.2.1
 +
              sparsersb  |  1.0.8 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\sparsersb-1.0.8
 +
                splines  |  1.3.3 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\splines-1.3.3
 +
            statistics  |  1.4.2 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\statistics-1.4.2
 +
                    stk  |  2.6.1 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\stk-2.6.1
 +
                strings  |  1.2.0 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\strings-1.2.0
 +
                struct  |  1.0.17 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\struct-1.0.17
 +
              symbolic  |  2.9.0 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\symbolic-2.9.0
 +
                tisean  |  0.2.3 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\tisean-0.2.3
 +
                    tsa  |  4.6.2 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\tsa-4.6.2
 +
                  video  |  2.0.0 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\video-2.0.0
 +
                windows  |  1.6.0 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\windows-1.6.0
 +
                zeromq  |  1.5.2 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\zeromq-1.5.2
  
==Octave 3.2.4 for Windows MinGW32==
+
Note that the included packages shown above are stored in the default ''global package location'' within the Octave installation folder.
  
*'''Download:''' [http://sourceforge.net/projects/octave/files/Octave%20Windows%20binaries/Octave%203.2.4%20for%20Windows%20MinGW32%20Installer/Octave-3.2.4_i686-pc-mingw32_gcc-4.4.0_setup.exe/download Octave-3.2.4_i686-pc-mingw32_gcc-4.4.0_setup.exe]
+
If Octave was installed from a zip or 7z archive and you did not run the {{Path|post-install.bat}} file, you may not see any packages listed. In that case you need to run:
*'''Maintainer:''' Benjamin Lindner
+
 
*'''Latest release:''' 2010-03-25
+
  >> pkg rebuild
  
===Includes===
+
That will force octave to look for both ''local'' and ''global'' packages in the set locations to repopulate the list of available packages.  Note that  'local' packages always take precedence if the same package is present in both locations.
  
*GNU Octave, version 3.2.4 (i686-pc-mingw32)
+
'''Note''': The Windows bundle includes a minimal version of Python for the symbolic package. That version of Python is not intended to be used for anything else. If you like to use Python for something different in Octave (e.g., for the pythonic package), install a full Python distribution and set the necessary environment variables (PYTHON, ...?).
*atlas 3.8.2
 
*mingw32 (GCC 4.4.0 on http://www.mingw.org )
 
*gnuplot Version 4.4.0 specially prepared for octave
 
*mini-MSYS 1.0.11
 
*notepad++ 5.6.7 as text editor
 
*Some components of octave-forge packages
 
**actuarial-1.1.0 (New!)
 
**audio-1.1.4
 
**benchmark-1.1.1
 
**bim-1.0.0 (New!)  
 
**bioinfo-0.1.2
 
**combinatorics-1.0.9
 
**communications-1.0.10
 
**control-1.0.11
 
**data-smoothing-1.2.0
 
**econometrics-1.0.8
 
**fenv-0.1.0 (New!)
 
**financial-0.3.2
 
**fixed-0.7.10
 
**fpl-1.0.0 (New!)
 
**ga-0.9.7
 
**general-1.2.0 (updated)
 
**generate_html-0.1.2 (New!)
 
**gnuplot-1.0.1 (New!)
 
**gpc-0.1.7
 
**gsl-1.0.8
 
**ident-1.0.7
 
**image-1.0.10
 
**informationtheory-0.1.8
 
**integration-1.0.7
 
**io-1.0.11 (updated)
 
**irsa-1.0.7
 
**java-1.2.7 (New!)
 
**jhandles-0.3.5 (New!)
 
**linear-algebra-1.0.8
 
**mapping-1.0.7
 
**miscellaneous-1.0.9
 
**missing-functions-1.0.2
 
**msh-1.0.0 (New!)
 
**nlwing2-1.1.1 (New!)
 
**nnet-0.1.10
 
**nurbs-1.0.3 (New!)
 
**ocs-0.0.4 (New!)
 
**oct2mat-1.0.7 (New!)
 
**octcdf-1.0.17 (updated 1.0.17+)
 
**octgpr-1.1.5 (New!)
 
**odebvp-1.0.6
 
**odepkg-0.6.10 (updated)
 
**optim-1.0.12 (updated)
 
**optiminterp-0.3.2
 
**outliers-0.13.9
 
**physicalconstants-0.1.7
 
**plot-1.0.7
 
**quaternion-1.0.0
 
**signal-1.0.10
 
**simp-1.1.0 (New!)
 
**sockets-1.0.5
 
**specfun-1.0.8
 
**special-matrix-1.0.7
 
**spline-gcvspl-1.0.8 (New!)  
 
**splines-1.0.7
 
**statistics-1.0.9
 
**strings-1.0.7
 
**struct-1.0.7
 
**symband-1.0.10 (New!)
 
**symbolic-1.0.9
 
**time-1.0.9
 
**video-1.0.2 (New!)
 
**windows-1.0.8(updated to 1.0.8+)
 
**zenity-0.5.7
 
  
===Notes===
+
===Package Installation and Update===
*Although there are some remaining known issues, some bugs reported to the octave-3.2.3 have been corrected. In addition, useful octave-forge packages are added (Java, Jhandles, ....). Please see [http://sourceforge.net/projects/octave/files/Octave%20Windows%20binaries/Octave%203.2.4%20for%20Windows%20MinGW32%20Installer/RELEASE_NOTES-3.2.4.txt/download RELEASE_NOTES.txt] for details: 
 
*Default Octave install folder changed to e.g. <code>C:\Octave\3.2.4_gcc-4.4.0\</code>.
 
*:If you have installed octave in a folder where the path name has whitespace, for example, <code>C:\Program Files\</code>, 'pkg install (package name)' command '''will fail''': See http://sourceforge.net/mailarchive/message.php?msg_name=4A1AF9EF.1000005@hotmail.com for details
 
  
'''Additional important topics found after the release:'''
+
All packages can be updated to the latest version by running:
*It is reported that the oct2mat octave-forge package affects plot related commands. The purpose of the package is to convert m-file into matlab-compatible coding style. Please see the documentation of the octave-forge (oct2mat - freetb4matlab) from http://octave.sourceforge.net/functions_by_package.php)
+
 
**Report for this problem: http://old.nabble.com/Re:-Octave-3.2.4-mingw32-available-p28053703.html
+
  >> pkg update
**Explanation of the problem: http://old.nabble.com/Re:-Octave-3.2.4-mingw32-available-p28090303.html
 
**Realistic solution at this moment, do not install the oct2mat package when you install octave with octave-forge packages if you do not use this package. Another solution is to execute
 
      pkg rebuild -noauto oct2mat
 
::at the octave prompt and then restart octave. The operation results in the oct2mat package not to be auto-loaded in startup. When you want to use oct2mat, execute
 
      pkg load oct2mat
 
*The plot octave-forge package still have ginput code although the ginput function is now merge into octave itself. Therefore conflict occur if the plot package is installed. To avoid this problem, rename 'ginput.m' in the folder <code>..\Octave\3.2.4_gcc-4.4.0\share\octave\packages\plot-1.0.7</code>, for example ginput.ob.m. In some computers which has one core CPU, response of ginput is very slow. In the case, modify '__gnuplot_ginput__.m' according to the following thread. http://old.nabble.com/ginput-on-Octave-3.2.4-mingw32-to28093888.html
 
*From gnuplot-4.4.0, the default terminal of gnuplot for windows is the wxt terminal. Some users may set the GNUTERM environmental variable for the windows terminal being default. The gnuplot for windows allows to set GNUTERM to 'win' (abbreviated form) but octave does not recognize the abbreviated form for terminal name. If one would like set GNUTERM to windows terminal, one should specify it as 'windows' (full form) but not 'win' (abbreviated form). In detail see the following thread: http://old.nabble.com/flicking-problem-again-Octave-3.2.4-mingw32-td28038688.html
 
  
=Octave on Cygwin=
+
Other packages can be installed by running:
== Octave 3.6.1 on cygwin==
+
 
 +
  >> pkg install -forge <package_name>
 +
 
 +
To install a new or updated package version manually, the package file can be downloaded from the [https://octave.sourceforge.io/packages.php Octave Forge website] to the working directory and can be installed using:
 +
 
 +
  >> pkg install package_file_name.tar.gz
 +
 
 +
Note that all of the commands above will perform ''local'' or ''global'' package installs according to the user's Administrator access level.  E.g., if an update is found for a global package with a non-elevated user account, the updated version will be installed to the ''local'' package location, leaving the old version intact in the ''global'' package location.  This behavior can be changed by calling the install command with the {{Path|-global}} option. For example:
 +
 
 +
To install a global package to the latest version (requires write-access to the global-list location) you can use:
 +
 
 +
  >> pkg install -forge -global <package_name>
 +
 
 +
Note also that the update command does not take -local or -global options, and always performs an update according to the user's Administrator access level. As such if Octave was installed from a zip or 7z archive in a non-privileged account, 'pkg update' cannot be used to update global packages, they must be updated manually using 'pkg install'
 +
 
 +
Detailed instructions for installing individual Octave Forge packages are given at https://octave.sourceforge.io/packages.php.
 +
 
 +
==Calling Octave executables==
 +
 
 +
Some environment variables have to be set to correctly run Octave executables.  So, a user should not call any of the executables directly unless the necessary environment variables have been set up manually.
 +
 
 +
Instead, the {{Path|octave.vbs}} script in Octave's root installation folder or the {{Path|octave.bat}} script in the bin directory should be used.  Both scripts support starting the GUI (command line argument {{Path|--gui}}) or running Octave in CLI mode (command line argument {{Path|--no-gui}}).  The .vbs script opens the GUI by default.  The .bat script starts Octave in CLI mode by default.
 +
 
 +
The .vbs script returns immediately when Octave has started.  The .bat script returns when Octave finishes execution.
 +
 
 +
Alternatively, Octave can be started using the msys2 shell that can be started with {{Path|cmdshell.bat}} in Octave's root installation folder.
 +
 
 +
=GNU Octave on [https://cygwin.com/ cygwin]=
  
*'''Web-Site:''' http://cygwin.com
 
 
*'''Maintainer:''' Marco Atzeri  
 
*'''Maintainer:''' Marco Atzeri  
*'''Latest release:''' 2012-02-27
+
*'''Latest release:''' 2020-02-26
  
 
*Latest packages:
 
*Latest packages:
:octave-3.6.1-1
 
:octave-forge-20120224-1
 
  
*To install : run cygwin setup.exe and select them in the Math category .
+
:octave-5.2.0-1
 +
:Its announce on cygwin mailing list [https://cygwin.com/ml/cygwin-announce/2020-02/msg00028.html]
  
*On Cygwin 1.7.9-1 the communication between octave and gnuplot is broken due to a cygwin bug.  
+
:Octave Forge packages have each a cygwin package.
:Please use version cygwin 1.7.11-1 or later.
+
:Its announce on cygwin mailing list [https://cygwin.com/ml/cygwin-announce/2017-01/msg00078.html]
 +
: Full cygwin package list is available here [https://cygwin.com/packages/]
 +
: At 2017-04-06, 64 forge packages were available.  
  
===Notes===
+
*To install :  
*Not needed anymore, but just in case you want to try one cygwin snapshot.
+
: run cygwin setup-x86.exe (for cygwin 32 bit) or  setup-x86_64.exe (for cygwin 64 bit) and select them in the Math category.  
:HOWTO install a cygwin snapshot:
+
: All the package dependencies will be also installed.
:download <code>cygwin1-20120227.dll.bz2</code> (current last) from http://cygwin.com/snapshots/
 
    bunzip2 cygwin1-20120227.dll.bz2
 
    cp cygwin1-20120227.dll cygwin1.dll
 
    cp /bin/cygwin1.dll /bin/cygwin1.dll_backup
 
 
:exit all cygwin processes and from windows explorer
 
:copy the cygwin1.dll snapshot to
 
    c:\cygwin\bin
 
    (or in the equivalent directory of your cygwin installation).
 
  
*Graphics is based on X, so to plot you need to start octave within xterm (or similar).
+
:Graphics is based on X and to plot you will need to start octave within xterm (or similar).
 +
:  I recommend to install "xinit", "xlaunch" and "gnuplot". These packages will pull all the functional Xserver.
 +
:  Otherwise the only graphics will be ASCII art ;-)
  
*A new fltk graphics_toolkit is available, and the crash on "print" issue was solved starting from 3.4.2-3 using the patch proposed here: https://savannah.gnu.org/bugs/index.php?31641
+
==Notes for cygwin==
  
*If a dlls collision arise, the correct invocation of the rebase utility within dash shell is:
+
*When building from development source (default branch)
    rebaseall -s "dll|so|oct"
+
:    "make check"
:as octave dll's use unexpected ".oct" suffix for its own extension.
+
:passes almost all the tests. Only, and not substantial, failures are:
 
+
:<syntaxhighlight lang="bash">
*For general build notes, see <code>etc/README.Cygwin</code>.
+
/pub/hg/octave/src/data.cc : 8 failures due to different handling of complex Inf on sort
 +
/pub/hg/octave/src/syscalls.cc: 1 failure on fork. This disappears when octave is installed
 +
/pub/hg/octave/scripts/sparse/svds.m: 1 failure due to test sensitivity on starting point. See
 +
https://mailman.cae.wisc.edu/pipermail/octave-maintainers/2011-September/024715.html
 +
</syntaxhighlight>
  
*When building from development source (default branch)
+
* To build GNU Octave from cygwin source package, you need to install "cygport" and the relevant development libraries
    "make check"  
+
:<syntaxhighlight lang="bash">
:passes almost all the tests.
+
tar -xf octave-5.1.0-1-src.tar.xz
:Only, and not substantial, failures are:
+
cygport octave.cygport almostall
    /pub/hg/octave/src/data.cc : 8 failures due to different handling of complex Inf on sort
+
</syntaxhighlight>
    /pub/hg/octave/src/syscalls.cc: 1 failure on fork. This disappears when octave is installed
+
:see [https://cygwinports.github.io/cygport/ cygport documentation] for further info.
    /pub/hg/octave/scripts/sparse/svds.m: 1 failure due to test sensitivity on starting point. See
 
    https://mailman.cae.wisc.edu/pipermail/octave-maintainers/2011-September/024715.html
 
  
*To build from cygwin source package, you need to install "cygport" and the relevant development libraries
+
=General info=
    $ tar -xvjf octave-3.6.1-1-src.tar.bz2
 
    gl2ps-print.patch
 
    octave-3.6.1-1.cygport
 
    octave-3.6.1-1.cygwin.patch
 
    octave-3.6.1-1.src.patch
 
    octave-3.6.1.tar.bz2
 
  
    $ cygport octave-3.6.1-1.cygport almostall
+
Be advised that GNU Octave is primarily developed on GNU/Linux and other [https://en.wikipedia.org/wiki/POSIX POSIX] conform systems. The ports of GNU Octave to Microsoft Windows use different approaches to get most of the original Octave and adapt it to Microsoft Windows idiosyncrasies (e.g. dynamic libraries, file paths, permissions, environment variables, GUI system, etc). Bear this in mind and don't panic if you get unexpected results. There are a lot of suggestions on the mailing lists for tuning your Octave installation. GNU Octave standalone ports for Windows are independently compiled using either the [http://mingw.org MinGW] or Microsoft Visual Studio development environments (3.6 or before).
  
:see cygport documentation for further info.
+
=See also=
  
 +
* [[Octave for Microsoft Windows (outdated)]] for older instructions.
  
[[Category:Windows]]
+
[[Category:Installation]]
 +
[[Category:Building]]
 +
[[Category:Microsoft Windows]]

Latest revision as of 23:23, 27 May 2021

This article is about using pre-built installers of Octave for Windows; for instructions about building it, see Windows Installer.
Info icon.svg
Windows installers are available for the latest version of Octave (6.2.0, released on February 19, 2021) from https://ftp.gnu.org/gnu/octave/windows/.

Users are encouraged to use the latest version unless a specific feature or requirement warrants using an older version of the software. Version specific instructions and installation notes are provided below.

Note: As of version 4.4.1, Octave no longer supports Windows XP. There may be some workarounds to get Octave installed and running in command line mode (see Bug #54662), but maintainers cannot provide support and troubleshooting for this beyond what has already been documented.

Installers for Microsoft Windows[edit]

The easiest way to install GNU Octave on Microsoft Windows is by using MXE builds. For the current release, both 32-bit and 64-bit installers and zip archived packages (.zip and .7z formats) can be found at https://www.gnu.org/software/octave/download.html under the Windows tab.

  • For executable (.exe) installers: the user can simply run the downloaded file and follow the on-screen installation prompts. It is recommended that the installation path does not include spaces or non-ASCII characters. Shortcuts to the program will be created automatically.
  • For the 7z/zip archives:
  1. Extract the file content to a directory on the harddrive (such as C:\Octave). Spaces or non-ASCII characters in the path are discouraged and may cause program errors.
  2. Manually create a shortcut to the octave.vbs file in the main installation directory. (Right-click on the file, select 'Create Shortcut', and move the new shortcut to your desired location.)
  3. If a command-line only instance of Octave is desired, the user can create another shortcut as stated above, right-click on the shortcut, select Properties, and add --no-gui to the end of the Target field.
  4. IMPORTANT: Run the post-install.bat file before running Octave the first time to reduce plot delays due to the Windows font cache and make the pre-installed packages visible to the system.
  • note: users who have problems running .vbs files due to local security policy or software can instead make a shortcut to the octave.bat file located in \mingw32\bin or \mingw64\bin, depending on the version of Octave installed.

Octave Packages[edit]

Like many software programs, Octave uses packages to optionally extend and modify its capability. These packages can be installed and loaded using the built in package management program 'pkg'. (Note that Octave does not automatically load installed packages, they must be manually loaded from within Octave by the user.)

Octave maintains a system-wide (or global) package list, and a user-specific (or local) package list. By default in Windows 10, local packages are located at C:\Users\%USERNAME%\octave\. (The \octave folder will be created during the first package install\update if it is not already present.) The global packages are stored in %OCTAVE_HOME%\mingw64\share\octave\packages\, and are available to all users on the machine. Specific locations on your system can be found by typing the following commands at the Octave command line:

   >> pkg local_list
   >> pkg global_list

Octave versions for Windows prior to 6.1.0 defaulted to always making changes to global packages unless the user specified otherwise. The default is now to follow the same behavior on all platforms, and for all package updates and installations to apply to local or global package locations according to whether or not the user is running with Administrative privileges (on Windows, this is usually accomplished by running as an Administrator privileged account, or starting Octave with the "Run as Administrator" option). Alternatively, some pkg command options can force octave to try to use either the local or global packages.

Pre-installed Packages[edit]

A selection of pre-built, Octave Forge packages is included with all versions of the official Windows release. If you followed the installation directions above, you can display a list of packages by typing the command below at the Octave command prompt:

  >> pkg list

The output for preinstalled global packages included with version 6.2.0 when installed into C:\Octave is:

   Package Name         | Version | Installation directory
   ---------------------+---------+-----------------------
                 audio  |   2.0.2 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\audio-2.0.2
        communications  |   1.2.2 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\communications-1.2.2
               control  |   3.2.0 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\control-3.2.0
        data-smoothing  |   1.3.0 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\data-smoothing-1.3.0
              database  |   2.4.4 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\database-2.4.4
             dataframe  |   1.2.0 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\dataframe-1.2.0
                 dicom  |   0.4.0 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\dicom-0.4.0
             financial  |   0.5.3 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\financial-0.5.3
                  fits  |   1.0.7 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\fits-1.0.7
   fuzzy-logic-toolkit  |   0.4.6 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\fuzzy-logic-toolkit-0.4.6
                    ga  |  0.10.2 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\ga-0.10.2
               general  |   2.1.1 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\general-2.1.1
         generate_html  |   0.3.2 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\generate_html-0.3.2
              geometry  |   4.0.0 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\geometry-4.0.0
                   gsl  |   2.1.1 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\gsl-2.1.1
                 image  |  2.12.0 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\image-2.12.0
    instrument-control  |   0.6.0 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\instrument-control-0.6.0
              interval  |   3.2.0 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\interval-3.2.0
                    io  |   2.6.3 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\io-2.6.3
        linear-algebra  |   2.2.3 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\linear-algebra-2.2.3
                  lssa  |   0.1.4 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\lssa-0.1.4
                 ltfat  |   2.3.1 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\ltfat-2.3.1
               mapping  |   1.4.1 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\mapping-1.4.1
               matgeom  |   1.2.2 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\matgeom-1.2.2
         miscellaneous  |   1.3.0 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\miscellaneous-1.3.0
                   nan  |   3.5.2 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\\nan-3.5.3
                netcdf  |  1.0.14 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\netcdf-1.0.14
                 nurbs  |  1.3.13 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\nurbs-1.3.13
                   ocs  |   0.1.5 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\ocs-0.1.5
                 optim  |   1.6.1 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\optim-1.6.1
           optiminterp  |   0.3.6 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\optiminterp-0.3.6
            quaternion  |   2.4.0 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\quaternion-2.4.0
              queueing  |   1.2.7 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\queueing-1.2.7
                signal  |   1.4.1 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\signal-1.4.1
               sockets  |   1.2.1 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\sockets-1.2.1
             sparsersb  |   1.0.8 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\sparsersb-1.0.8
               splines  |   1.3.3 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\splines-1.3.3
            statistics  |   1.4.2 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\statistics-1.4.2
                   stk  |   2.6.1 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\stk-2.6.1
               strings  |   1.2.0 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\strings-1.2.0
                struct  |  1.0.17 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\struct-1.0.17
              symbolic  |   2.9.0 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\symbolic-2.9.0
                tisean  |   0.2.3 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\tisean-0.2.3
                   tsa  |   4.6.2 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\tsa-4.6.2
                 video  |   2.0.0 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\video-2.0.0
               windows  |   1.6.0 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\windows-1.6.0
                zeromq  |   1.5.2 | C:\Octave\octave-6.2.0-w64\mingw64\share\octave\packages\zeromq-1.5.2

Note that the included packages shown above are stored in the default global package location within the Octave installation folder.

If Octave was installed from a zip or 7z archive and you did not run the post-install.bat file, you may not see any packages listed. In that case you need to run:

  >> pkg rebuild

That will force octave to look for both local and global packages in the set locations to repopulate the list of available packages. Note that 'local' packages always take precedence if the same package is present in both locations.

Note: The Windows bundle includes a minimal version of Python for the symbolic package. That version of Python is not intended to be used for anything else. If you like to use Python for something different in Octave (e.g., for the pythonic package), install a full Python distribution and set the necessary environment variables (PYTHON, ...?).

Package Installation and Update[edit]

All packages can be updated to the latest version by running:

  >> pkg update

Other packages can be installed by running:

  >> pkg install -forge <package_name>

To install a new or updated package version manually, the package file can be downloaded from the Octave Forge website to the working directory and can be installed using:

  >> pkg install package_file_name.tar.gz

Note that all of the commands above will perform local or global package installs according to the user's Administrator access level. E.g., if an update is found for a global package with a non-elevated user account, the updated version will be installed to the local package location, leaving the old version intact in the global package location. This behavior can be changed by calling the install command with the -global option. For example:

To install a global package to the latest version (requires write-access to the global-list location) you can use:

  >> pkg install -forge -global <package_name>

Note also that the update command does not take -local or -global options, and always performs an update according to the user's Administrator access level. As such if Octave was installed from a zip or 7z archive in a non-privileged account, 'pkg update' cannot be used to update global packages, they must be updated manually using 'pkg install'

Detailed instructions for installing individual Octave Forge packages are given at https://octave.sourceforge.io/packages.php.

Calling Octave executables[edit]

Some environment variables have to be set to correctly run Octave executables. So, a user should not call any of the executables directly unless the necessary environment variables have been set up manually.

Instead, the octave.vbs script in Octave's root installation folder or the octave.bat script in the bin directory should be used. Both scripts support starting the GUI (command line argument --gui) or running Octave in CLI mode (command line argument --no-gui). The .vbs script opens the GUI by default. The .bat script starts Octave in CLI mode by default.

The .vbs script returns immediately when Octave has started. The .bat script returns when Octave finishes execution.

Alternatively, Octave can be started using the msys2 shell that can be started with cmdshell.bat in Octave's root installation folder.

GNU Octave on cygwin[edit]

  • Maintainer: Marco Atzeri
  • Latest release: 2020-02-26
  • Latest packages:
octave-5.2.0-1
Its announce on cygwin mailing list [1]
Octave Forge packages have each a cygwin package.
Its announce on cygwin mailing list [2]
Full cygwin package list is available here [3]
At 2017-04-06, 64 forge packages were available.
  • To install :
run cygwin setup-x86.exe (for cygwin 32 bit) or setup-x86_64.exe (for cygwin 64 bit) and select them in the Math category.
All the package dependencies will be also installed.
Graphics is based on X and to plot you will need to start octave within xterm (or similar).
I recommend to install "xinit", "xlaunch" and "gnuplot". These packages will pull all the functional Xserver.
Otherwise the only graphics will be ASCII art ;-)

Notes for cygwin[edit]

  • When building from development source (default branch)
"make check"
passes almost all the tests. Only, and not substantial, failures are:
/pub/hg/octave/src/data.cc : 8 failures due to different handling of complex Inf on sort
/pub/hg/octave/src/syscalls.cc: 1 failure on fork. This disappears when octave is installed
/pub/hg/octave/scripts/sparse/svds.m: 1 failure due to test sensitivity on starting point. See 
https://mailman.cae.wisc.edu/pipermail/octave-maintainers/2011-September/024715.html
  • To build GNU Octave from cygwin source package, you need to install "cygport" and the relevant development libraries
tar -xf octave-5.1.0-1-src.tar.xz 
cygport octave.cygport almostall
see cygport documentation for further info.

General info[edit]

Be advised that GNU Octave is primarily developed on GNU/Linux and other POSIX conform systems. The ports of GNU Octave to Microsoft Windows use different approaches to get most of the original Octave and adapt it to Microsoft Windows idiosyncrasies (e.g. dynamic libraries, file paths, permissions, environment variables, GUI system, etc). Bear this in mind and don't panic if you get unexpected results. There are a lot of suggestions on the mailing lists for tuning your Octave installation. GNU Octave standalone ports for Windows are independently compiled using either the MinGW or Microsoft Visual Studio development environments (3.6 or before).

See also[edit]