1. 程式人生 > >centos 6.5安裝nodejs全記錄

centos 6.5安裝nodejs全記錄

下載node原始碼

cd /usr/local/src
curl https://nodejs.org/dist/v6.11.4/node-v6.11.4.tar.gz -o ./node-v6.11.4.tar.gz
tar -xzvf node-v6.11.4.tar.gz
cd node-v6.11.4

安裝

如果沒安裝python,先安裝python,否則會報錯,如下

./configure --prefix=/usr/local/node/6.11.4
which: no python2.7 in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
:/root/bin) WARNING: failed to autodetect C++ compiler version (CXX=g++) WARNING: failed to autodetect C compiler version (CC=gcc) Node.js configure error: No acceptable C compiler found! Please make sure you have a C compiler installed on your system and/or consider adjusting the CC environment variable if
you installed it in a non-standard prefix.

Linux上安裝Node.js需要安裝Python 2.6 或 2.7 ,不建議安裝Python 3.0以上版本。

安裝python2.7

下載python2.7.14

cd /usr/local/src
curl https://www.python.org/ftp/python/2.7.14/Python-2.7.14.tgz -o python-2.7.14.tgz

setup compilation:

cd python-2.7.14
./configure --prefix=/usr/local
/python/2.7.14 checking build system type... x86_64-pc-linux-gnu checking host system type... x86_64-pc-linux-gnu checking for python2.7... no checking for python3... no checking for python... python checking for --enable-universalsdk... no checking for --with-universal-archs... 32-bit checking MACHDEP... linux2 checking EXTRAPLATDIR... checking for --without-gcc... no checking for --with-icc... no checking for gcc... no checking for cc... no checking for cl.exe... no configure: error: in `/usr/local/src/Python-2.7.14': configure: error: no acceptable C compiler found in $PATH See `config.log' for more details

報錯是因為沒依賴庫,執行下面的命令

yum groupinstall "Development tools"
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel

再次

./configure --prefix=/usr/local/python/2.7.14

編譯:

make

安裝:

make install

建立連結,方便使用:

ln -s /usr/local/python/2.7.14/bin/python2.7 /usr/bin/python
ln -s /usr/local/python/2.7.14/bin/python2.7 /usr/bin/python2
ln -s /usr/local/python/2.7.14/bin/python2.7 /usr/bin/python2.7

檢視版本號

python --version

繼續安裝node

cd /usr/local/src/node-v6.11.4
./configure --prefix=/usr/local/node/6.11.4
yum upgrade gcc-c++
There was a problem importing one of the Python modules
required to run yum. The error leading to this problem was:

   No module named yum

解決方法:

vim /usr/bin/yum
// 首行改為
#!/usr/bin/python2.6

如果出現下面的錯誤

./configure --prefix=/usr/local/node/6.11.4
WARNING: C++ compiler too old, need g++ 4.8 or clang++ 3.4.2 (CXX=g++)
creating ./icu_config.gypi
* Using ICU in deps/icu-small

更換yum源

首先備份/etc/yum.repos.d/CentOS-Base.repo

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
下載對應版本repo檔案, 放入/etc/yum.repos.d/(操作前請做好相應備份)

CentOS7
CentOS6
CentOS5
執行以下命令生成快取

yum clean all
yum makecache
參考
http://mirrors.163.com/.help/centos.html

但是yum上最新版本是gcc-c++-4.4.7-18.el6.x86_64,改為原始碼安裝(gcc需要翻牆,以後補充)
這裡安裝clang++

先安裝cmake

yum install cmake

下載原始碼

curl http://releases.llvm.org/3.4.2/llvm-3.4.2.src.tar.gz -o llvm.tar.gz
curl http://releases.llvm.org/3.4.2/cfe-3.4.2.src.tar.gz -o clang.tar.gz
curl http://releases.llvm.org/3.4/clang-tools-extra-3.4.src.tar.gz -o extra.tar.gz
curl http://releases.llvm.org/3.4/compiler-rt-3.4.src.tar.gz -o compiler-rt.tar.gz

解壓原始碼、整理檔案

tar -zxvf llvm.tar.gz
tar -zxvf clang.tar.gz
tar -zxvf extra.tar.gz
tar -zxvf compiler-rt.tar.gz
mv llvm-3.4.2.src/ llvm
mv cfe-3.4.2.src/ clang
mv compiler-rt-3.4/ compiler-rt
mv clang/ llvm/tools/
mv compiler-rt llvm/projects/  

建立編譯目錄,並切換到build目錄

mkdir build && cd build

編譯

cmake -G "Unix Makefiles" ../llvm
make
make install

工具簡介

clang: C語言編譯器,類似於gcc
clang++: C++編譯器,類似於g++。clang++只是clang的一個別名。
clang-format:按照固定的規範格式化C/C++程式碼,非常智慧。文件請見:http://clang.llvm.org/docs/ClangFormat.html
clang-modernize:把按照C++98標準寫的程式碼,轉成C++11標準的。文件請見:http://clang.llvm.org/extra/ModernizerUsage.html
llvm-as:LLVM 彙編器
llvm-dis: LLVM 反彙編器
opt:LLVM 優化器
llc:LLVM 靜態編譯器
lli:LLVM的位元組碼執行器(某些平臺下支援JIT)
llvm-link:LLVM的位元組碼連結器
llvm-ar:LLVM的靜態庫打包器,類似unix的ar。
llvm-nm:類似於unix的nm
llvm-ranlib:為 llvm-ar 打包的檔案建立索引
llvm-prof:將 ‘llvmprof.out’ raw 資料格式化成人類可讀的報告
llvm-ld :帶有可裝載的執行時優化支援的通用目標聯結器
llvm-config:打印出配置時 LLVM 編譯選項、庫、等等
llvmc:一個通用的可定製的編譯器驅動
llvm-diff:比較兩個模組的結構
bugpoint:自動案例測試減速器
llvm-extract:從 LLVM 位元組程式碼檔案中解壓出一個函式
llvm-bcanalyzer:位元組程式碼分析器 (分析二進位制編碼本身,而不是它代表的程式)
FileCheck:靈活的檔案驗證器,廣泛的被測試工具利用
tblgen:目標描述閱讀器和生成器
lit:LLVM 整合測試器,用於執行測試

參考: