Oleg's Web Log

Stochastic records on Information Security and IT in general

Installing Albert on CentOS 7

Category: Linux System Administration

Written on

Who is Albert?

Albert is a Linux application launcher similar to Alfred (OS X) and Listary (Windows). It's one of those huge time savers absolutely worth getting.

Challenges

At this time Albert does not officially support CentOS 7. Building from the source to the rescue!

Not so fast, cowboy. There are a few software version bummers along the road. One of them is gcc. Another one is sqlite. But no worries, I got you covered.

The solution

# Install EPEL, RPM Fusion, and SCL repositories 
# (EPEL must be installed prior to RPM Fusion) 
yum install epel-release
yum install centos-release-scl-rh
yum localinstall \
https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm \
https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-7.noarch.rpm

# Install dependencies, including the latest version of GCC via SCL repository
yum install cmake3 qt5-qtbase qt5-qtbase-devel qt5-qtx11extras-devel \
qt5-qtsvg-devel qt5-qtdeclarative-devel VirtualBox-devel muParser-devel \
python34-devel devtoolset-3-gcc devtoolset-3-gcc-c++

# Spin a bash shell with the latest version of GCC in the environment
scl enable devtoolset-3 bash

# Download Albert
git clone --recursive https://github.com/albertlauncher/albert.git

# Reset to the commit that I worked with (the most recent at the time)
# Future commits may or may not build using steps from this post 
cd albert
git reset --hard 21c7972 

# Apply the patch to fix sqlite version problem (more on this below)
git apply albert-centos7.patch 

# Build the thing
cd ..
mkdir albert-build
cd albert-build
cmake3 ../albert -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_PREFIX_PATH=/usr/lib/cmake
make

# Install the thing noting all the files being touched in the process
tracefile -u make install | tee albert-make-install-files.txt

# Fingers crossed the bird should fly
albert

Why patching?

The SQLite from CentOS 7 repo on my installation was reporting version below 3.8.2 required to support the WITHOUT ROWID syntax. As a result after successful compilation my binary was failing miserably. The patch fixes this nuisance.

What's tracefile?

A simple Perl script monitoring files and directories touched by a running process. You can check out the original version or, a little bit cleand up mine. I found it useful noting all the files touched by make install so I can clean up my system in case make uninstall was not provided.

comments powered by Disqus