linux下编译安装Nodejs

 GCC和G++分别是GNU的C和C++编译器。它们在执行编译工作的时候把源代码通过预处理转化成汇编语言生成.i后缀的文件,再由汇编变成目标机器代码,最后连接目标代码生成可执行程序。就可以在命令行里面通过系统路径来直接调用了。

所以呢要安装Nodejs首先就要先扫平这些环境问题。比Windows上傻瓜式的安装要复杂一些。

我演示用的服务器是托管在登记在DigitalOcean身上的CentOS。其他的linux系统安装也大同小异。

首先我需要查看当前系统的发行版本。CentOS是通过Red Hat社区发布的。

Nodejs源码主要是通过C++代码和JavaScript代码构成的。但是它是通过gyp这个跨平台构建工具管理你的项目源码。gyp是用Python语言写的,因此在安装Nodejs的时候是需要Python 2.6或者是2.7的版本。但是官方并不推荐使用3.0的版本。

有时候你安装失败往往是由于Python的版本太旧或者它在系统中的安装路径不对。

[root@www ~]# cat /etc/redhat-release
CentOS release 6.9 (Final)
You have new mail in /var/spool/mail/root
[root@www ~]# rpm -q gcc rpm -q gcc-c++
gcc-4.4.-.el6.x86_64
rpm-4.8.-.el6.x86_64
gcc-c++-4.4.-.el6.x86_64
[root@www ~]#
[root@www ~]# python -V
Python 2.6.
[root@www node-v9.7.1]# yum -y install gcc gcc-c++ kernel-devel
Loaded plugins: fastestmirror, refresh-packagekit, security
Setting up Install Process
Determining fastest mirrors
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=6&arch=x86_64&repo=os&infra=stock error was
: Timeout on http://mirrorlist.centos.org/?release=6&arch=x86_64&repo=os&infra=stock: (28, 'Operation too slow. Less than 1 bytes/sec transfered the last 30 seconds')
* base: mirrors.aliyun.com
* extras: mirrors..com
* updates: mirrors..com
base | 3.7 kB :
extras | 3.4 kB :
extras/primary_db | kB :
updates | 3.4 kB :
updates/primary_db | 6.4 MB :
Package gcc-4.4.-.el6.x86_64 already installed and latest version
Package gcc-c++-4.4.-.el6.x86_64 already installed and latest version
Resolving Dependencies
--> Running transaction check
---> Package kernel-devel.x86_64 :2.6.-696.20..el6 will be installed
--> Finished Dependency Resolution Dependencies Resolved ================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
kernel-devel x86_64 2.6.-696.20..el6 updates M Transaction Summary
================================================================================
Install Package(s) Total download size: M
Installed size: M
Downloading Packages:
kernel-devel-2.6.-696.20..el6.x86_64.rpm | MB :
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : kernel-devel-2.6.-696.20..el6.x86_64 /
Verifying : kernel-devel-2.6.-696.20..el6.x86_64 / Installed:
kernel-devel.x86_64 :2.6.-696.20..el6 Complete!
[root@www node-v9.7.1]#

https://github.com/nodejs/node

在Nodejs的项目根目录下就能看到一个Makefile文件。

到Nodejs的官网复制一下源码的链接,我们要用源码编译的方式来安装。

https://nodejs.org/en/download/current/

https://nodejs.org/dist/v9.7.1/node-v9.7.1.tar.gz

