Compiling on macOS using MacPorts: Difference between revisions

From GRASS-Wiki
Jump to navigation Jump to search
No edit summary
(Update with latest GRASS version port 'grass', added note on wxPython)
Line 8: Line 8:
</pre>
</pre>


Information on software, i.e. ''ports'', that can be installed can be retrieved with the '''info''' action, this is an example with the port '''grass7''':
Information on software, i.e. ''ports'', that can be installed can be retrieved with the '''info''' action, this is an example with the port '''grass''' (which is the latest version):
<pre>
<pre>
port info grass7
port info grass


grass7 @7.8.3_1 (gis)
grass @8.2.1 (gis)
Variants:            debug, ffmpeg, gui, mysql5, openblas, postgresql10, postgresql11, [+]postgresql12, proj4, [+]proj6, python35, python36, python37, [+]python38, sqlite, universal, zstd
Variants:            debug, gui, mysql57, mysql8, openblas, openmpi, postgresql10, postgresql11, postgresql12, postgresql13, [+]postgresql14, proj6, proj7, [+]proj8, python36, python37, python38,
                      [+]python39, sqlite, universal


Description:          GRASS is a Geographic Information System (GIS) used for geospatial data management and analysis.
Description:          GRASS is a Geographic Information System (GIS) used for geospatial data management and analysis.
Line 19: Line 20:


Build Dependencies:  pkgconfig
Build Dependencies:  pkgconfig
Library Dependencies: bzip2, freetype, fftw-3, gdal, pdal, geos, tiff, libpng, liblas, cairo, readline, python38, py38-Pillow, py38-numpy, py38-six, proj6, postgresql12
Library Dependencies: bzip2, freetype, fftw-3, gdal, pdal, geos, tiff, libpng, liblas, cairo, zlib, readline, python39, py39-Pillow, py39-numpy, py39-six, proj8, postgresql14
Runtime Dependencies: py38-psycopg2
Runtime Dependencies: py39-psycopg2
Platforms:            darwin
Platforms:            darwin
License:              GPL-2+
License:              GPL-2+
Line 30: Line 31:
Installing GRASS with default variants:
Installing GRASS with default variants:
<pre>
<pre>
sudo port install grass7
sudo port install grass
</pre>
</pre>
will download, compile and install GRASS with dependencies ''postgresql12'', ''proj6'' and ''python38''.
will download, compile and install GRASS with dependencies ''postgresql14'', ''proj8'' and ''python39''.


However, a customized installation may look like:
However, a customized installation may look like:
<pre>
<pre>
sudo port install grass7 +gui +python37 +zstd +sqlite
sudo port install grass +gui +python37 +sqlite
</pre>
</pre>
which will replace the default ''python38'' with ''python37'' and include also the ''gui'', ''sqlite'' and ''zstd'' dependencies. The default variants ''postgresql12'' and ''proj6'' will in this case also be included.
which will replace the default ''python39'' with ''python37'' and include also the ''gui'' and ''sqlite'' dependencies. The default variants ''postgresql14'' and ''proj8'' will in this case also be included.
 
'''Note:''' you need to add '''+gui''' to install wxPython for GRASS graphical user interface, this in not included by default.


To check if any of the installed ports (or dependencies) have been updated:
To check if any of the installed ports (or dependencies) have been updated:

Revision as of 17:54, 22 March 2023

Installing GRASS GIS with MacPorts

MacPorts is a package management system for macOS. It makes it easy to install and update any supported software — dependencies (that can be either executables or libraries) are installed and updated automatically. It is recommended to install the MacPort base software with the package installer available at macports.org where also detailed installation and usage instructions can be found. Note that Xcode is a prerequisite and that MacPorts is controlled through the Terminal with the port command.

Assuming you succeeded with the installation of the MacPorts base, the base software can be updated with:

sudo port selfupdate

Information on software, i.e. ports, that can be installed can be retrieved with the info action, this is an example with the port grass (which is the latest version):

port info grass

grass @8.2.1 (gis)
Variants:             debug, gui, mysql57, mysql8, openblas, openmpi, postgresql10, postgresql11, postgresql12, postgresql13, [+]postgresql14, proj6, proj7, [+]proj8, python36, python37, python38,
                      [+]python39, sqlite, universal

Description:          GRASS is a Geographic Information System (GIS) used for geospatial data management and analysis.
Homepage:             http://grass.osgeo.org/

Build Dependencies:   pkgconfig
Library Dependencies: bzip2, freetype, fftw-3, gdal, pdal, geos, tiff, libpng, liblas, cairo, zlib, readline, python39, py39-Pillow, py39-numpy, py39-six, proj8, postgresql14
Runtime Dependencies: py39-psycopg2
Platforms:            darwin
License:              GPL-2+
Maintainers:          none

The variants are options for a port that can be chosen at installation. The variants marked with a +, are included by default.

Installing GRASS with default variants:

sudo port install grass

will download, compile and install GRASS with dependencies postgresql14, proj8 and python39.

However, a customized installation may look like:

sudo port install grass +gui +python37 +sqlite

which will replace the default python39 with python37 and include also the gui and sqlite dependencies. The default variants postgresql14 and proj8 will in this case also be included.

Note: you need to add +gui to install wxPython for GRASS graphical user interface, this in not included by default.

To check if any of the installed ports (or dependencies) have been updated:

port outdated

To update outdated ports:

sudo port upgrade outdated

Using GRASS GIS installed with MacPorts

A standard installation of MacPorts will install ports at:

/opt/local/

Installation with the variant +gui will also install an app bundle at:

/Applications/MacPorts/GRASS-7.8.app

You can start GRASS GIS from terminal with command:

grass78

or

/opt/local/bin/grass78