I somehow understand that properly installing a library makes its include files available to the IDE.
Generally this is true. There are a couple libraries folders that the Arduino IDE searches for files that match your #include directives. Once found, the -I compiler flag is generated accordingly.
However, the IDE has a feature that allows libraries to be bundled with an Arduino hardware package. This is useful for architecture-specific libraries. For example, each hardware package has its own version of the SPI library. The APIs are the same between all the SPI libraries, but the low level code is very different from one hardware package to another due to the microcontrollers having different architectures. SoftwareSerial is one of these architecture-specific libraries. The Arduino IDE only searches the libraries bundled with the hardware package for the board you have selected from the Tools > Board menu.
I find the file SoftwareSerial.h here.
How do I tell the Arduino IDE to find it there?
Short answer: you can't.
/big/arduino/arduino-nightly/hardware/arduino/avr is the location of the Arduino AVR Boards installation. /big/arduino/arduino-nightly/hardware/arduino/avr/libraries/SoftwareSerial is the software serial library written specifically for the AVR architecture. So when you are compiling for an ESP32 board, that library won't be seen. Even if you installed that SoftwareSerial library to one fo the standard libraries folders so it would be found during the dependencies search, you would just end up with a compilation error because that library is fundamentally incompatible with the ESP32 architecture.
Now since the software I was delivered relies on and works with SoftwareSerial.h which library must I install to get SoftwareSerial.h?
You could search around to see if some 3rd party library author wrote an implementation of SoftwareSerial for ESP32. Much better would be to simply modify your code to use one of the extra hardware serial interfaces on your ESP32. Hardware serial is always superior to software serial.
esp32_littledisplay:7:26: error: Adafruit_GFX.h: No such file or directory
Some libraries come bundled with the Arduino IDE and the Arduino hardware packages. However, there are thousands more official and 3rd party libraries that you need to install to use. The Adafruit GFX library is one of these. In this case, it can easily be installed via Sketch > Include Library > Manage Libraries.
More information on installing Arduino libraries:
Multiple libraries were found for "Wire.h"
This is bad news. It seems you've already been mucking around with your installation. The Wire and SPI libraries are architecture specific so you should only have a single installation of these libraries that can be seen by the Arduino IDE at any one time. For some reason, you have multiple installations of these libraries visible to the Arduino IDE's library dependencies search. It's true that the IDE picked the right library, but installing copies of the SPI and Wire libraries to the standard libraries folders is a very bad idea because those libraries are architecture specific, so this could cause the version of those libraries that was written for a different architecture to be used.
I have not explicitely installed any libraries.
Then how do you have copies of the SPI and Wire libraries installed to the standard libraries folder?
I have no idea where the directory /home/francis/.arduino15/ came from
This is the location where the hardware packages you install via Boards Manager (Tools > Board > Boards Manager) are stored.
I'm trying to compile some delivered Arduino software from somebody who has walked off the project.
I'm guessing they wrote the code for some architecture other than ESP32. Likely it was AVR.
Is a .ino file the top level of a sketch which would mean project or build in other development environments.
It seems just a .cpp file to me, not a project file.
It's not a project file. There is no project file. After some minor preprocessing, the .ino files of your sketch are compiled as C++:
But libraries are installed for a sketch, not for the entire environment?
It is possible to bundle libraries with a sketch, and those bundled libraries will only be usable from that sketch, but this is not the case with your sketch. It's also possible to add .h, .cpp, .c, .S files to your sketch. You can use #include directives for those .h files as well as to bring in library dependencies.
I know the original developer used Windows instead of Linux but surely that makes no difference?
Correct. The Arduino IDE works exactly the same no matter which OS you're using.
I think I made a mistake in installing the nightly build.
I have now downloaded arduino-1.8.9-linuxaarch64.tar.xz
I think that is a good move. The nightly build is primarily intended for beta testing. It may not be as stable as the production releases of the Arduino IDE. However, the use of the nightly build has nothing to do with your problems with the SoftwareSerial library and switching to Arduino IDE 1.8.9 will not solve this.
I'm still mystified as to how you include the needed source code libraries as part of the build?
Just install the library, add the #include directive for the library header file to the sketch, and the Arduino IDE automagically handles the rest.