第2章 安装Nodejs 2-4 Linux下安装Nodejs
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的更多相关文章
- linux下安装使用libuuid(uuid-generate)
linux下安装使用libuuid(uuid-generate) linux下安装使用libuuid(uuid-generate) UUID简介 安装libuuid库 编写一个程序试一下 代码 编译运 ...
- Linux下安装软件命令详解
---------------------------------------------------------------- 或许你对于linux还不够了解,但是一旦你步入公司后,你就会发现lin ...
- linux下的nodejs安装
linux下安装nodejs的方式: 1.源码安装 2.nvm安装 这里推荐使用nvm安装,避免下载nodejs源码: 安装步骤: 一.安装git 一般linux系统的git版本 ...
- 在windows和Linux下安装nodejs
在windows下安装nodejs 1.首先下载nodejs安装包, https://nodejs.org/en/download/ 点击下载相应的版本 然后将文件夹解压到安装目录(任意,不做规定) ...
- Linux下安装tar.gz类型的jdk,并配置环境变量
近期因要学习一门技术,必须在Linux下运行,故开始学习如何使用Linux. 在安装jdk时出现了困难,环境变量配置不成功,花了一天时间才搞定,特分享出来,供大家参考. Linux下安装jdk,步骤如 ...
- windows下与linux下安装redis及redis扩展
1. Redis的介绍 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起 ...
- linux 下配置 nodejs+ionic+cordova
ionic是目前比较火的hybird框架学的人挺多所以资料会相对全一些. cordova是一个连接ionic和原生android 底层api的工具.(这样说好理解一些,不过可能不够准确.) 用他们的好 ...
- Linux下安装webstorm
Linux下安装webstorm 1--在webstorm官网里面下载最新的版本 WebStorm-11.0.3.tar.gz 2--创建webstorm的安装目录 #mkdir /usr/webst ...
- Linux下安装java的jdk和配置环境变量
每次感觉配这个超级简单 但是每次都要查下 记一下好了 Linux下安装jdk,步骤如下 1:下载jdk包:本章使用的为后缀为tar.gz的文件(不需要安装),如jdk-8u111-linux-x64. ...
- Linux下安装scikit-learn
Linux下安装scikit-learn sudo apt-get install python-pip sudo apt-get install python-pandas python-sympy ...
随机推荐
- 64位windows系统如何显示32位dcom组件配置
在运行栏中输入命令:dcomcnfg,打开组件服务管理窗口,但是却发现找不到Microsoft Excel程序,这主要是64位系统的问题,excel是32位的组件,所以在正常的系统组件服务里是看不到的 ...
- jquery 零碎笔记
toggle使用 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww ...
- dotnetnuke 7.x登录时不跳到站点设置中的指定页
查源码发现登录按钮有参数,点击跳到登录页或者弹窗登录,真正登录后会根据传参的url反回.因为皮肤对像没有相应参数,所以只能去掉参数.我是用js去的,偷个懒吧.如下所示: <script type ...
- POJ_3013_最短路
Big Christmas Tree Time Limit: 3000MS Memory Limit: 131072K Total Submissions: 23630 Accepted: 5 ...
- Sybase_ASA 字符串拼接
列转行并拼接字符串,使用LIST函数 SELECT LIST(T.NAME,',') FROM TAB_DEMO T;
- PAT-day1
1001 害死人不偿命的(3n+1)猜想 (15 分) 卡拉兹(Callatz)猜想: 对任何一个正整数 n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把 ( 3n+1)砍掉一半.这样一直 ...
- js的基础运用
总结: 1.定义:分为隐式定义和显式定义可以先定义后赋值. 2.+:当两边都是数值则运行加法运算,若一遍是字符型则进行拼接. 3.数值变字符:数值变量.toString()方法. 字符变数值:通过加一 ...
- 创建pod索引库(Specs)
专门用来存放xxx.podspec 的索引文件的库就叫做索引库.我们需要将这些索引文件上传到远程索引库才能保证其他的人能够拿来用. 创建一个远程索引库和本地索引库对应起来,步骤如下: 1.登录开源中国 ...
- python 单元测试中处理用例失败的情况
今天有一个需求, 在单元测试失败的时候打印一些日志, 我们管他叫 dosomething 吧 ,反正就是做一些操作 查了下并没有查到相关的方法, 于是研究了一波unittest 的源码 发现了这个东西 ...
- 使用Oracle函数在创建表的时候自动加入生成的流水号 生成格式是:前缀+年月日+00000
CREATE OR REPLACE FUNCTION fn_no_make(v_type VARCHAR2, v_number_col VARCHAR2, v_table_name VARCHAR2) ...