I've been playing guitar for the last 10 years now, but I spent the last 4 years only playing and singing alone. I decided to improve my technique, and to treat me with Guitar Pro 6. I was happy to see they even supported Linux natively! Sadly, they only provide a deb file, and no rpm. I'll thus describe here how I managed to install it on Fedora 22, ♬ with a little help from my friends ♫.

GuitarPro screenshot

Installing the dependencies

First, download the Guitar Pro deb file. Mine was called gp6-full-linux-r11686.deb Extract the archive called data.tar.gz from the deb, and then de-archive it:

$ cd /tmp
$ mv ~/Downloads/gp6-full-linux-r11686.deb .
$ ar vx gp6-full-linux-r11686.deb
$ tar -xvf data.tar.gz

Create the installation directory for Guitar Pro.

$ sudo mkdir -p /opt/GuitarPro6

Move the GuitarPro files to the installation directory.

$ sudo mv ./opt/GuitarPro6/ /opt/GuitarPro6/

We now need to install Guitar Pro's dependencies, and of course, they're 32 bit...

$ sudo dnf install libICE.i686 \
    libSM.i686 \
    libssh.i686 \
    libxml2.i686 \
    libxslt.i686 \
    libpng12.i686 \
    libvorbis.i686 \
    alsa-lib.i686 \
    portaudio.i686 \
    pulseaudio-libs.i686

You might have to download other packages as well, as Guitar Pro was not my first 32 bit program I had to install.

Note: The required packages will be listed when you execute the /opt/GuitarPro6/launcher.sh script, and you can use the dnf whatprovides command to find the package that provides each required library.

Sadly, that's not it yet. GuitarPro also depends on both libcrypto and libssl 0.9.8, and they're not packaged anymore in Fedora 22. We'll use a very cool trick: by a great stroke of luck, the libraries contained in the openssl Ubuntu deb package are usable as a drop-in replacement!

$ wget -q http://security.ubuntu.com/ubuntu/pool/universe/o/openssl098/libssl0.9.8_0.9.8o-7ubuntu3.2.14.04.1_i386.deb 1>/dev/null
$ ar x libssl0.9.8_0.9.8o-7ubuntu3.2.14.04.1_i386.deb data.tar.xz
$ tar --strip-components 3 \
    -xf data.tar.xz \
    ./lib/i386-linux-gnu/libcrypto.so.0.9.8 \
    ./lib/i386-linux-gnu/libssl.so.0.9.8
$ chmod 755 libssl.so.0.9.8 libcrypto.so.0.9.8
$ mv libssl.so.0.9.8 libcrypto.so.0.9.8 /opt/GuitarPro6

Seriously, how cool is that 1?

Note: I moved both shared libraries to the /opt/GuitarPro6 directory, because it also contained numerous other ones. My guess, which turned out to be correct, was that the executable uses will look for shared objects in its directory. This way, I didn't have to fiddle with LD_LIBRARY_PATH and ldconfig, or install these libraries into my /usr/lib folder.

Installing the sound banks

We now need to install the sound banks. First, download them from the official website. Then, install them via the /opt/GuitarPro6/GPBankInstaller script:

$ sudo mv Banks-r370.gpbank /opt/GuitarPro6
$ sudo /opt/GuitarPro6/GPBankInstaller /opt/GuitarPro6/Soundbanks.gpbank /opt/GuitarPro6/Data/Soundbanks/

Make Guitar Pro the default program for tab files

We then install the desktop and icon file that were packaged in the Guitar Pro deb, so that it can be executed from the app launcher.

$ sudo cp ./usr/share/applications/GuitarPro6.desktop /usr/share/applications/GuitarPro6.desktop
$ sudo cp ./usr/share/pixmaps/guitarpro6.png /usr/share/pixmaps/

The last and final step is the cherry on the cake: we're going to make Guitar Pro open automatically when opening the tab files. We first define the application/x-guitar-pro MIME-type and then associate it with the gp3, gp4, gp5 and gp6 extensions.

$ cat <<EOF > guitarpro-mime.xml
<?xml version="1.0"?>
    <mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
    <mime-type type="application/x-guitar-pro">
        <glob pattern="*.gp3"/>
        <glob pattern="*.gp4"/>
        <glob pattern="*.gp5"/>
        <glob pattern="*.gp6"/>
    </mime-type>
</mime-info>
EOF
$ sudo xdg-mime install guitarpro-mime.xml
$ xdg-mime default GuitarPro6.desktop application/x-guitar-pro

Done. You should now be able to click on a tab file, and enjoy!

Conclusion

I managed to make everything work, with both some help and luck. I would however have prefered if the Guitar Pro binary had been compiled statically, to ease the installation process.

Also, when you advertise Linux compatibility, please, PLEASE, at least mention the package format (deb, rpm, other), and also mention the distributions you support natively.

Finally, when you want to support Linux, do not ever redirect Linux users to the Windows installation guide, by stating that both processes are "substantially similar". They are not.

On that note (get it?), keep on rocking in a free world!

Sources


  1. We can of course try to include them from other rpm-based distributions, but I have to admit I found it cooler this way.