You need to specify the path to the tools-builder folder, which is where ctags is. Try this:
-hardware /usr/share/arduino/hardware \
-tools /usr/share/arduino/hardware/tools \
-tools /usr/share/arduino/tools-builder \
-libraries lib \
-fqbn arduino:avr:uno \
-build-path .build \
I don't understand why this worked, but I found this comment in Redhat Bugzilla (it doesn't seem to be a bug report specifically about that...but anyway):
Parameter 'tools' is mandatory
However, if I create the packages directory in ~/.arduino15, compilation now works.
Seemed like an easy thing to try, ...
The Arduino itself is open, and you can use it to make commercial products.
Note however, that for commercial products, a lot of additional requirements may be needed (regulations, safety, certifications), especially since it will be used in public places among (many) other people. You don't want students to be injured/die because of a badly designed device....
The problem occurs because arduino does not have permission to modify directory in /usr/share/arduino to create tools-builder
All you have to do is navigate to usr/share/arduino create 'tool-builder' directory
sudo mkdir /usr/share/arduino/tools-builder
I found the offending file in a sub directory of the C:\Software sketch directory. I had a subdirectory called trash, and the Arduino build found it from there, and put it in AppData then referenced the error from there.