<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[刘新修]]></title> 
<link>http://pic1.liuxinxiu.com:80/index.php</link> 
<description><![CDATA[刘新修的个人博客 (Liuxinxiu'S Blog)]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[刘新修]]></copyright>
<item>
<link>http://pic1.liuxinxiu.com:80/gcc_upgrade_nodeJs_install/</link>
<title><![CDATA[gcc-4.4.7升级至gcc-5.3.0 后编译安装node-v4.5.0]]></title> 
<author>刘新修 &lt;admin@yourname.com&gt;</author>
<category><![CDATA[NodeJs平台]]></category>
<pubDate>Fri, 02 Sep 2016 07:19:14 +0000</pubDate> 
<guid>http://pic1.liuxinxiu.com:80/gcc_upgrade_nodeJs_install/</guid> 
<description>
<![CDATA[ 
	<p><span style="color: rgb(0, 0, 255);"> yum -y install gcc gcc-c++</span></p><div>&nbsp;</div><div>因centOS6.6/+ 最高版本的gcc也只到4.4.7版本,只好手动升级一下了。</div><div>&nbsp;</div><div>.tar.gz&nbsp;&nbsp;&nbsp;&nbsp;格式解压为&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tar&nbsp;&nbsp; -zxvf&nbsp;&nbsp; xx.tar.gz</div><div>.tar.bz2&nbsp;&nbsp; 格式解压为&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tar&nbsp;&nbsp; -jxvf&nbsp;&nbsp;&nbsp;&nbsp;xx.tar.bz2</div><div>&nbsp;</div><div>下载gcc-4.8.2源码:</div><div>wget ftp://gcc.gnu.org/pub/gcc/releases/gcc-4.8.2/gcc-4.8.2.tar.bz2</div><div>wget ftp://gcc.gnu.org/pub/gcc/releases/gcc-4.9.1/gcc-4.9.1.tar.gz</div><div>tar jxvf gcc-4.8.2.tar.bz2</div><div>&nbsp;</div><div>执行自动下载依赖(gmp-4.3.2、mpfr-2.4.2、mpc-0.8.1)</div><div>/home/installSoft/gcc-4.8.2/contrib/download_prerequisites</div><div>&nbsp;</div><div>或者自己下载也行(根据gcc-4.8自动匹配好的版本收集比较兼容)：</div><div>wget ftp://gcc.gnu.org/pub/gcc/infrastructure/gmp-4.3.2.tar.bz2</div><div>wget ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-2.4.2.tar.bz2</div><div>wget ftp://gcc.gnu.org/pub/gcc/infrastructure/mpc-0.8.1.tar.gz</div><div>&nbsp;</div><div>&nbsp;</div><div>=====================================================================================</div><div>第一部分安装gcc的依赖库</div><div>=====================================================================================</div><div>&nbsp;</div><div>gcc 编译需要三个额外库gmp、mpfr、mpc，下载并按照下面的顺序安装它们，如下:</div><div>wget ftp://ftp.gnu.org/gnu/gmp/gmp-5.1.3.tar.gz</div><div>wget ftp://ftp.gnu.org/gnu/mpfr/mpfr-3.1.2.tar.gz</div><div>wget http://www.multiprecision.org/mpc/download/mpc-1.0.tar.gz</div><div>&nbsp;</div><div>&nbsp;</div><div>tar -zxvf gmp-5.1.3.tar.gz</div><div>cd gmp-5.1.3</div><div>./configure --prefix=/usr/local/gmp-5.1.3</div><div>make &amp;&amp; make install</div><div>cd ..</div><div>&nbsp;</div><div>tar -zxvf mpfr-3.1.2.tar.gz</div><div>cd mpfr-3.1.2</div><div>./configure --prefix=/usr/local/mpfr-3.1.2 --with-gmp=/usr/local/gmp-5.1.3</div><div>make &amp;&amp; make install</div><div>cd ..</div><div>&nbsp;</div><div>tar -zxvf mpc-1.0.tar.gz</div><div>cd mpc-1.0</div><div>./configure --prefix=/usr/local/mpc-1.0 --with-gmp=/usr/local/gmp-5.1.3 --with-mpfr=/usr/local/mpfr-3.1.2</div><div>make &amp;&amp; make install</div><div>cd ..</div><div>&nbsp;</div><div>&nbsp;</div><div>=====================================================================================</div><div>第二部分安装gcc</div><div>=====================================================================================</div><div>&nbsp;</div><div>wget http://ftp.gnu.org/gnu/gcc/gcc-5.3.0/gcc-5.3.0.tar.gz</div><div>cd gcc-build-5.3.0</div><div>../configure --prefix=/usr/local/gcc -enable-threads=posix -disable-checking -disable-multilib -enable-languages=c,c++ --with-gmp=/usr/local/gmp-5.1.3 --with-mpfr=/usr/local/mpfr-3.1.2 --with-mpc=/usr/local/mpc-1.0</div><div>make</div><div>make install</div><div>&nbsp;</div><div>执行以下看看装好没有：</div><div>/usr/local/gcc/bin/gcc -v</div><div>gcc version 4.8.2 (GCC)</div><div>&nbsp;</div><div>&nbsp;</div><div>卸载旧版本</div><div>yum remove -y gcc gcc-c++</div><div>updatedb</div><div>&nbsp;</div><div>&nbsp;</div><div>链接新版本</div><div>cd /usr/bin</div><div>ln -s /usr/local/gcc/bin/gcc gcc</div><div>ln -s /usr/local/gcc/bin/g++ g++</div><div>&nbsp;</div><div>&nbsp;</div><div>检查版本</div><div>gcc -v</div><div>g++ -v</div><div>&nbsp;</div><div>=====================================================================================</div><div>第三部分安装nodeJs</div><div>=====================================================================================</div><div>&nbsp;</div><div>1、NodeJS下载</div><div>https://nodejs.org/en/download/</div><div>[root@test1 packages]# wget https://nodejs.org/dist/v4.5.0/node-v4.5.0.tar.gz</div><div>&nbsp;</div><div>2、解压安装</div><div>tar -zxvf node-v4.5.0.tar.gz</div><div>cd node-v4.5.0</div><div>./configure --prefix=/usr/local/nodejs</div><div>make</div><div>make install</div><div>&nbsp;</div><div>=============================================</div><div>如果configure默认安装路径node复制到bin下：</div><div>cp /usr/local/bin/node /usr/sbin/</div><div>&nbsp;</div><div>如果configure指定安装路径node复制到bin下：</div><div>/usr/local/nodejs/bin/node -v</div><div>cp /usr/local/nodejs/bin/node /usr/sbin/</div><div>==============================================</div><div>&nbsp;</div><div>安装nodeJS时候报：CC: command not found 是因为gcc升级后，同时也删除了cc标签链接至gcc的命令，cc是unix下的产物，linux下的cc就是gcc</div><div>&nbsp;</div><div>链接cc至gcc[库]一般放在/usr/bin</div><div>ln -s /usr/bin/gcc /usr/bin/cc</div><div>&nbsp;</div><div>[系统短命令]一般放在/usr/sbin</div><div>cp /usr/local/nodejs/bin/node /usr/sbin/</div><div>&nbsp;</div><div>&nbsp;</div><div>安装完成，查看node版本号:</div><div>[root@Hongkong node-v4.5.0]# node -v</div><div>v4.5.0</div><div>[root@Hongkong node-v4.5.0]#</div><div>&nbsp;</div><div>&nbsp;</div><div>=====================================================================================</div><div>&nbsp;</div><div>依次编译安装下载的依赖包(好像已经自动解压了)：</div><div>cd /home/installSoft/gcc-4.8.2/contrib/gmp</div><div>mkdir build</div><div>cd build</div><div>../configure</div><div>sudo make</div><div>sudo make install</div><div>&nbsp;</div><div>cd /home/installSoft/gcc-4.8.2/contrib/mpfr</div><div>mkdir build</div><div>cd build</div><div>../configure --prefix=/usr/local/gcc/mpfr-2.4.2 --with-gmp=/usr/local/gcc/gmp-4.3.2</div><div>sudo make</div><div>sudo make install</div><div>&nbsp;</div><div>cd /home/installSoft/gcc-4.8.2/contrib/mpc</div><div>mkdir build</div><div>cd build</div><div>../configure --prefix=/usr/local/gcc/mpc-0.8.1 --with-mpfr=/usr/local/gcc/mpfr-2.4.2 --with-gmp=/usr/local/gcc/gmp-4.3.2</div><div>sudo make</div><div>sudo make install</div><div>&nbsp;</div><div>&nbsp;</div><div>删除原先的目录：</div><div>rm -rf /usr/local/gcc</div><div>&nbsp;</div><div>编译安装gcc4.8.2</div><div>&nbsp;</div><div>cd /home/installSoft/gcc-4.8.2/</div><div>mkdir build</div><div>../configure --prefix=/usr/local/gcc --enable-threads=posix --disable-checking --enable-languages=c,c++ --disable-multilib --with-gmp=/usr/local/gcc/gmp-4.3.2 --with-mpfr=/usr/local/gcc/mpfr-2.4.2 --with-mpc=/usr/local/gcc/mpc-0.8.1</div><div>sudo make</div><div>sudo make install</div><div>&nbsp;</div><div>&nbsp;</div><div>../configure --prefix=/usr/local/gcc --enable-checking=release --enable-languages=c,c++ --disable-multilib</div><div>&nbsp;</div><div>如果make出现configure: error: cannot compute suffix of object files: cannot compile</div><div>原来如此，接下来把mpc ,gmp,mpfr 的lib文件夹果断加入到 LD_LIBRARY_PATH 变量</div><div>注意此处的三个lib，根据你所安装的路径来设置：</div><div>&nbsp;</div><div>export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/gcc/mpc-0.8.1/lib:/usr/local/gcc/gmp-4.3.2/lib:/usr/local/gcc/mpfr-2.4.2/lib</div><div>&nbsp;</div><div>&nbsp;</div><div>&nbsp;</div><div>/home/installSoft/node-v4.5.0/out/Release/mksnapshot: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by /home/installSoft/node-v4.5.0/out/Release/mksnapshot)</div><div>strings /usr/lib64/libstdc++.so.6 &#124; grep GLIBCXX</div><div>&nbsp;</div><div>查看 GLIBCXX 版本：</div><div>[root@Hongkong node-v4.5.0]# strings /usr/lib64/libstdc++.so.6 &#124; grep GLIBCXX</div><div>GLIBCXX_3.4</div><div>GLIBCXX_3.4.1</div><div>GLIBCXX_3.4.2</div><div>GLIBCXX_3.4.3</div><div>GLIBCXX_3.4.4</div><div>GLIBCXX_3.4.5</div><div>GLIBCXX_3.4.6</div><div>GLIBCXX_3.4.7</div><div>GLIBCXX_3.4.8</div><div>GLIBCXX_3.4.9</div><div>GLIBCXX_3.4.10</div><div>GLIBCXX_3.4.11</div><div>GLIBCXX_3.4.12</div><div>GLIBCXX_3.4.13</div><div>GLIBCXX_FORCE_NEW</div><div>GLIBCXX_DEBUG_MESSAGE_LENGTH</div><div>[root@Hongkong node-v4.5.0]#</div><div>&nbsp;</div><div>这里并没有查看到: GLIBCXX_3.4.15</div><div>&nbsp;</div><div>&nbsp;</div><div>执行以下命令，查找编译 gcc 时生成的最新动态库：</div><div>find / -name &quot;libstdc++.so.6&quot;</div><div>&nbsp;</div><div>[root@Hongkong node-v4.5.0]# find / -name &quot;libstdc++.so.6&quot;</div><div>/home/installSoft/gcc-4.8.2/build/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6</div><div>/home/installSoft/gcc-4.8.2/build/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6</div><div>/home/installSoft/gcc-4.8.2/build/prev-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6</div><div>/usr/lib64/libstdc++.so.6</div><div>/usr/local/gcc/lib64/libstdc++.so.6</div><div>[root@Hongkong node-v4.5.0]#</div><div>&nbsp;</div><div>取第一条：</div><div>/home/installSoft/gcc-4.8.2/build/stage1-i686-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(32位&#124;其他)</div><div>/home/installSoft/gcc-4.8.2/build/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6&nbsp;&nbsp; (64位&#124;本例)</div><div>&nbsp;</div><div>&nbsp;</div><div>将上面的最新动态库 libstdc++.so.6 复制到 /usr/lib&nbsp;&nbsp; 目录下(32位)：</div><div>将上面的最新动态库 libstdc++.so.6 复制到 /usr/lib64 目录下(64位)：</div><div>&nbsp;</div><div>在64位系统下复制文件重新覆盖，出现?请输入y</div><div>cp /home/installSoft/gcc-4.8.2/build/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6 /usr/lib64</div><div>cp /home/installSoft/gcc-4.8.2/build/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6 /usr/lib64</div><div>cp /ftp/gcc-5.3.0/gcc-build-5.3.0/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6 /usr/lib64</div><div>&nbsp;</div><div>复制后，修改系统默认动态库的指向，即：重建默认库的软连接。</div><div>&nbsp;</div><div>cp /ftp/gcc-5.3.0/gcc-build-5.3.0/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.21 /usr/lib64</div><div>&nbsp;</div><div>切换工作目录至/usr/lib64：</div><div>cd /usr/lib64</div><div>&nbsp;</div><div>删除原来软连接:</div><div>rm -rf libstdc++.so.6</div><div>&nbsp;</div><div>将默认库的软连接指向最新动态库：</div><div>ln -s libstdc++.so.6.0.21 libstdc++.so.6</div><div>&nbsp;</div><div>完成后再次执行：</div><div>[root@Hongkong node-v4.5.0]# strings /usr/lib64/libstdc++.so.6 &#124; grep GLIBCXX</div><div>GLIBCXX_3.4</div><div>GLIBCXX_3.4.1</div><div>GLIBCXX_3.4.2</div><div>GLIBCXX_3.4.3</div><div>GLIBCXX_3.4.4</div><div>GLIBCXX_3.4.5</div><div>GLIBCXX_3.4.6</div><div>GLIBCXX_3.4.7</div><div>GLIBCXX_3.4.8</div><div>GLIBCXX_3.4.9</div><div>GLIBCXX_3.4.10</div><div>GLIBCXX_3.4.11</div><div>GLIBCXX_3.4.12</div><div>GLIBCXX_3.4.13</div><div>GLIBCXX_3.4.14</div><div>GLIBCXX_3.4.15</div><div>GLIBCXX_3.4.16</div><div>GLIBCXX_3.4.17</div><div>GLIBCXX_3.4.18</div><div>GLIBCXX_3.4.19</div><div>GLIBCXX_FORCE_NEW</div><div>GLIBCXX_DEBUG_MESSAGE_LENGTH</div><div>[root@Hongkong node-v4.5.0]#</div><div>&nbsp;</div><div>这里已经查看到: GLIBCXX_3.4.15</div><div>&nbsp;</div><div>&nbsp;</div><div>添加共享库路径，su到root编辑ld.so.conf文件，添加如下内容到文件中：</div><div>vi /etc/ld.so.conf</div><div>/usr/local/gcc/mpc-0.8.1/lib</div><div>/usr/local/gcc/gmp-4.3.2/lib</div><div>/usr/local/gcc/mpfr-2.4.2/lib</div><div>&nbsp;</div><div>&nbsp;</div><div>/usr/local/gmp-5.1.3/lib</div><div>/usr/local/mpfr-3.1.2/lib</div><div>/usr/local/mpc-1.0/lib</div><div>&nbsp;</div><div>&nbsp;</div><div>保存退出，执行ldconfig命令</div><div>&nbsp;</div><div>&nbsp;</div><div>&nbsp;</div><div>执行以下看看装好没有：</div><div>/usr/local/gcc/bin/gcc -v</div><div>gcc version 4.8.2 (GCC)</div><div>&nbsp;</div><div>&nbsp;</div><div>卸载旧版本</div><div>yum remove -y gcc gcc-c++</div><div>updatedb</div><div>&nbsp;</div><div>&nbsp;</div><div>链接新版本</div><div>cd /usr/bin</div><div>ln -s /usr/local/gcc/bin/gcc gcc</div><div>ln -s /usr/local/gcc/bin/g++ g++</div><div>&nbsp;</div><div>&nbsp;</div><div>检查版本</div><div>gcc -v</div><br/>Tags - <a href="http://pic1.liuxinxiu.com:80/tags/gcc/" rel="tag">gcc</a> , <a href="http://pic1.liuxinxiu.com:80/tags/node/" rel="tag">node</a>
]]>
</description>
</item><item>
<link>http://pic1.liuxinxiu.com:80/gcc_upgrade_nodeJs_install/#blogcomment</link>
<title><![CDATA[[评论] gcc-4.4.7升级至gcc-5.3.0 后编译安装node-v4.5.0]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://pic1.liuxinxiu.com:80/gcc_upgrade_nodeJs_install/#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>