[root@www ~]# cd /usr/src
[root@www src]# wget https://nodejs.org/dist/v9.7.1/node-v9.7.1.tar.gz
---- ::-- https://nodejs.org/dist/v9.7.1/node-v9.7.1.tar.gz
Resolving nodejs.org... failed: Temporary failure in name resolution.
wget: unable to resolve host address “nodejs.org”
[root@www src]# wget https://nodejs.org/dist/v9.7.1/node-v9.7.1.tar.gz
---- ::-- https://nodejs.org/dist/v9.7.1/node-v9.7.1.tar.gz
Resolving nodejs.org... 104.20.23.46, 104.20.22.46, :cb00:::::172e, ...
Connecting to nodejs.org|104.20.23.46|:... connected.
HTTP request sent, awaiting response... OK
Length: (30M) [application/gzip]
Saving to: “node-v9.7.1.tar.gz” %[======================================>] ,, 385K/s in 79s -- :: ( KB/s) - “node-v9.7.1.tar.gz” saved [/]
[root@www src]# tar -xf node-v9.7.1.tar.gz
[root@www src]# ls
Chrome53_gop_v2017.9.2.7z git-2.5..tar.gz node-v9.7.1
debug kernels node-v9.7.1.tar.gz
git-2.5. lantern-installer--bit.deb
[root@www src]# cd node-v9.7.1.tar.gz
bash: cd: node-v9.7.1.tar.gz: Not a directory
[root@www src]# cd node-v9.7.1
[root@www node-v9.7.1]# ./configure
which: no python2. in (/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin:/usr/local/git/bin:/usr/local/git/bin:/usr/local/git/bin)
WARNING: C++ compiler too old, need g++ 4.9. or clang++ 3.4. (CXX=g++)
creating icu_config.gypi
* Using ICU in deps/icu-small
creating icu_config.gypi
{ 'target_defaults': { 'cflags': [],
'default_configuration': 'Release',
'defines': [],
'include_dirs': [],
'libraries': []},
'variables': { 'asan': ,
'coverage': 'false',
'debug_http2': 'false',
'debug_nghttp2': 'false',
'force_dynamic_crt': ,
'gas_version': '2.20',
'host_arch': 'x64',
'icu_data_in': '../../deps/icu-small/source/data/in/icudt60l.dat',
'icu_endianness': 'l',
'icu_gyp_path': 'tools/icu/icu-generic.gyp',
'icu_locales': 'en,root',
'icu_path': 'deps/icu-small',
'icu_small': 'true',
'icu_ver_major': '',
'llvm_version': ,
'node_byteorder': 'little',
'node_enable_d8': 'false',
'node_enable_v8_vtunejit': 'false',
'node_install_npm': 'true',
'node_module_version': ,
'node_no_browser_globals': 'false',
'node_prefix': '/usr/local',
'node_release_urlbase': '',
'node_shared': 'false',
'node_shared_cares': 'false',
'node_shared_http_parser': 'false',
'node_shared_libuv': 'false',
'node_shared_nghttp2': 'false',
'node_shared_openssl': 'false',
'node_shared_zlib': 'false',
'node_tag': '',
'node_target_type': 'executable',
'node_use_bundled_v8': 'true',
'node_use_dtrace': 'false',
'node_use_etw': 'false',
'node_use_lttng': 'false',
'node_use_openssl': 'true',
'node_use_perfctr': 'false',
'node_use_v8_platform': 'true',
'node_without_node_options': 'false',
'openssl_fips': '',
'openssl_no_asm': ,
'shlib_suffix': 'so.59',
'target_arch': 'x64',
'v8_enable_gdbjit': ,
'v8_enable_i18n_support': ,
'v8_enable_inspector': ,
'v8_no_strict_aliasing': ,
'v8_optimized_debug': ,
'v8_promise_internal_field_count': ,
'v8_random_seed': ,
'v8_trace_maps': ,
'v8_use_snapshot': 'true',
'want_separate_host_toolset': }}
creating config.gypi
creating config.mk
WARNING: warnings were emitted in the configure phase
[root@www node-v9.7.1]#

