UPM packages are provided for some of the major supported distributions, making it very easy to install UPM and its dependencies without having to go through a full build.
Yocto Project based Poky Linux builds are provided for Intel Galileo, Intel Edison and Minnowboard. These are the official images released with the Intel IoT Developer Kit and can found here.
To update to the latest stable UPM version:
echo "src intel-iotdk https://iotdk.intel.com/repos/3.5/intelgalactic/opkg/i586/" > /etc/opkg/intel-iotdk.conf
opkg update
opkg upgrade mraa upm
If you would like to try the development version use intelgalactic-dev
instead.
WR Pulsar uses SmartPM for software updates. Updating to the latest UPM version requires:
smart channel -y --add upm_mraa_channel type=rpm-md name="MRAA/UPM" baseurl=http://iotdk.intel.com/repos/pulsar/8/x64
smart update
smart install -y mraa upm
For Pulsar 7 use the following baseurl instead: baseurl=http://iotdk.intel.com/repos/pulsar/7/x64
Wind River Linux 7 uses 01.org repositories and will have a default update channel that includes MRAA & UPM. Thus you only have to update and install.
MRAA and UPM are available through a Personal Package Archive (PPA) on Ubuntu that can be found here.
To install:
sudo add-apt-repository ppa:mraa/mraa
sudo apt-get update
sudo apt-get install libupm-dev python-upm python3-upm upm-examples
Note that the Ubuntu PPA only provides the C/C++ and Python packages. Node.js developers will have to install MRAA and UPM using NPM instead.
This option allows compiling MRAA/UPM on any system with npm and node-gyp.
The UPM modules have a hard dependency on MRAA, thus you will have to install
it first. Also, make sure Node can find MRAA by updating the NODE_PATH
variable if necessary. A global installation is preferred:
npm install mraa -g
After this, to install a UPM module using npm simply type:
npm install jsupm_<module-name> -g
In order to initialize the platform, require MRAA before you load a UPM module in your code:
require('mraa');
var lib = require('jsupm_<module-name>');