centos编译安装(centos安装gcc命令)

大家好,今天来为大家解答centos编译安装这个问题的一些问题点,包括centos安装gcc命令也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~

centos7怎么编译安装gcc-c++

方法/步骤

1

yum install glibc-static libstdc++-static-y

安装c和c++的静态库(据说如果系统中缺少libc.a和libstdc++.a编译时会出错,但是我没有那么多闲情逸致去试,实践过的朋友可以回复一下,分享一下经验,让大家都长长见识)

2

下载解压gcc,我的gcc目录是gcc-4.8.0

3

进入gcc目录,执行:

./contrib/download_prerequisites

这个神奇的脚本文件会帮我们下载、配置、安装那三个依赖的库。可以节约我们大量的时间和精力。

4

你以为这三个库自动下载了、自动make install了就没事了吗?错!

很多人在编译gcc的时候出现各种奇奇怪怪的错误就是这步没有做好。

它们还不在.so文件的搜索路径里面,需要加进去,最后切记切记一定要执行一下ldconfig。

大致做法为:

1,找到你的共享库文件被install到哪个目录了(updatedb+locate命令)。

2,如果你的库不是直接放在/lib或/usr/lib下,需要修改/etc/ld.so.conf文件,加入你的共享库的路径

3,如果在2中添加了共享库路径,切记要执行一下ldconfig,更新响应cache文件让系统能找到你的共享库。

5

建立临时目录,这个目录用以存放编译时的大量临时文件,是文档要求中必须的。

我是在gcc-4.8.0下建立了一个名为gcc-build-4.8.0的目录,进入它。

mkdir gcc-build-4.8.0

cd gcc-build-4.8.0

配置gcc编译选项

6

强烈建议阅读INSTALL目录下的说明文档,尤其是configure.html,以确定你的编译选项。

比较基本的选项有--enable-languages,说明你要让你的gcc支持那些语言,--disable-multilib不生成编译为其他平台可执行代码的交叉编译器。--disable-checking生成的编译器在编译过程中不做额外检查,也可以使用--enable-checking=xxx来增加一些检查。

网上还说了什么--with-gmp、--with-mpfr、--with-mpc这三个选项,但是如果你3,4步做好了,就不要配了,反之你还是老实点吧别抱侥幸心理了。

调用gcc-4.8.0目录下的configure文件:

例如:

../configure--enable-checking=release--enable-languages=c,c++--disable-multilib

7

执行

../make#不解释

执行编译命令(#在8核的虚拟机上进行编译,每个核分配2个编译任务)

make-j16

make install编译过程CPU核基本100%占用,整个编译用时11分50秒。

检查gcc版本

#你就等吧少年,建议晚上睡觉前做

当然上面三步一定要在前一步顺利结束的情况下进行,如果哪一步出错了,结果都显示error了,就不要再做后面的了。在shell的输出里搜索"error"看具体的出错点是什么,baidu、google一下为什么。

如果你求稳的话,可以在make install之前先make check一下。

CentOS 5.5下如何编译安装新内核

第一步:下载内核

传送门:地址.笔者下载的是3.2.84版本

第二步:解压编译内核

由于我下的是.tar.xz文件,用tar命令不能直接解压。

1.我的系统里不带xz解压软件,先下载xz-5.0.3.tar.bz2文件并解压安装

tar-jvxf xz-5.0.3.tar.bz2 cd/opt/xz-5.0.3#进入解压后的文件夹./configure make make install

2.解压内核

xz-d linux-3.2.84.tar.xz tar-xvf linux-3.2.84.tar

3.如果是第一次编译内核,并没有上次残留的文件可以跳过该步骤(最好仔细看下指令对应的功能)

make mrproper make clean删除大多数的编译生成文件,但是会保留内核的配置文件.config,还有足够的编译支持来建立扩展模块 make mrproper删除所有的编译生成文件,还有内核配置文件,再加上各种备份文件 make distclean mrproper删除的文件,加上编辑备份文件和一些补丁文件。

4.搭建编译内核所需要的环境

yum-y install gcc yum install ncurses ncurses-devel yum install openssl-devel

5.进入内核解压文件夹配置内核参数

由于我是个小白不会选,为了方便,直接用make localmodconfig命令,这个命令是以本来的.config文件为基础去选,可以参考论文:嵌入式linux系统的裁剪优化和测试技术.然后我就一直回车直到结束。然后再输入make menuconfig命令进入图形选择菜单,将kenel hacking中的Sample..选项去掉(具体那一项我忘了,尴尬),退出保存。然后编辑.config文件中的“CONFIG_SYSFS_DEPRECATED”,默认该选项为not set,被注释掉的,将其改为y,即修改为“CONFIG_SYSFS_DEPRECATED=y”,之后可能还要修改,后面再说。

6.编译新内核

make bzImage&& make modules&& make modules_install

7.安装内核

8.编译安装可能出现的情况

应该是没什么问题,不过也不排除会出现下面的情况:make:警告:检测到时钟错误。您的创建可能是不完整的。解决办法:find.-type f-exec touch{} \;重新编译下就好了。

9.处理下img中的东西(我说不清楚==)

1)解压initrd文件

# cp/boot/initrd-3.2.84.img/tmp# cd/tmp/# ls initrd-2.6.30.4.img# mkdir newinitrd# cd newinitrd/# zcat../initrd-2.6.30.4.img| cpio-i

释放之后看到如下内容

# ls bin dev etc init lib proc sbin sys sysroot

2)编辑init,删掉其中重复的四行中的两行 echo“Loading dm-region-hash.ko module” insmod/lib/dm-region-hash.ko echo“Loading dm-region-hash.ko module” insmod/lib/dm-region-hash.ko 3)重新打包initrd

