Support
- Advanced Backup
- Client Side
- Cloud Enterprise
- ColdFusion
- Control Panel
- cPanel
- Customer Portal
- DNS Information
- Dedicated Servers
- DirectAdmin
- Domain Name
- dotDefender
- Dreamweaver
- FileCatalyst
- Front Page
- FTP
- General Information
- Hosted Exchange & SharePoint
- IIS6
- IIS7
- Juniper Netscreen Firewalls
- Linux
- Bind Multiple IP Addresses to a Single Network Interface Card (NIC)
- Clear Memory Cache on Linux Server
- Set the time on a Linux server
- Check Disk Usage in Linux
- Add Custom SpamAssassin Rules
- Install OSSEC on a Linux server
- Define the Default Document Order for a Shared Linux Server
- Administer a Website Using Webmin
- Use a Redirect Script in PHP
- Upgrade PHP on a Linux Server
- Install phpMyAdmin on a Linux server
- Add a Redirect Script to Your .htaccess File
- Install the Mumble VoIP Server to Redhat or CentOS
- Add PHP Extensions with No Control Panel or Plesk
- How To Update Linux Packages Using Webmin
- Evaluate Disk Usage on Linux Plesk Server
- How to monitor Bandwidth with VNstat
- Bind IPs to a server in Linux
- Using the Htaccess File to Block IP Access
- Using The Htaccess File for PHP Directives
- Search for a file via SSH
- Install Tomcat on a Linux Server
- Install the Railo CFML Server in Linux
- Tuning the Apache Prefork MPM
- Adding FTP Users For VSFTP
- Installing htop
- Enable Apache mod_status
- Evaluate Disk Usage on Linux Cpanel Server
- Locate Newly Created Files in Linux
- Configure Keep Alives on SSH Server in Linux
- Adjusting the Amount of Swap
- How to Disable IPv6 For Redhat and Centos
- Enable and Use the Apache Info Module
- Install NCDU on a Linux Server
- Manage the Qmail queue with qmHandle
- Retaining File Permissions While Using SCP
- How To Compress And Uncompress Files
- Installing Freetds For Linux
- Create Search Engine Friendly URLs with mod_rewrite
- Adding Users To A Usergroup
- Installing Vim
- Use TCP Variable tcp_syncookies to prevent "syn flood attack"
- How To Limit Process CPU Usage
- Install and Configure the Cherokee Web Server on Linux
- Installing Python 3 on CentOS/Redhat 5.x From Source
- Configure Syntax Highlighting in Vim
- Install and Configure the Nginx Web Server on Linux
- Set Hostname
- Using Tmux
- MySQL Slow Query Logging
- Using the Linux Uptime Command
- Using sar to Monitor System Performance
- Compile Software On Linux
- Using the Linux Man Command
- Mounting NFS Shares
- Move and Copy Files within Linux
- Configure NFS Server Shares
- Software Management with RPM and Yum
- Update the Webmin Control Panel
- Viewing Live Bandwidth with iftop
- Using GNU Screen
- Sshwindows
- Sshmac
- Directorystructure
- Errorcheck
- vi Text Editor
- Find Heaviest Email Users of Postfix MTA's Deferred Spool
- Common Rewrite Rules for .htaccess
- Turn on directory listing in Linux
- Redirect non-www URLs to www URLs using a .htaccess file
- Force Visitor Browser to use SSL in Apache
- Apache Error Logging
- Password-less Login Through SSH Linux To Linux
- Log SSH Sessions with Putty
- SSH Server on Alternative Port
- SSH Server as Secure SOCKS Proxy
- Install the PHP Process Manager (php-fpm)
- Configure Apache to Use PHP-FPM
- Configure Nginx to Use PHP-FPM
- Cgiscripts
- Htaccess
- Linux Faq
- Phpmail
- Phpmailer
- Phpsqlinjection
- Phpversion
- Sendmail
- Add a Redirect Script to your Ruby on Rails Application
- Use a CGI PERL Redirect Script
- List Server
- MIVA Merchant
- MySQL
- Patching / Server Updates
- phpMyAdmin
- Plesk
- Policies and Procedures
- Premium Spam Filtering
- Programming
- Ruby on Rails
- Search Engine Submission
- SharePoint 3
- SharePoint 2010
- SiteDesigner
- SmarterMail 3
- SmarterMail 4
- SmarterMail 5
- SmarterMail 6
- SmarterMail 7
- SmarterStats
- SmarterTrack
- SQL Server
- Secure Socket Layer (SSL)
- Uploading Your Website
- Video Tutorials
- Windows Server 2003
- Windows Server 2008
- Web Design
- WordPress
- Advanced Monitoring
- MediaWiki
- Enkompass
- Microsoft Outlook 2010
- Android
- Outlook Web Access
- Critical Availability Service
- NAS Data Transfer
- Customer Portal Demos
- Joomla
- Moodle
- Cloud Dedicated
- Gallery CMS
- phpBB
- Standard Monitoring
- Righteous Restore
- NAS (Network Attached Storage)
- Networking
- SmarterMail 8
- PCI Security Scan
- LinkTiger
- Windows Cloud VPS
- Linux Cloud VPS
- Linux VPS
- Windows VPS
- Hyper V
- ENSIM
- Alert Logic
- Webmin
- e107
- Vbulletin
- VPN
- Visual Vault
- Mozilla Thunderbird
- PyroCMS
- Active Directory
- Vmware Related
- Drupal
Compile Software On Linux
The yum package manager on your Redhat or Centos server is a great tool for installing and updating software and libraries. However, the available software in the default yum repositories can be fairly dated, or not even contain the desired package.
Fairly often, the only viable option to installing a library or program, is to compile from it's source code package.
Installing prerequisites
Before we can begin, we must install some common system tools need for the compile processes:
yum install gcc gcc-c++ automake autoconf cmake expat-devel openssl-devel glibc-devel
These packages should cover the basic requirements for compiling most software. However, you'll likely encounter additional required headers or build utilities.
Use the below command to search for needed dependencies:
yum search package_name
Then install the required package(s) from the returned search results (packages generally required for compiling end in '-devel'):
yum install package
Compile, Configure, Install
Compiling and installation will usually involve these steps:
- Download
- Extract
- Configure
- Build
- Install
Note: The below steps will not always been 100% accurate. Be sure to always refer to the README and/or INSTALL text files provided by the package you are building.
Download
We must retrieve the source code package (most often a .tgz, .tar.gz, .tbz2, or .tar.bz2). Locate the URL to the desired package, copy it, and then use the 'wget' command to retrieve it to your server.
wget http://domain.org/download/package-0.8.tar.gz
Extract
Next, we'll need to extract the source code package:
tar -xzf nginx-0.8.tar.gz
If the package is of the format 'tar.gz' or 'tgz', use the switch '-xzf' with tar. However if the package is in a 'tar.bz2' or 'tbz2' format, use the switch '-xjf'.
Configure
The most crucial step of the compile process, is the configure stage. Contained in package's directory should be a script 'configure', which is execute to scan your system for required dependencies and features.
./configure
You have the ability to customize the feature set and install options with the configure script. For details on available options, issue the command:
./configure --help
Then pass them to the script, for example:
./configure --enable-feature1 --disable-feature2 --with-library=/usr/lib/library
This script will generate the 'Makefile', which is used the build and installation steps.
Build
Once the source has been successfully configured, we'll need to actually compile the source code. Run the following command to do so:
make
This reads the 'Makefile' , which is generated during the configure stage, for instructions on how to compile the software.
Install
The final step, is to issue 'install' to the make command, which will read the Makefile for instruction on how to install the software to your server.
make install
