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 整合測試器,用於執行測試