[GNC] new v3.0 install Ubuntu 18.04 LTS

DaveC49 davidcousens at bigpond.com
Sat May 5 20:22:15 EDT 2018


Hi Dennis,

Almost there but not quite. In which directory in your home directory
/home/dennis have you extracted the gnucash-3.1 directory from the tarball
gnucash-3.1.tar.bz2 which you downloaded. Can you tell me the full path to
that directory and the full path to the build-cmake directory you have
created? 

Next chack that $HOME is defined, type echo $HOME into a shell/terminal. It
should return "/home/dennis".

With the "-DCMAKE_INSTALL_PREFIX=$HOME/.local/gnucash-3.1", the install
process will create the following directory structure:
/home/dennis/.local/gnucash-3.1/bin/gnucash
/home/dennis/.local/gnucash-3.1/etc/gnucash
/home/dennis/.local/gnucash-3.1/lib/gnucash
/home/dennis/.local/gnucash-3.1/share/gnucash

It will also create those same four directories underneath a parent folder
for any other application you install with a similar prefix.

If you use the "-DCMAKE_INSTALL_PREFIX=$HOME/.local" as the install location
you will get the structure:
/home/dennis/.local/bin/gnucash
/home/dennis/.local/etc/gnucash
/home/dennis/.local/lib/gnucash
/home/dennis/.local/share/gnucash.

The latter is normally the preferred arrangement  as when other applications
are installed their files will also go in the same
/home/dennis/.local/bin
/home/dennis/.local/etc
/home/dennis/.local/lib
home/dennis/.local/share
directories. 

Both of the above will work as if you want to uninstall Gnucash you issue
"make unistall" command in the build-cmake directory you created and that
uses the contents of a file "install_manifest.txt" which records the
locations in which the files were installed. The latter is the structure
that is normally used by most Linux developers in the system directories
/usr, /usr/local and /opt, so mirroring that makes it a little easier in
translating instructions that are written with a different base location in
mind.

CMake and make are different tools. CMake is a precompiler which checks that
any dependent libraries and headr files are installed and available for the
build system to use. It also creates in the build-cmake directory a parallel
structure to the source directories containing files named Makefile which
are used separately by the make tool to compile the program. It also
contains bin, etc, lib and share directories into which the compiled sources
are placed ready for installation. 

Entering the "make" command in the shell/terminal starts the process of
building these directories within the build-cmake file.

The final command "make install" ( or sudo make install if you are
installing to a system location) copies these directories to the install
location specified by the -DCMAKE_INSTALL_PREFIX switch applied to the cmake
command.

In the camke command as you had it specified
"cmake -DCMAKE_INSTALL_PREFIX=$HOME/.local/gnucash-3.1 make"

"make" is not a legitimate part of the cmake command. It is a separate
command which follows the cmake command, as explained above. Instead of
make, you need in that position in the cmake command a path reference to the
guncash-3.1 directory. You will remember I aksed you above to tell me the
locations of it in your home directory structure. It may be something like
/home/dennis/Applications/gnucash-3.1. In this case you would simply use the
string "/home/dennis/Applications/gnucash-3.1" (without the quotes) where
you have "make" in the cmake command. That is known as an absolute reference
to the location of the gnucash source directory. That is probably the
easiest to use as relative path from the build-cmake location to the
gnucash-3.1 location can be a little more difficult to work out. Assuming
the above location(substitute the correct path if not) the cmake command
would be:

cmake -DCMAKE_INSTALL_PREFIX=/home/dennis/.local
/home/dennis/Applications/gnucash-3.1

The problem with writing instructions is that you generally have to assume a
base level of knowledge on the part of the reader and unfortunately many of
us do not have the assumed base level when we first try something, myself
included. For the Gnucash User list, I think the assumed knowledge when it
comes to building the software itself would be something like (but it is not
clearly defined):

Knowledge of the operating system you are using;
Knowledge of its file system and structure;
Knowledge of navigating the above;
General familiararity with building software for the OS and the tools used
to do it;

The transition to GnuCash 3.1 is a bit more difficult than usual as the
developers have made changes to how the software is built, introducing cmake
instead of the configure script used by the autotools system so that it is
more flexible and more easily maintained in the future. make itself is one
component of the autotools used for building software on Linux systems.  
Add to that that there are many varieties of Linux which are all evolving
along different paths with different sequential versions within each
variety. Each variety often has its own system tools with different names.
Even within linux Mint which is a derivative of Ubuntu I cannot really
assume that all users will have the same gui system although most of the
shell level commands are the same. Then you have Windows and Mac-OSX to
worry about

I am trying to write the instructions with the above general knowledge base
in mind but I won't always succeed first off. I am monitoring the User and
Dev lists for problems people encounter that I haven't covered so that I can
continue to refine the instructions. Google, the Ubuntu forums and other
Linux forums can help where I have assumed an understanding of Linux you or
others may not have.

Hope this helps

David

Hope this helps



-----
David Cousens
--
Sent from: http://gnucash.1415818.n4.nabble.com/GnuCash-User-f1415819.html


More information about the gnucash-user mailing list