Mar 14

NodeJS兴起后,前端开发要多懂点Linux,要有更多Linux的思想。

是为了学习WEB前端开发,不是为了学习运维,所以可以简化,模拟个能通过远程terminal使用bash,通过git/svn/ftp管理文件的开发环境就行。想进一步学习,网上也有许多Linux运维教程。

推荐用CentOS,RHEL事多,比如yum是付费服务,想不花钱,还得换成CentOS的yum,何必呢。

推荐国内安装源镜像。http://mirrors.aliyun.com/ http://mirrors.163.com/ https://mirrors.ustc.edu.cn

CentOS 7.2.1511的下载地址,将来有新的,请用新版。 http://mirrors.aliyun.com/centos/7.2.1511/isos/x86_64/

用最新版的vmware或virtualbox创建虚拟机装CentOS7/RHEL7系统。如果VM中找不到最新版系统选项,可以选Linux打头的数字最大的那项,如果要用GUI Shell,内存要1G以上,硬盘只要不选立即分配空间,可以给个百八十G的。

其实吧,VM软件装系统一路按推荐操作就行,系统安装开始记得跳过Test media,安装界面一定要选上Basic Web Server和Development Tools,输入超级管理员的名字和密码,其他无所谓,没有特别需要,网卡IP可以使用选自动,不建议选中文,选GUI,创建普通用户。

装完重启进入系统后,开始配置网卡,要能上网才能进行后面的。

CentOS7/RHEL7网卡命名方式从eth0,1,2的方式变成了enoXXXXX的格式。en代表的是enthernet(以太网),o代表的是onboard(内置),那一串数字是主板的某种索引编号自动生成,以便保证其唯一性。说明:默认安装好之后是没有自动开启网络连接的!

修改配置自动启动网络连接。

vi /etc/sysconfig/network-script/ifcfg-eno #用ip addr或者Ifconfig命令查到的编号

或者:

cd /etc/sysconfig/network-script/

ll #能看到ifcfg-eno打头的网卡配置文件

vi ifcfg-en #按tab键就可以自动补全名字,如果有多个网卡,则要再多打点字

找到onboot=no,改为onboot=yes

CentOS7/RHEL7要查看、启动、停止、重启、启用或者禁用系统服务,要使用systemctl来代替旧的service命令。注:为了向后兼容,旧的service命令在CentOS 7中仍然可用,它会重定向所有命令到新的systemctl工具。

systemctl restart network.service

CentOS7/RHEL7使用了firewalld代替了原来的iptables,我们要在主机访问客户机系统的web服务,还有git/svn/ftp等跟防火墙有关,配置麻烦,为了学习方便直接关掉就行。
查看防火墙状态:

systemctl status firewalld.service

关闭防火墙:

systemctl stop firewalld.service

关闭开机启动:

systemctl disable firewalld.service

后面可以用Xshell之类的远程终端登录服务器进行操作了。用网卡IP和管理员名字密码登录。

Xshell之类终端模拟器都支持256色。

tput colors
echo $TERM

不过输入上面的命令,如果是8和xterm,则需要修改.bashrc文件。在根目录输入下面命令。

vim .bashrc

在最后加入下面语句并保存退出。

if [ -e /usr/share/terminfo/x/xterm-256color ]; then
     export TERM='xterm-256color'
else
     export TERM-'xterm-color'
fi

然后用source .bashrc生效。

source .bashrc

再看tput colors和echo $TERM应该是256和xterm-256color了。如果系统默认没有xterm-256color类型,则用yum install ncurses
拷贝一份vim配置到root用户根目录,并添加 set t_Co=256 保存。

cp /etc/vimrc /.vimrc
vim /.vimrc

如果装的RHEL系统,它的yum是付费服务,没有授权不能通过yum在线下载更新软件,需要更换成CentOS yum。

删除RHEL原有的yum

rpm -aq|grep yum|xargs rpm -e --nodeps

输入yum回车,如果提示-bash: yum: command not found这说明删除成功。

国内镜像站都可以下载安装包,下面用的阿里云,可以换成其他,根据安装的RHEL版本,选择对应的版本号文件夹,具体软件安装包的版本号也可能会不同。python那个如果选择了基本网页服务器和开发工具,不用再下载安装了。yum和yum-plugin-fastestmirror两个一起安装先后顺序不要乱,第一个装完显示50%,最后一个装完显示100%。

