文章目录
  1. 1. 阿里云服务器环境配置
    1. 1.1. 数据盘初始化
  2. 2. 查看系统默认字符编码集
  3. 3. 安装nodejs4.4.3

阿里云服务器环境配置

数据盘初始化

如果在购买ecs服务器时,选择购买了数据盘,则在linux系统登陆进去,执行命令:

fdisk -l 

查看挂载的所有数据盘,注意:

df -hT	//无效,只能看到已经初始化的挂载盘

运行 fdisk -l 命令查看数据盘。
注意:在没有分区和格式化数据盘之前,使用 df -h 命令是无法看到数据盘的。
在下面的示例中,有一个 5 GB 的数据盘需要挂载。
如果执行了 fdisk -l 命令后,没有发现 /dev/xvdb ,则不需要格式化。

image

  • 运行 fdisk /dev/xvdb,对数据盘进行分区。

根据提示,依次输入 n,p,1,两次回车,wq,分区就开始了。

image

  • 运行 fdisk -l 命令,查看新的分区。

新分区 xvdb1 已经创建好。如下面示例中的/dev/xvdb1。

image

  • 运行 mkfs.ext3 /dev/xvdb1,对新分区进行格式化。

格式化所需时间取决于数据盘大小。您也可自主决定选用其他文件格式,如 ext14 等。

image

  • 运行 echo /dev/xvdb1 /mnt ext3 defaults 0 0 >> /etc/fstab 写入新分区信息。

完成后,可以使用 cat /etc/fstab 命令查看。

  • 运行 mount /dev/xvdb1 /mnt 挂载新分区,然后执行 df -h 查看分区。

如果出现数据盘信息,说明挂载成功,可以使用新分区了。

 mount /dev/xvdb1 /mnt
df -h
 Filesystem      Size  Used Avail Use% Mounted on
 /dev/xvda1       40G  1.5G   36G   4% /
 tmpfs           498M     0  498M   0% /dev/shm
 /dev/xvdb1      5.0G  139M  4.6G   3% /mnt
 

查看系统默认字符编码集

echo $LANG 	

安装nodejs4.4.3

下载nodejs源码安装

node.js 的 GitHub 地址是:https://github.com/nodejs/node

官网源码包下载地址时:https://nodejs.org/en/download/

① 获取并编译源码(已经安装了 git)

git clone https://github.com/nodejs/node.git
cd node
git checkout

编译:

./configure
在编译的时候出错了:

提示:WARNING: C++ compiler too old, need g++ 4.8 or clang++ 3.4 (CXX=g++)

提示 C++ 编译器 g++ 版本太老。

解决方案(参考:linux下升级gcc的方法 – 亲测可用,编译安装 gcc 4.9并验证使用):

1.下载gcc最新的源码包 wget http://gcc.skazkaforyou.com/releases/gcc-4.9.1/gcc-4.9.1.tar.gz

2.解压缩 tar -xf gcc-4.9.1.tar.gz

3. cd gcc-4.9.1

4.运行download_prerequisites脚本, ./contrib/download_prerequisites ,这个脚本会自动帮你下载所需要的依赖文件和库	

下载依赖文件和库所花时间比较长,安装完后,再次执行:

./configure

报错:
说检测到你缺失multilib,因为我是64位的系统,编译的时候再加上以下参数就好了:

./configure --disable-multilib

通过后再执行:

make && make install	

妈蛋,这个执行的时间可长了,花了将近1个小时。。。。。

  • 回到node目录,执行make test

报以下错误:

./deps/v8/src/base/platform/mutex.h: At global scope:
../deps/v8/src/base/platform/mutex.h:36: error: variable ‘v8::base::Mutex v8::base::final’ has initializer but incomplete type
../deps/v8/src/base/platform/mutex.h:37: error: expected primary-expression before ‘public’
../deps/v8/src/base/platform/mutex.h:37: error: expected ‘}’ before ‘public’
../deps/v8/src/base/platform/mutex.h:37: error: expected ‘,’ or ‘;’ before ‘public’
../deps/v8/src/base/platform/mutex.h:39: error: expected constructor, destructor, or type conversion before ‘;’ token
../deps/v8/src/base/platform/mutex.h: In function ‘v8::base::NativeHandle& v8::base::native_handle()’:
../deps/v8/src/base/platform/mutex.h:63: error: ‘native_handle_’ was not declared in this scope
../deps/v8/src/base/platform/mutex.h: At global scope:

解决方案:

查看 GLIBCXX 版本:

strings /usr/lib64/libstdc++.so.6 | grep GLIBCX
    

执行:

./configure

报错:

WARNING: failed to autodetect C++ compiler version (CXX=g++)	

解决方案:

yum install gcc gcc-c++ autoconf automake
文章目录
  1. 1. 阿里云服务器环境配置
    1. 1.1. 数据盘初始化
  2. 2. 查看系统默认字符编码集
  3. 3. 安装nodejs4.4.3