Octave for Microsoft Windows: Difference between revisions

Jump to navigation Jump to search
→‎Pre-installed Packages: update pkg list for 6.3.0
m (Less indention.)
(→‎Pre-installed Packages: update pkg list for 6.3.0)
(22 intermediate revisions by 6 users not shown)
Line 9: Line 9:
=Installers for Microsoft Windows=
=Installers for Microsoft Windows=


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://ftp.gnu.org/gnu/octave/windows/.  
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.  


* For executable 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 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:  
* For the 7z/zip archives:  
# 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.
# 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.
# 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.)  
# 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.)  
# If a command-line only instance of Octave is desired, the user can create a shortcut as stated above, right-click on the shortcut, select Properties, and add ''--no-gui'' to the end of the Target field.
# 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.
# 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.
# 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.


==Packages==
* 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.


A selection of pre-built, [[Octave Forge]] packages are included with for all versions of the official Windows release.  If you following the installation directions above you can confirm the package list by typing the command below at the Octave command prompt:
==Octave Packages==
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 {{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:
 
    >> 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===
 
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
   >> pkg list


A typical output (for version {{Release}}) is:
The output for preinstalled global packages included with version 6.3.0 when installed into {{Path|C:\Octave}} is:
                                                                                           
 
Package Name        | Version | Installation directory
    Package Name        | Version | Installation directory
--------------------+---------+-----------------------
    ---------------------+---------+-----------------------
    communications 1.2.1 | C:\Octave\OCTAVE~1.0-W\mingw64\share\octave\packages\communications-1.2.1
                  audio 2.0.2 | C:\Octave\octave-6.3.0-w64\mingw64\share\octave\packages\audio-2.0.2
            control 3.1.0 | C:\Octave\OCTAVE~1.0-W\mingw64\share\octave\packages\control-3.1.0
        communications 1.2.3 | C:\Octave\octave-6.3.0-w64\mingw64\share\octave\packages\communications-1.2.3
    data-smoothing 1.3.0 | C:\Octave\OCTAVE~1.0-W\mingw64\share\octave\packages\data-smoothing-1.3.0
                control 3.3.1 | C:\Octave\octave-6.3.0-w64\mingw64\share\octave\packages\control-3.3.1
          database 2.4.3 | C:\Octave\OCTAVE~1.0-W\mingw64\share\octave\packages\database-2.4.3
        data-smoothing 1.3.0 | C:\Octave\octave-6.3.0-w64\mingw64\share\octave\packages\data-smoothing-1.3.0
          dataframe 1.2.0 | C:\Octave\OCTAVE~1.0-W\mingw64\share\octave\packages\dataframe-1.2.0
              database 2.4.4 | C:\Octave\octave-6.3.0-w64\mingw64\share\octave\packages\database-2.4.4
               dicom 0.2.1 | C:\Octave\OCTAVE~1.0-W\mingw64\share\octave\packages\dicom-0.2.1
               dataframe 1.2.0 | C:\Octave\octave-6.3.0-w64\mingw64\share\octave\packages\dataframe-1.2.0
          financial |  0.5.3 | C:\Octave\OCTAVE~1.0-W\mingw64\share\octave\packages\financial-0.5.3
                  dicom |  0.4.0 | C:\Octave\octave-6.3.0-w64\mingw64\share\octave\packages\dicom-0.4.0
              fits 1.0.7 | C:\Octave\OCTAVE~1.0-W\mingw64\share\octave\packages\fits-1.0.7
              financial 0.5.3 | C:\Octave\octave-6.3.0-w64\mingw64\share\octave\packages\financial-0.5.3
  fuzzy-logic-toolkit |  0.4.5 | C:\Octave\OCTAVE~1.0-W\mingw64\share\octave\packages\fuzzy-logic-toolkit-0.4.5
                  fits 1.0.7 | C:\Octave\octave-6.3.0-w64\mingw64\share\octave\packages\fits-1.0.7
                ga | 0.10.0 | C:\Octave\OCTAVE~1.0-W\mingw64\share\octave\packages\ga-0.10.0
    fuzzy-logic-toolkit  |   0.4.6 | C:\Octave\octave-6.3.0-w64\mingw64\share\octave\packages\fuzzy-logic-toolkit-0.4.6
            general |   2.1.0 | C:\Octave\OCTAVE~1.0-W\mingw64\share\octave\packages\general-2.1.0
                    ga | 0.10.2 | C:\Octave\octave-6.3.0-w64\mingw64\share\octave\packages\ga-0.10.2
      generate_html 0.3.1 | C:\Octave\OCTAVE~1.0-W\mingw64\share\octave\packages\generate_html-0.3.1
                general 2.1.1 | C:\Octave\octave-6.3.0-w64\mingw64\share\octave\packages\general-2.1.1
          geometry |  3.0.0 | C:\Octave\OCTAVE~1.0-W\mingw64\share\octave\packages\geometry-3.0.0
          generate_html 0.3.2 | C:\Octave\octave-6.3.0-w64\mingw64\share\octave\packages\generate_html-0.3.2
                gsl 2.1.1 | C:\Octave\OCTAVE~1.0-W\mingw64\share\octave\packages\gsl-2.1.1
              geometry 4.0.0 | C:\Octave\octave-6.3.0-w64\mingw64\share\octave\packages\geometry-4.0.0
              image | 2.10.0 | C:\Octave\OCTAVE~1.0-W\mingw64\share\octave\packages\image-2.10.0
                    gsl |   2.1.1 | C:\Octave\octave-6.3.0-w64\mingw64\share\octave\packages\gsl-2.1.1
  instrument-control |  0.3.1 | C:\Octave\OCTAVE~1.0-W\mingw64\share\octave\packages\instrument-control-0.3.1
                  image | 2.12.0 | C:\Octave\octave-6.3.0-w64\mingw64\share\octave\packages\image-2.12.0
          interval 3.2.0 | C:\Octave\OCTAVE~1.0-W\mingw64\share\octave\packages\interval-3.2.0
    instrument-control 0.7.0 | C:\Octave\octave-6.3.0-w64\mingw64\share\octave\packages\instrument-control-0.7.0
                io | 2.4.12 | C:\Octave\OCTAVE~1.0-W\mingw64\share\octave\packages\io-2.4.12
              interval |   3.2.0 | C:\Octave\octave-6.3.0-w64\mingw64\share\octave\packages\interval-3.2.0
    linear-algebra |  2.2.2 | C:\Octave\OCTAVE~1.0-W\mingw64\share\octave\packages\linear-algebra-2.2.2
                    io |  2.6.3 | C:\Octave\octave-6.3.0-w64\mingw64\share\octave\packages\io-2.6.3
              lssa 0.1.3 | C:\Octave\OCTAVE~1.0-W\mingw64\share\octave\packages\lssa-0.1.3
        linear-algebra 2.2.3 | C:\Octave\octave-6.3.0-w64\mingw64\share\octave\packages\linear-algebra-2.2.3
              ltfat 2.3.1 | C:\Octave\OCTAVE~1.0-W\mingw64\share\octave\packages\ltfat-2.3.1
                  lssa 0.1.4 | C:\Octave\octave-6.3.0-w64\mingw64\share\octave\packages\lssa-0.1.4
            mapping 1.2.1 | C:\Octave\OCTAVE~1.0-W\mingw64\share\octave\packages\mapping-1.2.1
                  ltfat 2.3.1 | C:\Octave\octave-6.3.0-w64\mingw64\share\octave\packages\ltfat-2.3.1
      miscellaneous |  1.2.1 | C:\Octave\OCTAVE~1.0-W\mingw64\share\octave\packages\miscellaneous-1.2.1
                mapping |  1.4.1 | C:\Octave\octave-6.3.0-w64\mingw64\share\octave\packages\mapping-1.4.1
                 nan 3.1.4 | C:\Octave\OCTAVE~1.0-W\mingw64\share\octave\packages\nan-3.1.4
                 matgeom 1.2.3 | C:\Octave\octave-6.3.0-w64\mingw64\share\octave\packages\matgeom-1.2.3
            netcdf | 1.0.12 | C:\Octave\OCTAVE~1.0-W\mingw64\share\octave\packages\netcdf-1.0.12
          miscellaneous |   1.3.0 | C:\Octave\octave-6.3.0-w64\mingw64\share\octave\packages\miscellaneous-1.3.0
              nurbs | 1.3.13 | C:\Octave\OCTAVE~1.0-W\mingw64\share\octave\packages\nurbs-1.3.13
                    nan |   3.5.3 | C:\Octave\octave-6.3.0-w64\mingw64\share\octave\packages\nan-3.5.3
                ocs |   0.1.5 | C:\Octave\OCTAVE~1.0-W\mingw64\share\octave\packages\ocs-0.1.5
                netcdf | 1.0.14 | C:\Octave\octave-6.3.0-w64\mingw64\share\octave\packages\netcdf-1.0.14
            odepkg 0.8.5 | C:\Octave\OCTAVE~1.0-W\mingw64\share\octave\packages\odepkg-0.8.5
                  nurbs 1.4.3 | C:\Octave\octave-6.3.0-w64\mingw64\share\octave\packages\nurbs-1.4.3
              optim |  1.5.3 | C:\Octave\OCTAVE~1.0-W\mingw64\share\octave\packages\optim-1.5.3
                    ocs 0.1.5 | C:\Octave\octave-6.3.0-w64\mingw64\share\octave\packages\ocs-0.1.5
        optiminterp |  0.3.5 | C:\Octave\OCTAVE~1.0-W\mingw64\share\octave\packages\optiminterp-0.3.5
                octproj 2.0.1 | C:\Octave\octave-6.3.0-w64\mingw64\share\octave\packages\octproj-2.0.1
        quaternion 2.4.0 | C:\Octave\OCTAVE~1.0-W\mingw64\share\octave\packages\quaternion-2.4.0
                  optim 1.6.1 | C:\Octave\octave-6.3.0-w64\mingw64\share\octave\packages\optim-1.6.1
          queueing 1.2.6 | C:\Octave\OCTAVE~1.0-W\mingw64\share\octave\packages\queueing-1.2.6
            optiminterp 0.3.6 | C:\Octave\octave-6.3.0-w64\mingw64\share\octave\packages\optiminterp-0.3.6
             signal 1.4.0 | C:\Octave\OCTAVE~1.0-W\mingw64\share\octave\packages\signal-1.4.0
             quaternion 2.4.0 | C:\Octave\octave-6.3.0-w64\mingw64\share\octave\packages\quaternion-2.4.0
            sockets |  1.2.0 | C:\Octave\OCTAVE~1.0-W\mingw64\share\octave\packages\sockets-1.2.0
              queueing |  1.2.7 | C:\Octave\octave-6.3.0-w64\mingw64\share\octave\packages\queueing-1.2.7
          sparsersb |  1.0.6 | C:\Octave\OCTAVE~1.0-W\mingw64\share\octave\packages\sparsersb-1.0.6
                signal |  1.4.1 | C:\Octave\octave-6.3.0-w64\mingw64\share\octave\packages\signal-1.4.1
            specfun |  1.1.0 | C:\Octave\OCTAVE~1.0-W\mingw64\share\octave\packages\specfun-1.1.0
                sockets |  1.2.1 | C:\Octave\octave-6.3.0-w64\mingw64\share\octave\packages\sockets-1.2.1
            splines |  1.3.2 | C:\Octave\OCTAVE~1.0-W\mingw64\share\octave\packages\splines-1.3.2
              sparsersb |  1.0.8 | C:\Octave\octave-6.3.0-w64\mingw64\share\octave\packages\sparsersb-1.0.8
        statistics |  1.4.0 | C:\Octave\OCTAVE~1.0-W\mingw64\share\octave\packages\statistics-1.4.0
                splines |  1.3.4 | C:\Octave\octave-6.3.0-w64\mingw64\share\octave\packages\splines-1.3.4
                stk 2.5.1 | C:\Octave\OCTAVE~1.0-W\mingw64\share\octave\packages\stk-2.5.1
            statistics 1.4.2 | C:\Octave\octave-6.3.0-w64\mingw64\share\octave\packages\statistics-1.4.2
            strings 1.2.0 | C:\Octave\OCTAVE~1.0-W\mingw64\share\octave\packages\strings-1.2.0
                    stk 2.6.1 | C:\Octave\octave-6.3.0-w64\mingw64\share\octave\packages\stk-2.6.1
            struct | 1.0.15 | C:\Octave\OCTAVE~1.0-W\mingw64\share\octave\packages\struct-1.0.15
                strings |   1.2.0 | C:\Octave\octave-6.3.0-w64\mingw64\share\octave\packages\strings-1.2.0
            tisean |   0.2.3 | C:\Octave\OCTAVE~1.0-W\mingw64\share\octave\packages\tisean-0.2.3
                struct | 1.0.17 | C:\Octave\octave-6.3.0-w64\mingw64\share\octave\packages\struct-1.0.17
                tsa 4.4.5 | C:\Octave\OCTAVE~1.0-W\mingw64\share\octave\packages\tsa-4.4.5
              symbolic 2.9.0 | C:\Octave\octave-6.3.0-w64\mingw64\share\octave\packages\symbolic-2.9.0
              video 1.2.4 | C:\Octave\OCTAVE~1.0-W\mingw64\share\octave\packages\video-1.2.4
                tisean 0.2.3 | C:\Octave\octave-6.3.0-w64\mingw64\share\octave\packages\tisean-0.2.3
            windows 1.3.0 | C:\Octave\OCTAVE~1.0-W\mingw64\share\octave\packages\windows-1.3.0
                    tsa 4.6.2 | C:\Octave\octave-6.3.0-w64\mingw64\share\octave\packages\tsa-4.6.2
            zeromq 1.3.0 | C:\Octave\OCTAVE~1.0-W\mingw64\share\octave\packages\zeromq-1.3.0
                  video 2.0.0 | C:\Octave\octave-6.3.0-w64\mingw64\share\octave\packages\video-2.0.0
                windows  |  1.6.1 | C:\Octave\octave-6.3.0-w64\mingw64\share\octave\packages\windows-1.6.1
                zeromq  |  1.5.2 | C:\Octave\octave-6.3.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 any 'local' packages were previously installed with another version of windows, they might also appear in the list at the local location.  It is recommended that any such packages be uninstalled and reinstalled to guarantee compatibility with the current version of octave.


If Octave was installed from a zip of 7z archive, you may need to run:
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:
    
    
   >> pkg rebuild
   >> 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===


All packages can be updated to the latest version by running:
All packages can be updated to the latest version by running:
Line 86: Line 108:
Other packages can be installed by running:
Other packages can be installed by running:


   >> pkg install -forge <package name>
   >> 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:
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
   >> 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.
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.


'''Note that a security related issue in Windows XP currently prevents Octave from retrieving packages from the website automatically. When running under that Operating System manual package installation is necessary.'''
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 4.4.1 on [https://cygwin.com/ cygwin]=
=GNU Octave on [https://cygwin.com/ cygwin]=


*'''Maintainer:''' Marco Atzeri  
*'''Maintainer:''' Marco Atzeri  
*'''Latest release:''' 2018-08-17
*'''Latest release:''' 2020-02-26


*Latest packages:
*Latest packages:


:octave-4.4.1-1
:octave-5.2.0-1
:Its announce on cygwin mailing list [https://www.cygwin.com/ml/cygwin-announce/2018-08/msg00021.html]
:Its announce on cygwin mailing list [https://cygwin.com/ml/cygwin-announce/2020-02/msg00028.html]


:Octave Forge packages have each a cygwin package.
:Octave Forge packages have each a cygwin package.
Line 134: Line 171:
* To build GNU Octave from cygwin source package, you need to install "cygport" and the relevant development libraries
* To build GNU Octave from cygwin source package, you need to install "cygport" and the relevant development libraries
:<syntaxhighlight lang="bash">
:<syntaxhighlight lang="bash">
tar -xf octave-4.4.1-1-src.tar.xz  
tar -xf octave-5.1.0-1-src.tar.xz  
cygport octave.cygport almostall
cygport octave.cygport almostall
</syntaxhighlight>
</syntaxhighlight>
153

edits

Navigation menu