[GNC] new v3.0 install Ubuntu 18.04 LTS

Dennis Powless claven123 at gmail.com
Sun May 6 00:22:09 EDT 2018


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?

I was told to extract it to the Applications folder, certainly, I can move
that to the home folder. I was never told or read to specify a location for
the build-cmake directory.  I'm not real sure where to place that.

Yes that path to the tarball file extracted is the Applications
 /home/dennis/Applications/gnucash-3.1
dennis at dennis:~/Applications$ ls
gnucash-3.1




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


yes it returned /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

I was under the impression you had to identify the gnucash-3.1 in order for
the 'installer' to find it


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.

I certainly can use this one.



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


I accidentally wrote the make at the end, I thought the make on the second
to last line was carried over from the previous




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.

I'm trying to figure this out, as I like to keep up to date on stable
releases, but never knew how to build them.  So, I just kept with the
official release from ubuntu, which is older.

Do I cd to a specific location to start this process or do I do it from
home??




mkdir build-cmake


cd build-cmake


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

make

sudo make install


Thanks for explaining what these things all mean, its helping.  I've read
up on these things, well mostly the make, check install, check install
etc... and there is quite a bit of conflicting things out there, some that
makes sense and some that don't.


Dennis


On Sat, May 5, 2018 at 8:22 PM, DaveC49 <davidcousens at bigpond.com> wrote:

> 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
> _______________________________________________
> gnucash-user mailing list
> gnucash-user at gnucash.org
> To update your subscription preferences or to unsubscribe:
> https://lists.gnucash.org/mailman/listinfo/gnucash-user
> If you are using Nabble or Gmane, please see
> https://wiki.gnucash.org/wiki/Mailing_Lists for more information.
> -----
> Please remember to CC this list on all your replies.
> You can do this by using Reply-To-List or Reply-All.
>


More information about the gnucash-user mailing list