<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>centos &#8211; LPC影子技术分享</title>
	<atom:link href="https://www.mudbest.com/tag/centos/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.mudbest.com</link>
	<description>行影不离,忘之却步.</description>
	<lastBuildDate>Wed, 13 Sep 2017 02:18:45 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.2</generator>
	<item>
		<title>Centos升级gcc4.4.7升级gcc4.8手记</title>
		<link>https://www.mudbest.com/centos%e5%8d%87%e7%ba%a7gcc4-4-7%e5%8d%87%e7%ba%a7gcc4-8%e6%89%8b%e8%ae%b0/</link>
					<comments>https://www.mudbest.com/centos%e5%8d%87%e7%ba%a7gcc4-4-7%e5%8d%87%e7%ba%a7gcc4-8%e6%89%8b%e8%ae%b0/#comments</comments>
		
		<dc:creator><![CDATA[hkshadow]]></dc:creator>
		<pubDate>Sat, 23 Aug 2014 17:25:20 +0000</pubDate>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[gcc]]></category>
		<guid isPermaLink="false">http://www.mudbest.com/?p=2100</guid>

					<description><![CDATA[出于需求系统自带的是gcc4.4.7，版本太低无法编译，被逼无奈只能升级gcc了，碰到很多坑，下载这个玩意就用 ... <a title="Centos升级gcc4.4.7升级gcc4.8手记" class="read-more" href="https://www.mudbest.com/centos%e5%8d%87%e7%ba%a7gcc4-4-7%e5%8d%87%e7%ba%a7gcc4-8%e6%89%8b%e8%ae%b0/" aria-label="阅读 Centos升级gcc4.4.7升级gcc4.8手记">阅读更多</a>]]></description>
										<content:encoded><![CDATA[<p>出于需求系统自带的是gcc4.4.7，版本太低无法编译，被逼无奈只能升级gcc了，碰到很多坑，下载这个玩意就用了不少时间。<span id="more-2100"></span></p>
<pre class="brush: bash; title: ; notranslate">
&#x5B;root@VM_222_92_centos ~]# gcc -v
Using built-in specs.
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
Thread model: posix
gcc version 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC) 
</pre>
<p>1.下载源码包</p>
<pre class="brush: bash; title: ; notranslate">
wget http: //ftp.gnu.org/gnu/gcc/gcc-4.8.0/gcc-4.8.0.tar.bz2
tar -jxvf  gcc-4.8.0.tar.bz2
</pre>
<p>2.下载编译所需依赖库</p>
<pre class="brush: bash; title: ; notranslate">
cd gcc-4.8.0
./contrib/download_prerequisites
cd ..
</pre>
<p>3.建立编译输出目录</p>
<pre class="brush: bash; title: ; notranslate">
mkdir gcc-build-4.8.0
</pre>
<p>4.进入此目录，执行以下命令，生成makefile文件</p>
<pre class="brush: bash; title: ; notranslate">
cd  gcc-build-4.8.0
../gcc-4.8.0/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
</pre>
<p>5.编译</p>
<pre class="brush: bash; title: ; notranslate">
# j 后面的是核心数，编译速度会比较快
make -j4
</pre>
<p>6.安装</p>
<pre class="brush: bash; title: ; notranslate">
sudo make install
</pre>
<p>7.切换GCC到新版<br />
确定新安装的GCC的路径,一般默认在/usr/local/bin下。可以先updatedb,然后locate gcc-4.8|tail找一下</p>
<pre class="brush: bash; title: ; notranslate">
ls /usr/local/bin | grep gcc
</pre>
<p>添加新GCC到可选项，倒数第三个是名字，倒数第二个参数为新GCC路径，最后一个参数40为优先级，设大一些之后就自动使用新版了 </p>
<pre class="brush: bash; title: ; notranslate">
update-alternatives --install /usr/bin/gcc gcc /usr/local/bin/i686-pc-linux-gnu-gcc 40 
</pre>
<p>8.确认当前版本已经切换为新版(重新连接shell生效).</p>
<pre class="brush: bash; title: ; notranslate">
gcc -v
</pre>
<p><img fetchpriority="high" decoding="async" src="http://www.mudbest.com/wp-content/uploads/2014/08/71-610x83.jpg" alt="7" width="610" height="83" class="alignnone size-medium wp-image-2107" srcset="https://www.mudbest.com/wp-content/uploads/2014/08/71-610x83.jpg 610w, https://www.mudbest.com/wp-content/uploads/2014/08/71.jpg 906w" sizes="(max-width: 610px) 100vw, 610px" /></p>
<p>近次make的时候提示下面的问题。</p>
<pre class="brush: bash; title: ; notranslate">
../driver: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.18' not found (required by ../driver)
../driver: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by ../driver)
</pre>
<p>这是因为虽然升级了GCC，生成的动态库没有替换老版本gcc的动态库。</p>
<p>解决方法：</p>
<pre class="brush: bash; title: ; notranslate">
cp /usr/local/lib64/libstdc++.so.6.0.18 /usr/lib64/
rm -f libstdc++.so.6
ln -s libstdc++.so.6.0.18 libstdc++.so.6
</pre>
<p>这里fluffos编译时的环境为libevent-2.1.so.6，为了能直接使用上，需要对应安装。</p>
<p>OK，检查一下</p>
<pre class="brush: bash; title: ; notranslate">
&#x5B;root@iZ237sml740Z ~]# strings /usr/lib64/libstdc++.so.6|grep GLIBCXX
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH
</pre>
<p>至此，已完成了GCC相关的安装&#038;设置，20170722补充。</p>
<p>现在来说下坑吧，以上的步骤完全不需要画蛇添足，几个步骤不多不少，我之前对第二步进行单独的make,make check，结果悲剧了，各种报错。碰到第二坑就是磁盘问题，上面说系统盘只有8G，编译过程中就报了磁盘不足，刚刚发现这个新服务器的数据盘没有挂载。</p>
<p><strong>挂在部分：</strong></p>
<p>1、查看数据盘<br />
在没有分区和格式化数据盘之前，使用 “df –h”命令，是无法看到数据盘的，可以使用“fdisk -l”命令查看。如下图：<br />
<img decoding="async" src="http://www.mudbest.com/wp-content/uploads/2014/08/1-610x268.png" alt="1" width="610" height="268" class="alignnone size-medium wp-image-2101" srcset="https://www.mudbest.com/wp-content/uploads/2014/08/1-610x268.png 610w, https://www.mudbest.com/wp-content/uploads/2014/08/1.png 627w" sizes="(max-width: 610px) 100vw, 610px" /><br />
友情提示：若您执行fdisk -l命令，发现没有 /dev/xvdb 标明您的云服务无数据盘，那么您无需进行挂载，此时该教程对您不适用</p>
<p>2、 对数据盘进行分区<br />
<img decoding="async" src="http://www.mudbest.com/wp-content/uploads/2014/08/2-580x430.png" alt="2" width="580" height="430" class="alignnone size-medium wp-image-2102" srcset="https://www.mudbest.com/wp-content/uploads/2014/08/2-580x430.png 580w, https://www.mudbest.com/wp-content/uploads/2014/08/2.png 672w" sizes="(max-width: 580px) 100vw, 580px" /><br />
执行“fdisk /dev/xvdb”命令，对数据盘进行分区；根据提示，依次输入“n”，“p”“1”，两次回车，“wq”，分区就开始了，很快就会完成。</p>
<p>3、 查看新的分区<br />
使用“fdisk -l”命令可以看到，新的分区xvdb1已经建立完成了。<br />
<img loading="lazy" decoding="async" src="http://www.mudbest.com/wp-content/uploads/2014/08/3-610x262.png" alt="3" width="610" height="262" class="alignnone size-medium wp-image-2103" srcset="https://www.mudbest.com/wp-content/uploads/2014/08/3-610x262.png 610w, https://www.mudbest.com/wp-content/uploads/2014/08/3.png 614w" sizes="auto, (max-width: 610px) 100vw, 610px" /></p>
<p>4、格式化新分区<br />
使用“mkfs.ext3 /dev/xvdb1”命令对新分区进行格式化，格式化的时间根据硬盘大小有所不同。<br />
<img loading="lazy" decoding="async" src="http://www.mudbest.com/wp-content/uploads/2014/08/4-610x350.png" alt="4" width="610" height="350" class="alignnone size-medium wp-image-2104" srcset="https://www.mudbest.com/wp-content/uploads/2014/08/4-610x350.png 610w, https://www.mudbest.com/wp-content/uploads/2014/08/4.png 643w" sizes="auto, (max-width: 610px) 100vw, 610px" /></p>
<p>5、添加分区信息</p>
<p>使用“echo &#8216;/dev/xvdb1 /mnt ext3 defaults 0 0&#8217; >> /etc/fstab”命令写入新分区信息。<br />
然后使用“cat /etc/fstab”命令查看，出现以下信息就表示写入成功。<br />
<img loading="lazy" decoding="async" src="http://www.mudbest.com/wp-content/uploads/2014/08/5-610x129.png" alt="5" width="610" height="129" class="alignnone size-medium wp-image-2105" srcset="https://www.mudbest.com/wp-content/uploads/2014/08/5-610x129.png 610w, https://www.mudbest.com/wp-content/uploads/2014/08/5.png 624w" sizes="auto, (max-width: 610px) 100vw, 610px" /></p>
<p>6、挂载新分区<br />
使用“mount -a”命令挂载新分区，然后用“df -h”命令查看，出现以下信息就说明挂载成功，可以开始使用新的分区了。<br />
<img loading="lazy" decoding="async" src="http://www.mudbest.com/wp-content/uploads/2014/08/6-610x113.png" alt="6" width="610" height="113" class="alignnone size-medium wp-image-2106" srcset="https://www.mudbest.com/wp-content/uploads/2014/08/6-610x113.png 610w, https://www.mudbest.com/wp-content/uploads/2014/08/6.png 624w" sizes="auto, (max-width: 610px) 100vw, 610px" /></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.mudbest.com/centos%e5%8d%87%e7%ba%a7gcc4-4-7%e5%8d%87%e7%ba%a7gcc4-8%e6%89%8b%e8%ae%b0/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
	</channel>
</rss>