第2章 安装Nodejs 2-4 Linux下安装Nodejs的更多相关文章

  1. linux下安装使用libuuid(uuid-generate)

    linux下安装使用libuuid(uuid-generate) linux下安装使用libuuid(uuid-generate) UUID简介 安装libuuid库 编写一个程序试一下 代码 编译运 ...

  2. Linux下安装软件命令详解

    ---------------------------------------------------------------- 或许你对于linux还不够了解,但是一旦你步入公司后,你就会发现lin ...

  3. linux下的nodejs安装

      linux下安装nodejs的方式: 1.源码安装 2.nvm安装 这里推荐使用nvm安装,避免下载nodejs源码:   安装步骤: 一.安装git        一般linux系统的git版本 ...

  4. 在windows和Linux下安装nodejs

    在windows下安装nodejs 1.首先下载nodejs安装包,  https://nodejs.org/en/download/ 点击下载相应的版本 然后将文件夹解压到安装目录(任意,不做规定) ...

  5. Linux下安装tar.gz类型的jdk,并配置环境变量

    近期因要学习一门技术,必须在Linux下运行,故开始学习如何使用Linux. 在安装jdk时出现了困难,环境变量配置不成功,花了一天时间才搞定,特分享出来,供大家参考. Linux下安装jdk,步骤如 ...

  6. windows下与linux下安装redis及redis扩展

    1.        Redis的介绍 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起 ...

  7. linux 下配置 nodejs+ionic+cordova

    ionic是目前比较火的hybird框架学的人挺多所以资料会相对全一些. cordova是一个连接ionic和原生android 底层api的工具.(这样说好理解一些,不过可能不够准确.) 用他们的好 ...

  8. Linux下安装webstorm

    Linux下安装webstorm 1--在webstorm官网里面下载最新的版本 WebStorm-11.0.3.tar.gz 2--创建webstorm的安装目录 #mkdir /usr/webst ...

  9. Linux下安装java的jdk和配置环境变量

    每次感觉配这个超级简单 但是每次都要查下 记一下好了 Linux下安装jdk,步骤如下 1:下载jdk包:本章使用的为后缀为tar.gz的文件(不需要安装),如jdk-8u111-linux-x64. ...

  10. Linux下安装scikit-learn

    Linux下安装scikit-learn sudo apt-get install python-pip sudo apt-get install python-pandas python-sympy ...

随机推荐

  1. Centos7 Openstack - (第二节)添加认证服务(Keystone)

    Centos7 install Openstack - (第二节)添加认证服务(Keystone) 我的blog地址:http://www.cnblogs.com/caoguo 根据openstack ...

  2. mysql_数据查询_单表查询

    1.单表查询: 1.1选中表中若干列: SELECT子句的<目标列表达式>可以是表中属性列,也可以是表达式,还可以是字符常量. SELECT Sname,'year of birth:', ...

  3. HDU_Reward_拓扑排序

    Reward Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Subm ...

  4. TCP:三次握手,URG、ACK、PSH、RST、SYN、FIN 含义

    http://blog.csdn.net/wudiyi815/article/details/8505726 TCP:SYN ACK FIN RST PSH URG简析   三次握手Three-way ...

  5. mvc 上传大文件

    <configuration> <system.web> <httpRuntime maxRequestLength="204800" useFull ...

  6. Fedora 和 RedHat 以及 SUSE 中 YUM 工具的使用

    参考博客:https://www.cnblogs.com/good-study/p/9928587.html 一.yum命令概述: 1.简介: yum命令时在Fedora和RedHat以及SUSE中基 ...

  7. 7-13 航空公司VIP客户查询 (25 分)

    题意: 思路: 读完题目之后的第一思路就是用map将客户的id(string类型)与里程road(int类型)形成映射,然后直接用id查找添加里程或输出里程.但是400ms的限制妥妥的超时了.然后意识 ...

  8. LeetCode 712. Minimum ASCII Delete Sum for Two Strings

    Given two strings s1, s2, find the lowest ASCII sum of deleted characters to make two strings equal. ...

  9. Linux 下rm+grep删除除去指定文件的剩余所有文件

    例如:  删除当前文件夹下    .c和 .h    文件以外的文件 rm -f   `ls ./ | egrep -v "(.c$|.h$)"` 1. ls 列出所有文件; 2. ...

  10. hdu_1031_Design T-Shirt_201310291647

    Design T-Shirt Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) T ...