There are times when you download a package from the Internet and want to install it but it turns out you have to compile it first, yeah, it's easy to just do the classic
./configure; make; sudo make install, but before you can do that, you need to install the compiler and other tools needed for the compilation or else you will get error messages on the first step and you will not be able to install the package.
Fortunately there are metapackages on Debian (and derivatives) and package groups in RedHat (and derivatives) that pack all the basic tools you'll need to compile that package you want (and many more), you just have to install them.
To install such packages, just head over to the console (you're not affraid of the console, are you? Of course not!) and type the following with root privileges (sudo works fine):
user@computer: ~$ apt-get install build-essential
According to the file
/usr/share/build-essential/list, these are the packages it installs:
- libc6-dev [!alpha !ia64 !hurd-i386] | libc0.3-dev [hurd-i386] | libc6.1-dev [alpha ia64] | libc-dev Provides the ISO C standard library Indirectly depended on by g++, but we'll ignore it since libc6-dev is used for non-C++ programs too.
- libc6-dev-sparc64 [sparc] Used only on the sparc architecture.
- gcc (>= 4:4.4.3)
- g++ (>= 4:4.4.3)
make Also depended on by dpkg-dev, but make does warrant its own dependency since debian/rules will need it even if dpkg-dev stopped depending on it
dpkg-dev (>= 1.13.5) Provides dpkg-genchanges and other scripts. Versioned, because of support for the build-time dependency fields in /debian/control and dpkg-architecture support for OS and CPU information.
hurd-dev [hurd-i386] Provides libpthread.so (and other such essential components).
user@computer: ~$ yum groupinstall 'Development Tools'
And this will install the following packages:
- gcc c/c++ compiler
- gcc-c++ compiler
- binutils and all dependencies.
And that's it! Just head back to the directory where you unpacked your package and try
./configure; make; sudo make install again, just keep in mind that there are certain packages that require the installation of other tools, be sure to check the log out of
./configure and google how to install the missing dependencies.
Leave a comment below if this helped you (or if you have more questions) and don't forget to subscribe and share this with others!