wget http://mirrors.aliyun.com/centos/7.2.1511/os/x86_64/Packages/python-iniparse-0.4-9.el7.noarch.rpm
wget http://mirrors.aliyun.com/centos/7.2.1511/os/x86_64/Packages/yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
wget http://mirrors.aliyun.com/centos/7.2.1511/os/x86_64/Packages/yum-3.4.3-132.el7.centos.0.1.noarch.rpm
wget http://mirrors.aliyun.com/centos/7.2.1511/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.31-34.el7.noarch.rpm

rpm -ivh python-iniparse-0.4-9.el7.noarch.rpm
rpm -ivh yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
rpm -ivh yum-3.4.3-132.el7.centos.0.1.noarch.rpm yum-plugin-fastestmirror-1.1.31-34.el7.noarch.rpm

RHEL的CentOS yum这就装好了。

开始把yum里的下载地址换成国内镜像源地址,参考阿里云的http://mirrors.aliyun.com/help/centos

如果yum makecache命令执行出现错误,要修改CentOS-Base.repo文件的变量$releasever,所有$releasever替换成镜像下载地址的版本号,比如这里是7.2.1511 。如果觉得在终端里用vim替换麻烦,可以在PC改好后拷贝粘贴进去,配置改好后,再重新yum clean all && yum makecache。

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all && yum makecache

vim /etc/yum.repos.d/CentOS-Base.repo #如果yum makecache命令执行出现错误,需要这一步,再重新yum clean all && yum makecache

yum的源替换完成,开始倒腾EPEL源。先安装EPEL,然后和前面替换yum源步骤一样。参考阿里云的 http://mirrors.aliyun.com/help/epel

yum install epel-release
mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup
mv /etc/yum.repos.d/epel-testing.repo /etc/yum.repos.d/epel-testing.repo.backup
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-5.repo
yum clean all && yum makecache

最后升级所有包

yum update

用阿里云的tnvm https://github.com/aliyun-node/tnvm 安装管理nodejs版本。 如果遇到 ssl 证书问题, 尝试wget加上选项–no-check-certificate

wget -O- https://raw.githubusercontent.com/aliyun-node/tnvm/master/install.sh | bash

如果安装成功,却提示找不到tnvm,重启就可以了。

查看node版本

tnvm ls-remote node

安装

tnvm install node-v4.4.0

安装成功后,要确定使用它

tnvm use node-v4.4.0

因为我们这恶劣的网络环境,用npm安装之类的,最好有稳定高速代理,没有就只能想其他办法了。以后如果遇到安装失败,再安装前请运行下面命令:

npm cache clean

npm的提速方案:

使用 nrm 来管理npm的registry。

npm install -g nrm --registry=https://registry.npm.taobao.org/

或者

使用smart-npm
# 先将系统的 npm 备份到 npm-original

ln -s $(npm root -g)/npm/bin/npm-cli.js $(dirname $(which npm))/npm-original
npm install --global smart-npm --registry=https://registry.npm.taobao.org/

如果觉得npm安装太慢可以换pnpmied

它们的比较可以读appleboy的提升 npm install 安裝速度

弄好后,记得运行npm update -g 升级所有模块。

tldr是一个简洁明了版的Linux commands manual,一般情况可以替代那个恐怖的man。

node版 Installing

npm install -g tldr

If you have trouble with the post-install script, try the following commands 如果安装出错,换下面命令,—ignore-scripts 长选项,跳过安装脚本错误 :

npm install -g --ignore-scripts tldr
tldr --update

创建一个学习开发工作目录

mkdir -p workspace/node-webapp

cd workspace/node-webapp

vim server.js

写入以下代码:

var http = require("http");

http.createServer(function(request, response) {
  response.writeHead(200, {"Content-Type": "text/plain"});
  response.write("Hello World");
  response.end();
}).listen(8888);

保存文件

node server.js

开个新终端

curl http://localhost:8888/ 

会返回Hello World

在主机浏览器访问,请用http://网卡ip:8888/ ,就可以在浏览器页面看到Hello World

written by panhezeng \\ tags: , ,

Leave a Reply