开发环境——基于RHEL 6.8开发环境的搭建
本文讲述了基于RHEL 6.8操作系统搭建开发环境,主要安装了GCC 4.9.3、Qt 5.7、Apache 2.4.25、MySQL 5.6.35。本文同时适用于在Linux主机无互联网环境下搭建开发环境,只需要将所需安装包下载后拷贝到Linux主机即可。
一、RHEL6.8安装
1、RHEL 6.8下载
下载RHEL 6.8安装包:rhel-server-6.8-x86_64-dvd.iso
2、RHEL 6.8安装
安装过程中选择Development Tools安装包,安装GCC编译环境。也可以在建立RHEL 6.8本地仓库后使用命令行进行安装,命令行安装如下:
yum groupinstall "Development Tools"
二、yum源更换
1、删除RHEL原yum源
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.repo、rhel-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安装
1、GCC开发环境安装
确保RHEL 6.8安装了gcc、g++。安装系统时选择安装Development Tools软件包即可。
yum groupinstall "Development Tools"
2、GCC及编译支持插件下载
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
3、GMP插件安装
解压GMP,命令如下:
tar -zxvf gmp-5.0.1.tar.gz
进入gmp-5.0.1目录进行编译配置,命令如下:
./configure --prefix=/usr/local/gmp-5.0.1
编译,命令如下:
make
安装,命令如下:
make install
4、MPFR插件安装
解压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
5、MPC插件安装
解压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使其生效
7、GCC安装
解压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安装
1、QT 5.7下载
下载linux版本Qt 5.7安装包:qt-opensource-linux-x64-5.7.0.run
Qt 5.7要求GCC 4.9.1以上版本支持。
2、QT5.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,创建工程,通过编译测试。
6、Qt MySQL驱动安装
安装好MySQL数据库后
五、MySQL安装
1、MySQL下载
MySQL版本的选择
MySQL Community Server 社区版本,开源免费,但不提供官方技术支持。
MySQL Enterprise Edition 企业版本,需付费,可以试用30天。
MySQL Cluster 集群版,开源免费。可将几个MySQL Server封装成一个Server。
MySQL Cluster CGE 高级集群版,需付费。
MySQL Workbench(GUITOOL)一款专为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
##设置最大连接数,默认为 151,MySQL服务器允许的最大连接数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.gz、apr-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编译插件安装
A、apr安装
解压apr压缩包:
tar -zxvf apr-1.5.2.tar.gz
编译配置:
./configure --prefix=/usr/local/apr
编译
Make
安装
make install
B、apr-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
C、pcre-devel安装
yum install pcre-devel
RHEL 6.8仓库支持
D、openssl安装
yum install openssl-devel
RHEL 6.8仓库支持
4、apache安装
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
G、Apache主要文件
/etc/httpd/httpd.conf配置文件
/usr/local/apache/modules/扩展模块
/usr/local/apache/logs/apache默认的log
/usr/local/apache/htdocsapache默认的首页所在目录
5、apxs编译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.这个参数用于手动查询某些设置。比如,要手动处理Apache的C头文件,可以在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操作类似,修改Apache的httpd.conf配置文件,但是并不安装此模块。