# find.| cpio-c-o>../initrd 11538 blocks# cd..# gzip-9< initrd> initrd.img# ls initrd-2.6.30.4.img initrd initrd.img

这里面的initrd.img就是重新打包后的文件。 4)把initrd.img复制到/boot下命令:#cp initrd.img/boot 5)修改grub.config,在/etc文件夹下把initrd-3.2.84.img改为initrd.img就可以了 6)reboot重启记得选择自己的内核!别错过啦!

以上内容就是小编为大家带来的关于CentOS 5.5下编译安装新内核的方法了,希望可以帮助到大家!

centos系统编译安装nginx+php环境另加独立mysql教程

前端(nginx+php)ip:192.168.10.8

后端(独立mysql)ip:192.168.10.5

软件版本:libiconv-1.14.tar.gz mysql-5.1.63.tar.gz php-5.2.17.tar.gz php-5.2.17-fpm-0.5.14.diff.gz php-5.2.17-max-input-vars.patch

1.先在后端安装mysql

在192.168.10.5上只安装mysql.方法可以去看centos编译安装nginx+php-fpm+mysql里的mysql安装.

2.在前端安装php-fpm nginx和mysql-client

这里只说下安装mysql-client和php的编译安装.

                代码如下   tar zxf mysql-5.1.63.tar.gz cd mysql-5.1.63

./configure--prefix=/usr/local/mysql--without-server           

这里只需要加上--without-server就可以让mysql变成客户端了.

如果出现/bin/rm: cannot remove `libtoolt': No such file or directory,可以去看这篇文章Mysql安装:/bin/rm: cannot remove `libtoolt': No such file or directory.

没有问题后,执行命令:

                代码如下   make make install           

编译php的时候只需要加上--with-mysql=mysql客户端安装目录就可以了.这里我给出编译参数:

                代码如下   ./configure--prefix=/usr/local/php--enable-fastcgi--enable-fpm--with-fpm-log=/var/log/php-fpm.log\

--with-fpm-conf=/etc/php-fpm.conf--with-fpm-pid=/var/run/php-fpm.pid--with-config-file-path=/etc\

--with-config-file-scan-dir=/etc/php.d--with-openssl--with-zlib--enable-bcmath--with-bz2--with-curl\

--enable-ftp--with-gd--enable-gd-native-ttf--with-jpeg-dir--with-png-dir--with-gettext--with-mhash\

--enable-mbstring--with-mcrypt--enable-soap--enable-zip--with-iconv=/usr/local/libiconv\

--with-mysql=/usr/local/mysql--with-mysqli=/usr/local/mysql/bin/mysql_config--without-pear           

nginx的编译没有什么好说的了,我前面centos编译安装nginx+php-fpm+mysql这篇文章里已经有讲过了.

3.进行测试验证

当上面的一切都安装好之后,在后端的mysql里给出远程权限,如下:

                代码如下   GRANT ALL PRIVILEGES ON*.* TO'root'@'%' IDENTIFIED BY'123456';           

然后iptables上只允许192.168.10.8访问mysql端口,其他都拒绝.如:

                代码如下   iptables-A RH-Firewall-1-INPUT-s 192.168.10.8-p tcp-m tcp--dport 3306-j ACCEPT

iptables-A RH-Firewall-1-INPUT-p tcp--dport 3306-j DROP

services iptables save

services iptables restart           

然后在192.168.10.8上进行测试,是否可以远程连上mysql

mysql-h 192.168.10.5-u root-p

如果可以连上,就继续下一步的操作,不能连上的话请检查上面是否有错误的地方.

现在我们加个php页面来测试php是否可以连上mysql,脚本如下:

                代码如下   ?php

$link=mysql_connect("192.168.10.5","root","123456");

if(!$link) echo"bad!";

else echo"ok!";

mysql_close();

?           

成功的话是ok!的输出,失败的话是bad!的输出,我这里是成功的

mysql 5.5.x的只安装客户端.

需要的软件:libiconv-1.14.tar.gz mysql-5.5.25a.tar.gz

1.安装前的准备

安装前的准备,可以去看这篇文章centos编译安装nginx+php-fpm+mysql

2.安装libiconv

                代码如下   ./configure--prefix=/usr/local/libiconv

make make install           

3.只安装mysql客户端

                代码如下   cmake. make mysqlclient libmysql

make install           

这样就只安装了mysql客户端,然后可以输入whereis mysql来查看mysql安装位置.

whereis mysql

好了,可以看到跟yum安装的差不多.

4.安装php

以前mysql是5.1的时候,只需要加上--with-mysql=mysql客户端安装目录就可以了,但在mysql 5.5.x这个参数就要改变下了,下面是php的编译参数:

                代码如下   ./configure--prefix=/usr/local/php--enable-fastcgi--enable-fpm--with-fpm-log=/var/log/php-fpm.log--with-fpm-conf=/etc/php-fpm.conf\

--with-fpm-pid=/var/run/php-fpm.pid--with-config-file-path=/etc--with-config-file-scan-dir=/etc/php.d\

--with-openssl--with-zlib--enable-bcmath--with-bz2--with-curl--enable-ftp\

--with-gd--enable-gd-native-ttf--with-jpeg-dir--with-png-dir--with-gettext--with-mhash\

--enable-mbstring--with-mcrypt--enable-soap--enable-zip--with-iconv=/usr/local/libiconv\

--with-mysql=shared,/usr--with-mysqli=shared,/usr/bin/mysql_config           

大家可以看最后一行,--with-mysql=shared,/usr--with-mysqli=shared,/usr/bin/mysql_config这就是跟以前不同的行.好了,剩下的就不写了

阅读剩余
THE END