Missing Canvas

Honestly speaking, sooner or later, you will learn by hard that the policy of using a “system-provided” ROOT version (e.g. in “/usr/[bin|lib]” or “/usr/local/[bin|lib]”) is a dead end.
You will learn that you need something like three different versions of ROOT - just because something that works with a particular ROOT version is not working with another ones, or because some piece of your additional, experiment / analysis specific, software explicitly requires a particular ROOT version.
The safest approach is to “completely remove” (“purge”) all “system-provided” ROOT related packages (this includes any “official” packages that originate from your operating system’s repositories as well as any version that you yourself built) and install all needed versions of ROOT from scratch, each version in a different “version specific” ROOTSYS subdirectory (e.g. something like “/opt/ROOT/v5-32-04”, “/opt/ROOT/v5-34-18”, “/opt/ROOT/v5-34-00-patches” and so on).

I always install ROOT 5 using the ROOTSYS based method described in this old post.
The ROOTSYS based method is almost the same as the official “Location independent installation” method (do remember to “unset ROOTSYS” before running configure and make, if you want to use the official method) but the “ROOTSYS=/Where/You/Want/To/Install/root” subdirectory must be different from the “/Where/You/Unpacked/The/Source/Code/Of/root” subdirectory (i.e. in which you will build ROOT 5).
You can also easily build ROOT 5 “in-place” (with “unset ROOTSYS”).
If you prefer to use the “--prefix” method (i.e. the official “Fixed location installation” method), do always remember to add an appropriate “--etcdir” (no need to do it for ROOT 6) and do remember to “unset ROOTSYS” before running configure and make.
Note that the “--prefix” method produces a different “installation” / “binary distribution” subdirectory structure than the ROOTSYS based method and I have had problems with ROOT’s tutorials (and tests?) when using the “--prefix” method which never appeared when using the ROOTSYS based method (and that’s why I always advertise the ROOTSYS based method).

Building ROOT 6 requires the usage of the new CMake based building method.

Before trying to build ROOT, see the “Build Prerequisites” web page.
In any case, when you are building a new ROOT version, make always sure that nothing in your environment variables (i.e. “ROOTSYS”, “PATH”, “LD_LIBRARY_PATH”) points to another existing version of ROOT (and that’s another good reason why there should be no ROOT related files in “standard” system locations, like “/usr/[bin|lib]” or “/usr/local/[bin|lib]”), otherwise you may end up with a broken build. If you are re-building a particular version, remove the old “installation” / “binary distribution” subdirectory structure before configuring it again (and if you want to re-configure it, make sure that you started with a “fresh” source code, so that there are no remnants from previous builds, for example run “make distclean” or maybe better “make maintainer-clean” before configuring it again).

BTW. See also: Sourcing root for all users

P.S. In order to get rid of “undesired” ROOT versions, if you did “make install”, with ROOT 5 just “make uninstall”, while with ROOT 6, from the build subdirectory, you will need to execute something like “xargs rm < install_manifest.txt”. If it comes from your operating system’s repositories, just “completely remove” / “purge” (i.e. “remove with any associated configuration files”) all ROOT related packages. For example, on Ubuntu 14.04, execute “sudo apt-get purge root-system* root-plugin* libroot*” (afterwards check that the “/usr/lib/i386-linux-gnu/root5.34” and the “/usr/lib/x86_64-linux-gnu/root5.34” subdirectories disappeared completely).

3 Likes
Getting rid of old version of ROOT
No graphical output
Sourcing root for all users
Old version vs. New Version Installation Processes
How does one turn the GDML feature ON during ROOT installation?
Load Library bug or quirk
How to uninstall fix location installed ROOT?
Installing python bindings on an already existing root setup
Intall root 5 and root 6
Updating Root version 5.34 to 6.02
Installation problems (Ubuntu 14.04)
Installation problems (Ubuntu 14.04)
Problem in configuring pythia8 with root and fastjet
Error loading shared library: libGarf3d.so
Unable to install RooFit
Mac Sierra installation problems with ROOT 5.34.36
Changing ROOT version
ROOT takes days filling a few histograms in my pc
PyCintex in ROOT 6
H2root problem
Compiling ROOT with Pythia8
Root crashes when opening a saved TCanvas
Build old ROOT v5
H2root problem
Warning in <TClassTable::Add>: class TFile already in
Minuit2 not found
Unable to install root on ubuntu 10
Feature request - make uninstall
Feature request - make uninstall
Feature request - make uninstall
Installing ROOT into a specific location
Feature request - make uninstall
Issue compiling Root
Delete Root or how to fix the problem?
Uninstall root-6.14.00
Warning in <TClassTable::Add> and known solutions don't work
Building ROOT against exiting cling and (patched) clangdev
Root without C++ compiler installed?
Memory leak with basic TTree
TBrowser not showing on debian 11
Font problem in plot
TGeoManager missing in CentOS8
Different INSTALL-directory structure for different installation methods
How do I actually install ROOT?
Problems in compiling 6.19/6.20 on Ubuntu 20.04
ROOT module not found: Python3
Issues when building ROOT with R statistics (ROOTR)
How does one turn the GDML feature ON during ROOT installation?