开发环境——基于RHEL 6.8开发环境的搭建

    本文讲述了基于RHEL 6.8操作系统搭建开发环境,主要安装了GCC 4.9.3Qt 5.7Apache 2.4.25MySQL 5.6.35。本文同时适用于在Linux主机无互联网环境下搭建开发环境,只需要将所需安装包下载后拷贝到Linux主机即可。

一、RHEL6.8安装

1、RHEL 6.8下载

下载RHEL 6.8安装包:rhel-server-6.8-x86_64-dvd.iso

2RHEL 6.8安装

安装过程中选择Development Tools安装包,安装GCC编译环境。也可以在建立RHEL 6.8本地仓库后使用命令行进行安装,命令行安装如下:

    yum groupinstall "Development Tools"

二、yum源更换

1、删除RHELyum

A、查看RHEL 6.8版本自带的yum

        rpm -qa|grep yum

RHEL 6.8版本的yum包如下:

    PackageKit-yum-0.5.8-26.el6.x86_64

    yum-3.2.29-73.el6.noarch

    PackageKit-yum-plugin-0.5.8-26.el6.x86_64

    yum-metadata-parser-1.1.2-16.el6.x86_64

    yum-utils-1.1.30-37.el6.noarch

    yum-rhn-plugin-0.9.1-60.el6.noarch

    yum-plugin-security-1.1.30-37.el6.noarch

B强制删除RHEL 6.8版本的yum

    rpm -qa|grep yum|xargs rpm -e --nodeps

2、下载CentOS yum安装包

CentOS yum包下载地址http://mirrors.163.com/centos/

        wget http://mirrors.163.com/centos/6/os/x86_64/Packages/python-iniparse-0.3.1-2.1.el6.noarch.rpm
    wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-3.2.29-73.el6.centos.noarch.rpm
    wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-metadata-parser-1.1.2-16.el6.x86_64.rpm
    wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.30-37.el6.noarch.rpm

3、安装CentOS yum

安装CentOS yum包命令如下:

    rpm -ivh python-iniparse-0.3.1-2.1.el6.noarch.rpm
    rpm -ivh yum-metadata-parser-1.1.2-16.el6.x86_64.rpm
    rpm -ivh yum-3.2.29-73.el6.centos.noarch.rpm yum-plugin-fastestmirror-1.1.30-37.el6.noarch.rpm

或使用

    rpm -ivh yum-metadata-parser-1.1.2-16.el6.x86_64.rpm yum-3.2.29-73.el6.centos.noarch.rpm yum-plugin-fastestmirror-1.1.30-37.el6.noarch.rpm --force --nodeps

4、修改yum源配置文件

新建CentOS6-Base-163.repo文件,内容如下:

# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client. You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#

[base]
name=CentOS-6 - Base - 163.com
baseurl=http://mirrors.163.com/centos/6/os/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=6&arch=$basearch&repo=os
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6
#released updates
[updates]
name=CentOS-6 - Updates - 163.com
baseurl=http://mirrors.163.com/centos/6/updates/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=6&arch=$basearch&repo=updates
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6
#additional packages that may be useful
[extras]
name=CentOS-6 - Extras - 163.com
baseurl=http://mirrors.163.com/centos/6/extras/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=6&arch=$basearch&repo=extras
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-6 - Plus - 163.com
baseurl=http://mirrors.163.com/centos/6/centosplus/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=6&arch=$basearch&repo=centosplus
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6
#contrib - packages by Centos Users
[contrib]
name=CentOS-6 - Contrib - 163.com
baseurl=http://mirrors.163.com/centos/6/contrib/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=6&arch=$basearch&repo=contrib
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6

将其他的redhat.reporhel-media.repo备份为.bak文件

清楚缓存:yum clean all

加载缓存:yum makecache

更新软件:yum update

5、启用yum缓存

修改yum配置文件/etc/yum.conf

[main]

cachedir=/var/cache/yum/$basearch/$releasever

keepcache=1

debuglevel=2

logfile=/var/log/yum.log

exactarch=1

obsoletes=1

gpgcheck=1

plugins=1

installonly_limit=5

    默认情况下,yum会在成功下载和安装软件包后删除文件,打开缓存可以保存软件包在/var/cache/yum目录下

    默认情况下,yum/var/cache/yum/目录保存临时文件,每个仓库都有自己的子目录。仓库目录中packages/录包含了缓存的件包。例如目录/var/cache/yum/development/packages/包含从 development仓库下载的软件包。

    要在没有网络的情况下执行yum,只要启用了缓存,就可以用 -C选项。yum就不会检查网络上的仓库,只使用缓存。在这个模式中,yum只能安装已下载并缓存的软件包。

    要在没有网络连接的时候搜索软件包tsclient,输入命令:

    su -c 'yum -C list tsclient'

    /var/cache/yum/目录下的所有文件包目录复制到另一台机子下的相同目录执行
