Install packages & libraries on your local paths
Fedora is my favorite Linux distribution which is sponsored by Red Hat.
Fedora 28 is out with a lot of features. Instead of upgrading my fedora
dnf-plugin-system-upgrade or the
GNOME Software way, I'd
always like to download the ISO and install it from a USB Flash Drive
(cause that returns a pointer to the ISO and I could use it anywhere
I have a love/hate relationship is with the Red Hat's
Automatic Partition which usually leaves with just 50GB for the
/) and the rest for your
$HOME. So I usually do
Manual Partition and give the partitions the right space. But
Automatic Partitions will save you some time by automatically giving
other partitions the right amount of space.
This time, I opted for
Automatic Partition and now I'm left with just
52.6GB. Actually its just 42.7GB after doing
dnf upgrade. In my past,
the first time when I've given Fedora a try, I used it for more days
than I thought I would and I was struggling with <12GB of free space.
That was the time, I thought, I wish I had known how to configure and
install libraries on my local paths without letting everything existing
Now, I've finally found a way to install libraries on my own path. I
like to use
Usually, When you compile libraries from source, the usual way would be
./configure make sudo make install
./autogen.sh ./configure make sudo make install
Where do you think the libraries get installed?
/usr/local/include for headers,
/usr/local/lib/ for your
libraries that you can link with your programs. And also,
easily finds your libraries and packages.
What if you have less space on your
Computer or like to install a
package in a different location (like as I said
Well, that's easy though. The
configure script also has a
argument that allows you to install the package on given path.
./configure --prefix $HOME/.local make make install
Note that you don't need the sudo command, as
$HOME doesn't require you to have
[monster@monster json-c]$ whereis json-c json-c: /home/monster/.local/include/json-c
But will your packages be found and linked to other programs that use this packages?
Now I could finally install packages on my local paths. (YAY) Will I be able to use it? The answer is NO. (BOOO)
You must add the path to your
# ~.bashrc export PATH="$PATH:$HOME/.local/lib:$HOME/.local/share:$HOME/.local/include:$HOME/.local/bin"
Sometimes you get complains about shared libraries.
# ~/.bashrc export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$HOME/.local/lib" export LIBRARY_PATH="$LIBRARY_PATH:$HOME/.local/lib"
Also, you love
# ~/.bashrc export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$HOME/.local/lib/pkgconfig"
When you manually compile, your
C/C++ compiler complains that it
couldn't find the headers.
# ~/.bashrc export CPATH="$CPATH:$HOME/.local/include" export C_INCLUDE_PATH="$C_INCLUDE_PATH:$HOME/.local/include" export CPLUS_INCLUDE_PATH="$CPLUS_INCLUDE_PATH:$HOME/.local/include"