Edited by Martin Thomas Humby, Sunday, 22 July 2018, 16:01
Installing
Cordova under Linux Ubuntu / Mint is simple but many guides found on the
web and elsewhere are out of date and/or hard to follow. This post is a
list of
commands for those faced with an incomprehensible set of instructions
and as an aid mémoire for me. Commands for installation were tested using a fresh copy of Linux Mint 18.2 (Ubuntu 16.04 Xenial Xerus). As recommended, Cordova is installed using the JavaScript package manager NPM.
Only
minimal experience using the command line is assumed. Reminder: paste
in a terminal window is Edit > Paste or Ctrl+Shift+V. The sudo
password expires after 15 minutes (by default) so probably best to copy
and paste the first sudo prefixed command separately for each section. With this proviso commands can be copied and pasted as a block (ensure the basic command prompt shows after or press return to get it). After sudo all characters in the user password you type are hidden – no dots or * displayed. Texts following # are my remarks and can be in included in copy or not as convenient.
Open a terminal window Click on the desktop and press Ctrl+Alt+T. The command prompt shows:
martin@mint18
~ $ # for example
The prompt is shown below where a particular current directory is assumed in commands – avoid including bits of it in copy .
Check
Java is installed
java -version
If Oracle Java has been installed previously this should get something like
java version "1.8.0_144" Java(TM) SE Runtime Environment (build 1.8.0_144-b01) Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode
Node.js should include the JavaScript package manager NPM so check it worked by getting versions:
nodejs -v sudo npm -v # sudo is optional here but will save a spurious update-check warning
Install the Cordova application
sudo npm install -g cordova sudo chown -R $USER ~/.config/configstore # give the user (you) access after NPM install as root
cordova # should display a help screen
Set system variables
Cordova requires two new system variables JAVA_HOME and ANDROID_HOME and modification of the PATH variable.
JAVA_HOME
NB: I have shown the Java version as 10 in all occurrences below because this blog renders 8–o
as an emoticon copying from the page as 'surprise'. Version 8 should be used until Android Studio / SDK catches up.
sudo find / -name java-10-oracle # or java-8
This will return something like
[sudo] password for martin: find: ‘/run/user/1000/gvfs’: Permission denied /etc/java-10-oracle /usr/lib/jvm/java-10-oracle
The JVM location is the one we want.
Find the name of the text editor that
came with your system (Help > About from its menu bar). Open a new
terminal window and run the editor with root privileges
sudo editor-name # Do not close the terminal window or this may close the editor instance # alternatively sudo editor-name /etc/environment # should open the required file directly
Edit /etc/environment adding a line at the bottom of the file
JAVA_HOME="/usr/lib/jvm/java-10-oracle" # or substitute java-8
Save the modified file, close the editor and terminal window.
ANDROID_HOME and PATH
To generate an Android app Cordova
requires the Android SDK and Gradle. Both should be installed under
your home directory with their locations identified in these system
variables. If Android Studio is installed at a later date, when you
first create a project it will copy the SDK and more to a directory
~/Android/Sdk so might as well put it there. The version of Gradle
included in PATH below is that used in TM352-17J: modify for a later
version.
Open the text editor and do File > Open, Right Click and check Show Hidden Files. Open the file .bashrc and add the following lines at the bottom. Alternatively entering: editor-name ~/.bashrc in a terminal should open the file directly.
# added for Cordova install export ANDROID_HOME=$HOME/Android/Sdk export PATH=$JAVA_HOME/bin:$ANDROID_HOME/tools/bin:$ANDROID_HOME/platform-tools:$HOME/Gradle/gradle-4.4.1/bin:$PATH
Save the file.
To
register JAVA_HOME the system must be restarted but before doing so you
may wish to save a copy of the installation so far from the terminal
window to a file: Edit > Select All, Ctrl+Shift+C and paste into a
text editor.
Install Android SDK
Open a terminal window and create the directory for the SDK
martin@mint18~$ mkdir Android/Sdk
Download
the Linux sdk-tools .zip from
https://developer.android.com/studio/#downloads (from the 'Command line
tools only' section) to Android/Sdk. Extract the zip’s tools folder into
this directory.
Tools for creating Android apps It is essential that ANDROID_HOME is set correctly here or sdkmanager will put files in the wrong folder. To check it is correct
Accept licence agreements. Versions are those used in TM252-17J: check they meet your requirements.
There
should now be a new folder ‘cache’ in /home/martin/.android/ containing
many .xml scripts and several new folders in ANDROID_HOME including
build-tools. The file repositories.cfg remains empty indicating this
file and any warning generated if it does not exist are probably
spurious.
Install Gradle
martin@mint18~$ mkdir Gradle
Download
Gradle v4.4.1 – complete from https://gradle.org/releases/ into the new
Gradle folder and extract into ~/Gradle. If you
download a later version do not forget that PATH must have been adjusted
accordingly.
Check installation To check that all this worked a Cordova project must be created
If
an error is seen check the relevant system variable is correct and the
names of files match. Otherwise installation is complete.
JAVA_HOME could be defined in ~/.bashrc using export as for ANDROID_HOME and PATH saving the complication of text editor root privileges. Java is available to all applications so it is good practice to put the definition in /etc/environment. If additional software, Android Studio for example, is installed Cordova will continue to work even if JAVA_HOME is modified for some reason.
Installing apache cordova under Linux: Summary
Installing Cordova under Linux Ubuntu / Mint is simple but many guides found on the web and elsewhere are out of date and/or hard to follow. This post is a list of commands for those faced with an incomprehensible set of instructions and as an aid mémoire for me. Commands for installation were tested using a fresh copy of Linux Mint 18.2 (Ubuntu 16.04 Xenial Xerus). As recommended, Cordova is installed using the JavaScript package manager NPM.
Only minimal experience using the command line is assumed. Reminder: paste in a terminal window is Edit > Paste or Ctrl+Shift+V. The sudo password expires after 15 minutes (by default) so probably best to copy and paste the first sudo prefixed command separately for each section. With this proviso commands can be copied and pasted as a block (ensure the basic command prompt shows after or press return to get it). After sudo all characters in the user password you type are hidden – no dots or * displayed. Texts following # are my remarks and can be in included in copy or not as convenient.
Open a terminal window
Click on the desktop and press Ctrl+Alt+T. The command prompt shows:
martin@mint18 ~ $ # for example
The prompt is shown below where a particular current directory is assumed in commands – avoid including bits of it in copy .
Check Java is installed
If Oracle Java has been installed previously this should get something like
If it is not present enter the commands
A similar painless method can be used to install Java 10. If Open Java is present from java -version it is probably best to uninstall it.
Check Node.js installed
If not found download an installer for Node.js LTS version:
and do the install
Node.js should include the JavaScript package manager NPM so check it worked by getting versions:
Install the Cordova application
Set system variables
Cordova requires two new system variables JAVA_HOME and ANDROID_HOME and modification of the PATH variable.
JAVA_HOME
NB: I have shown the Java version as 10 in all occurrences below because this blog renders 8–o as an emoticon copying from the page as 'surprise'. Version 8 should be used until Android Studio / SDK catches up.This will return something like
The JVM location is the one we want.
Find the name of the text editor that came with your system (Help > About from its menu bar). Open a new terminal window and run the editor with root privilegesEdit /etc/environment adding a line at the bottom of the file
Save the modified file, close the editor and terminal window.ANDROID_HOME and PATH
To generate an Android app Cordova requires the Android SDK and Gradle. Both should be installed under your home directory with their locations identified in these system variables. If Android Studio is installed at a later date, when you first create a project it will copy the SDK and more to a directory ~/Android/Sdk so might as well put it there. The version of Gradle included in PATH below is that used in TM352-17J: modify for a later version.
Open the text editor and do File > Open, Right Click and check Show Hidden Files. Open the file .bashrc and add the following lines at the bottom. Alternatively entering: editor-name ~/.bashrc in a terminal should open the file directly.
Save the file.
To register JAVA_HOME the system must be restarted but before doing so you may wish to save a copy of the installation so far from the terminal window to a file: Edit > Select All, Ctrl+Shift+C and paste into a text editor.
Install Android SDK
Open a terminal window and create the directory for the SDK
Download the Linux sdk-tools .zip from https://developer.android.com/studio/#downloads (from the 'Command line tools only' section) to Android/Sdk. Extract the zip’s tools folder into this directory.
Tools for creating Android appsIt is essential that ANDROID_HOME is set correctly here or sdkmanager will put files in the wrong folder. To check it is correct
Optionally, to avoid a warning enter
Copy the following, then paste and enter at the command prompt
Accept licence agreements. Versions are those used in TM252-17J: check they meet your requirements.
There should now be a new folder ‘cache’ in /home/martin/.android/ containing many .xml scripts and several new folders in ANDROID_HOME including build-tools. The file repositories.cfg remains empty indicating this file and any warning generated if it does not exist are probably spurious.
Install GradleDownload Gradle v4.4.1 – complete from https://gradle.org/releases/ into the new Gradle folder and extract into ~/Gradle. If you download a later version do not forget that PATH must have been adjusted accordingly.
Check installation
To check that all this worked a Cordova project must be created
The result should be
If an error is seen check the relevant system variable is correct and the names of files match. Otherwise installation is complete.
JAVA_HOME could be defined in ~/.bashrc using export as for ANDROID_HOME and PATH saving the complication of text editor root privileges. Java is available to all applications so it is good practice to put the definition in /etc/environment. If additional software, Android Studio for example, is installed Cordova will continue to work even if JAVA_HOME is modified for some reason.