yum -C update

yum -C install <软件包名>

6、设置CentOS本地源

A、建立本地仓库目录

mkdir yum-local

B、挂载CentOS 6.8镜像

mount /dev/sr0/media

C、拷贝CentOS 6.8到本地仓库yum-local目录

cp -rf/media/*/yum-local/

D、配置yum仓库

vim /etc/yum.repos.d/CentOS6-Base-163.repo

修改内容为:

[base]

name=RHEL-6.8

baseurl=file:///yum-local/

gpgcheck=1

enabled=1

gpgkey=file:///yum-local/RPM-GPG-KEY-redhat-release

E、清理yum缓存

yum clean all

F、刷新yum缓存

yum makecache

三、GCC安装

1GCC开发环境安装

    确保RHEL 6.8安装了gccg++。安装系统时选择安装Development Tools软件包即可。

        yum groupinstall "Development Tools"

2GCC及编译支持插件下载

GCC 4.9.3下载:

wget http://ftp.gnu.org/gnu/gcc/gcc-4.9.3/gcc-4.9.3.tar.gz

GCC编译支持插件下载:

#Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+
wget http://www.multiprecision.org/mpc/download/mpc-0.9.tar.gz
wget http://ftp.gnu.org/gnu/gmp/gmp-5.0.1.tar.gz
wget http://ftp.gnu.org/gnu/mpfr/mpfr-3.1.0.tar.gz

3GMP插件安装

解压GMP,命令如下:

tar -zxvf gmp-5.0.1.tar.gz

进入gmp-5.0.1目录进行编译配置,命令如下:

./configure --prefix=/usr/local/gmp-5.0.1

编译,命令如下:

make

安装,命令如下:

make install

4MPFR插件安装

解压MPFR,命令如下:

tar -zxvf mpfr-3.1.0.tar.gz

进入mpfr-3.1.0目录进行编译配置,命令如下:

    ./configure --prefix=/usr/local/mpfr-3.1.0 --with-gmp=/usr/local/gmp-5.0.1

编译,命令如下:

make

安装,命令如下:

make install

5MPC插件安装

解压MPC,命令如下:

tar -zxvf mpc-0.9.tar.gz

进入mpc-0.9目录进行编译配置,命令如下:

    configure --prefix=/usr/local/mpc-0.9 --with-gmp=/usr/local/gmp-5.0.1 --with-mpfr=/usr/local/mpfr-3.1.0

编译,命令如下:

make

安装,命令如下:

make install

6、设置链接

    在/etc/profile文件末尾加上,

    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc-0.9/lib:/usr/local/gmp-5.0.1/lib:/usr/local/mpfr-3.1.0/lib

    修改后运行source/etc/profile使其生效

7GCC安装

解压GCC,命令如下:

tar -zxvf gcc-4.9.3.tar.gz

进入gcc-4.9.3目录进行编译配置,命令如下:

    configure --prefix=/usr/local/gcc-4.9.3  --with-mpc=/usr/local/mpc-0.9 --with-gmp=/usr/local/gmp-5.0.1 --with-mpfr=/usr/local/mpfr-3.1.0 --disable-multilib --enable-languages=c,c++ --enable-threads=posix --disable-checking

编译,命令如下:

make

安装,命令如下:

make install

8、更新GCC版本

进入gcc目录

cd /usr/bin

将原GCC版本重命名

mv gcc gcc-4.4.7

建立GCC新链接

ln -s /usr/local/gcc-4.9.3/bin/gcc /usr/bin/gcc

G++版本重命名

mv g++ g++-4.4.7

建立G++新链接

ln -s /usr/local/gcc-4.9.3/bin/g++ /usr/bin/g++

GCC版本查看

gcc -v

g++ -v

四、QT5.7安装

1QT 5.7下载

下载linux版本Qt 5.7安装包:qt-opensource-linux-x64-5.7.0.run

Qt 5.7要求GCC 4.9.1以上版本支持。

2QT5.7安装

更改Qt 5.7安装包可执行权限

chmod 777 qt-opensource-linux-x64-5.7.0.run

安装Qt 5.7安装包

./qt-opensource-linux-x64-5.7.0.run

3、OpenGL库安装

RHEL 6.8安装包内含OpenGL安装软件包,使用本地RHEL 6.8仓库安装命令如下:

yum install mesa-libGL-devel mesa-libGLU-devel

yum install freeglut-devel

4、环境变量设置

/etc/profile文件添加如下内容

QTDIR=/opt/Qt5.7.0/Tools/QtCreator

PATH=$QTDIR/bin:$PATH

MANPATH=$QTDIR/man:$MANPATH

LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

export QTDIR MANPATH PATH LD_LIBRARY_PATH

更新环境变量

source /etc/profile

5、运行测试

直接在命令行运行qtcreator打开Qt,创建工程,通过编译测试。

6Qt MySQL驱动安装

安装好MySQL数据库后

五、MySQL安装

1、MySQL下载

MySQL版本的选择

MySQL Community Server 社区版本,开源免费,但不提供官方技术支持。
MySQL Enterprise Edition 企业版本,需付费,可以试用30天。
MySQL Cluster 集群版,开源免费。可将几个MySQL Server封装成一个Server
MySQL Cluster CGE 高级集群版,需付费。
MySQL WorkbenchGUITOOL)一款专为MySQL设计的ER/数据库建模工具是著名的数据库设计工具DBDesigner4的继任者。MySQLWorkbench又分为两个版本,分别是社区版(MySQL Workbench OSS)、商用版(MySQL WorkbenchSE)。

本文选择MySQL Community Server 5.6.35

下载网址:

https://dev.mysql.com/downloads/mysql/5.6.html#downloads

操作系统选择:

Red Hat Enterprise Linux/ Oracle Linux

操作系统版本选择:

Red Hat Enterprise Linux 6 / Oracle Linux 6 (x86, 64-bit)

下载MySQL捆绑包:

MySQL-5.6.35-1.el6.x86_64.rpm-bundle.tar

MySQL捆绑包包含七个部分:

RHEL兼容包MySQL-shared-compat-5.6.35-1.el6.x86_64.rpm

MySQL服务端程序MySQL-server-5.6.35-1.el6.x86_64.rpm

MySQL客户端程序MySQL-client-5.6.35-1.el6.x86_64.rpm

MySQL开发库:MySQL-devel-5.6.35-1.el6.x86_64.rpm

MySQL共享库MySQL-shared-5.6.35-1.el6.x86_64.rpm

嵌入式版本:MySQL-embedded-5.6.35-1.el6.x86_64.rpm

测试组件:MySQL-test-5.6.35-1.el6.x86_64.rpm

2、卸载低版本MySQL

查看RHEL 6.8安装的MySQL版本:

rpm -qa|grep mysql

卸载低版本MySQL

rpm -e mysql-libs-5.1.73-7.el6.x86_64 --nodeps

3、安装MySQL

解包MySQL捆绑包:

tar -xvf MySQL-5.6.35-1.el6.x86_64.rpm-bundle.tar

A、安装RHEL兼容包

rpm -ivh MySQL-shared-compat-5.6.35-1.el6.x86_64.rpm

B、安装MySQL共享库

rpm -ivh MySQL-shared-5.6.35-1.el6.x86_64.rpm

C、安装MySQL服务端程序

rpm -ivh MySQL-server-5.6.35-1.el6.x86_64.rpm

D、安装MySQL客户端程序

rpm -ivh MySQL-client-5.6.35-1.el6.x86_64.rpm

E、安装MySQL开发库

rpm -ivh MySQL-devel-5.6.35-1.el6.x86_64.rpm

4、MySQL配置

拷贝MySQL配置文件到/etc目录

cp /usr/share/mysql/my-default.cnf /etc/mysql.conf

修改/etc/mysql.conf如下:

[client]

password = 123456

port = 3306

default-character-set=utf8

[mysqld]

port = 3306

character_set_server=utf8

character_set_client=utf8

collation-server=utf8_general_ci

lower_case_table_names=1

##设置最大连接数,默认为 151MySQL服务器允许的最大连接数16384

max_connections=1000

[mysql]

default-character-set = utf8

初始化MySQL数据库:

/usr/bin/mysql_install_db

5、管理密码修改

获取安装时随机管理密码

cat /root/.mysql_secret

# The random password set for the root user at Sun Apr  2 00:52:59 2017 (local time): MwgPucEp8gMz0e20

重设root密码

mysql -u root -p

提示输入密码后输入随机管理密码,进入mysql

执行SQL语句设置管理密码

SET PASSWORD FOR 'root'@'localhost'=PASSWORD('123456');

退出mysql

6、设置开机启动MySQL

chkconfig mysql on

查看

chkconfig --list | grep mysql

7、MySQL默认安装目录说明

/var/lib/mysql/   #数据库目录

/usr/share/mysql  #配置文件目录

/usr/bin          #相关命令目录

/etc/init.d/mysql #启动脚本     

六、Apache模块编译环境搭建

1、Apache版本下载

官方网址:http://httpd.apache.org/

下载源码:httpd-2.4.25.tar.gz

编译支持工具:apr-1.5.2.tar.gzapr-util-1.5.4.tar.gz

2、低版本Apache卸载

A、查询安装版本

rpm -qa | grep httd

B、卸载低版本apache

rpm -e --nodeps httpd-tools-2.2.15-53.el6.x86_64

rpm -e --nodeps httpd-2.2.15-53.el6.x86_64

3、Apache编译插件安装

Aapr安装

解压apr压缩包:

tar -zxvf apr-1.5.2.tar.gz

编译配置:

./configure --prefix=/usr/local/apr

编译

Make

安装

make install

Bapr-util安装

解压apr-util压缩包:

tar -zxvf apr-util-1.5.4.tar.gz

编译配置:

./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

编译

make

安装

make install

Cpcre-devel安装

yum install pcre-devel

RHEL 6.8仓库支持

Dopenssl安装

yum install openssl-devel

RHEL 6.8仓库支持

4apache安装

A、解包

tar -zxvf httpd-2.4.25.tar.gz

B、编译配置

./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable-ssl --enable-cgi --enable-cgid --enable-modules=most --enable-mods-shared=most --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-mpms-shared=all --with-mpm=event

选项说明:

--sysconfdir=/etc/httpd:指定配置文件安装位置

--enable-so:支持动态共享模块如果没有这个模块PHP将无法与apache结合工作

--enable-ssl:启用支持ssl

--enable-cgi:支持cgi

--enable-rewrite:支持URL重写

 --with-zlib:压缩库,在互联网上传播时可节约带宽

--with-apr=/usr/local/apr:指定apr路径

--with-apr-util=/usr/local/apr-util:指定apr-util路径

--enable-mpms-shared=all :支持多道处理模块

--with-mpm=event:设定默认的模块

C、编译

make

D、安装

make install

E、修改配置

 

配置文件为/etc/httpd/httpd.conf

F、重启Apache服务器

/usr/local/apache/bin/apachectl start

GApache主要文件

/etc/httpd/httpd.conf配置文件
/usr/local/apache/modules/扩展模块
/usr/local/apache/logs/apache默认的log
/usr/local/apache/htdocsapache默认的首页所在目录

5apxs编译apache模块

    apxs是一个为Apache HTTP服务器编译和安装扩展模块的工具,用于编译一个或多个源程序或目标代码文件为动态共享对象,使之可以用由mod_so提供的LoadModule指令在运行时加载到Apache服务器中。

ln -s /usr/local/apache/bin/apxs     /usr/local/bin/apxs

模块编译和安装

apxs -iac mod_concatx.c

查看已经加载的模块:

 httpd -M

Apxs使用选项如下:

-n modname

    它明确设置了-i(install)-g (template generation)选项的模块名称。 对-g选项,它是必须的; 对-i选项,apxs工具会按文件名判断至少是推测出这个模块名称。

-q

    查询某种apxs设置的信息。 query参数可以是下列一个或多个字串:CC, CFLAGS, CFLAGS_SHLIB, INCLUDEDIR, LD_SHLIB, LDFLAGS_SHLIB, LIBEXECDIR, LIBS_SHLIB, SBINDIR, SYSCONFDIR, TARGET.这个参数用于手动查询某些设置。比如,要手动处理ApacheC头文件,可以在Makefile中使用

-g

    此选项生成一个名为name的子目录(见选项-n)和其中的两个文件: 一个是名为mod_name.c的样板模块源程序, 可以用作建立你自己的模块的模板,或是学习使用apxs机制的良好开端; 另一个则是对应的Makefile,用于编译和安装此模块。

-c

    此选项表示需要执行编译操作。 它首先会编译C源程序(.c)files为对应的目标代码文件(.o), 然后,连接这些目标代码和files中其余的目标代码文件(.o and .a), 以生成动态共享对象dsofile。如果没有指定-o选项, 则此输出文件名由files中的第一个文件名推测得到, 所以,缺省时,它一般会是mod_name.so

-i

    此选项表示需要执行安装操作, 以安装一个或多个动态共享对象到服务器的modules目录中。

-a

    此选项自动在httpd.conf文件中增加一个LoadModule行,以激活此模块,或者,如果此行已经存在,则启用之。

-A

    与-a选项类似,但是它增加的LoadModule指令由一个井号前缀(#), 即,此模块已经准备就绪,但尚处于禁用状态。

-e

    此选项表示需要执行编辑操作,它可以与-a-A选项配合使用, 与-i操作类似,修改Apachehttpd.conf配置文件,但是并不安装此模块。