草庐IT

【Web开发】Ubuntu系统手动搭建Node.js环境

爱看书的小沐 2023-03-28 原文

1、简介

1.1 ubuntu

https://cn.ubuntu.com/download/desktop Ubuntu是一个以桌面应用为主的Linux操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu"一词。

1.2 node.js

https://nodejs.org/en/ Node.js 是一个开源和跨平台的 JavaScript 运行时环境。 它几乎是任何类型项目的流行工具! Node.js 在浏览器之外运行 V8 JavaScript 引擎(Google Chrome 的内核)。 这使得 Node.js 的性能非常好。

2、linux命令

2.1 文件与目录管理

  • ls 列出目录及文件名

  • cd 切换目录

  • pwd
    显示目前的目录

  • mkdir 创建一个新的目录

  • rmdir 删除一个空的目录

  • cp 复制文件或目录

  • rm 删除文件或目录

  • mv 移动文件与目录,或修改文件与目录的名称

2.2 vi/vim

Vim 是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

所有的 Unix Like 系统都会内建 vi 文书编辑器。vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。

基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。

2.3 其他命令

  • source 在当前bash环境下读取并执行FileName中的命令。 *注:该命令通常用命令“.”来替代。
source filename # 中间有空格 . filename

3、安装PuTTY

3.1 下载和安装PuTTY

PuTTY: a free SSH and Telnet client https://www.chiark.greenend.org.uk/~sgtatham/putty/

PuTTY是一个Telnet、SSH、rlogin、纯TCP以及串行接口连接软件。较早的版本仅支持Windows平台,在最近的版本中开始支持各类Unix平台,并打算移植至Mac OS X上。

PuTTY是一款开源(Open Source Software)的连接软件,主要由Simon Tatham维护,使用MIT许可证授权。包含的组件有:PuTTY, PuTTYgen,PSFTP, PuTTYtel, Plink, PSCP, Pageant,默认登录协议是SSH,默认的端口为22。Putty是用来远程连接服务器的,支持SSH、Telnet、Serial等协议的连接。其中最常用的是SSH。用它来远程管理Linux十分好用。

putty的主界面如下:

3.2 上传和下载文件(pscp)

putty是一个开源软件。对于文件或文件夹的上传下载,在Windows下它提供了pscp和psftp两个命令。

平时主要在windows进行代码编写,最后程序需要部署到linux服务器,于是需要两个操作系统之间的上传和下载。

## Windows路径在前,是Windows向Linux上传文件。Linux路径在前,则是Windows向Linux请求下载文件。 pscp [Windows上的路径,可绝对可相对] [Linux用户]@[Linux的IP地址或网络内唯一主机名]:[Linux上存放地址,绝对路径] pscp [Linux用户]@[Linux的IP地址或网络内唯一主机名]:[Linux上存放地址,绝对路径] [Windows上的路径,可绝对可相对] ## pscp后面还可以跟随选项,6个常用选项如下: -p 拷贝文件的时候保留源文件建立的时间。 -q 执行文件拷贝时,不显示任何提示消息。 -r 拷贝整个目录 -v 拷贝文件时,显示提示信息。<br>-sftp 强制使用sftp协议<br>-scp 强制使用scp协议
  • 上传文件到linux服务器
pscp /path/filename username@sever:/path/ pscp d:/test/one_tile.mbtiles ubuntu@192.168.1.110:/home/ubuntu/tomcat/ pscp命令执行过程的截图如下: linux服务器的文件查询截图如下: 但是,由于Linux与Windows编码问题,如果出现汉字名称或文件内容有汉字有乱码,但还可以通过convmv和iconv处理。

  • 上传文件夹到linux服务器 操作和上传文件一样,举例如下。
pscp D:\out2\Data\BlockAA ubuntu@192.168.1.110:/home/ubuntu/tomcat/ pscp命令执行过程的截图如下: linux服务器的文件查询截图如下:

  • 下载文件到本地windows
这里测试下载linux服务器上的一个文件index.js,到本地windows的文件夹D:\out2\。

pscp ubuntu@192.168.1.110:/home/ubuntu/tomcat/index.js D:\out2\ pscp命令执行过程的截图如下: 下载的文件index.js在目标文件夹里截图如下:

4、安装nodejs

<font color=blue>在Linux下安装有两种方式,一个是下载源码make编译安装。 另外一种是比较推荐的,直接下载编译好的二进制,官方比较推荐后者。

4.1 通过二进制文件安装

适用于 MacOS、Linux 和 Windows 的包管理器见如下的网址:

http://nodejs.cn/download/package-manager/

nvm 是一种流行的运行 Node.js 的方式。 例如,它可以轻松地切换 Node.js 版本,也可以安装新版本用以尝试并且当出现问题时轻松地回滚。 这对于使用旧版本的 Node.js 来测试你的代码非常有用。

https://github.com/nodesource/distributions/blob/master/README.md putty.exe命令行界面中输入(从 NodeSource 获得Node.js 二进制发行版):

curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash - putty.exe命令行界面中继续输入(安装nodejs):

sudo apt-get install -y nodejs or sudo apt install nodejs 如果卸载nodejs,则使用如下命令:

## 卸载 nodejs,但是会保留配置文件 sudo apt remove nodejs ## 不想保留配置文件 sudo apt purge nodejs ## 移除和 nodejs 一起安装但是现在没有被使用的包 sudo apt autoremove putty.exe命令行界面中继续输入(获取当前nodejs版本号):

node -v 在当前目录创建主文件 index.js:

vim index.js 按 i 切换至编辑模式,并将以下内容输入 index.js 文件中。

const http = require('http') const hostname = '127.0.0.1' const port = 5902 const server = http.createServer((req, res) => { res.statusCode = 200 res.setHeader('Content-Type', 'text/plain; charset=utf-8') res.end('Hello World,爱看书的小沐!\n') }) server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`) })

按 Esc,输入 :wq 并按 Enter,保存文件并返回。 输入以下命令,运行 Node.js 测试项目:

node index.js 在浏览器中输入网址,显示网页如下:

4.2 通过源代码安装

https://nodejs.org/dist/latest-v17.x/ 执行以下命令,下载 Node.js Linux 64位二进制安装包。

wget https://nodejs.org/dist/latest-v17.x/node-v17.8.0-linux-x64.tar.xz

执行以下命令,解压安装包。

tar xvf node-v17.8.0-linux-x64.tar.xz 依次执行以下命令,创建软链接。

ln -sf /home/ubuntu/tomcat/node-v17.8.0-linux-x64/bin/node /usr/bin/node ln -sf /home/ubuntu/tomcat/node-v17.8.0-linux-x64/bin/npm /usr/bin/npm 成功创建软链接后,即可在云服务器任意目录下使用 node 及 npm 命令。

4.3 使用nvm管理node版本

  • 执行以下命令,安装nvm:
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.4/install.sh | bash or wget -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash

  • 也可以通过git安装最新的nvm程序,如下:
git clone https://github.com/creationix/nvm.git ~/.nvm && cd ~/.nvm source ~/.nvm/nvm.sh 如果关闭终端后再打开,发现nvm没有了,则: 在 ~/.bashrc,~/.profile,or ~/.zshrc 文件内写入source ~/.nvm/nvm.sh.

  • 执行以下命令,配置 NVM 环境变量(这一步可忽略)。
export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm

echo ". ~/.nvm/nvm.sh" >> /etc/profile
  • 查看安装的nvm的版本号
nvm --version

  • 用nvm安装node.js:
nvm install 16.13.1 再使用node -v查看nodejs的当前版本。

node -v

  • 执行以下命令,查看 Node.js 所有版本。
nvm list-remote

  • 执行以下命令,查看已安装的 Node.js 版本。
nvm list or nvm ls

  • 执行以下命令,切换 Node.js 使用版本。
nvm use v15.0.0 nvm use v16.13.1

  • 执行以下命令,显示当前激活的nodejs版本。
nvm current 或 nvm verison

  • nvm 指定默认版本 mac 和linux, ubuntu 使用 nvm use 切换版本只是临时切换,当再新开一个 terminal 时,node版本又是其默认版本,所以我们需要将你使用的node 版本设置成默认版本,这样才永久生效。
nvm alias default 15.0.0

5、安装yarn包管理器

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list

sudo apt update sudo apt install yarn yarn --version

后记

如果你觉得该方法或代码有一点点用处,可以给作者点个赞、赏杯咖啡;╮( ̄▽ ̄)╭ 如果你感觉方法或代码不咋地//(ㄒoㄒ)//,就在评论处留言,作者继续改进。o_O??? 谢谢各位童鞋们啦( ´ ▽´ )ノ ( ´ ▽´)っ!!!

有关【Web开发】Ubuntu系统手动搭建Node.js环境的更多相关文章

  1. ruby - 使用 C 扩展开发 ruby​​gem 时,如何使用 Rspec 在本地进行测试? - 2

    我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当

  2. Ruby Sinatra 配置用于生产和开发 - 2

    我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm

  3. ruby - 是否可以覆盖 gemfile 进行本地开发? - 2

    我们的git存储库中目前有一个Gemfile。但是,有一个gem我只在我的环境中本地使用(我的团队不使用它)。为了使用它,我必须将它添加到我们的Gemfile中,但每次我checkout到我们的master/dev主分支时,由于与跟踪的gemfile冲突,我必须删除它。我想要的是类似Gemfile.local的东西,它将继承从Gemfile导入的gems,但也允许在那里导入新的gems以供使用只有我的机器。此文件将在.gitignore中被忽略。这可能吗? 最佳答案 设置BUNDLE_GEMFILE环境变量:BUNDLE_GEMFI

  4. ruby - 如何在 Ubuntu 中清除 Ruby Phusion Passenger 的缓存? - 2

    我试过重新启动apache,缓存的页面仍然出现,所以一定有一个文件夹在某个地方。我没有“公共(public)/缓存”,那么我还应该查看哪些其他地方?是否有一个URL标志也可以触发此效果? 最佳答案 您需要触摸一个文件才能清除phusion,例如:touch/webapps/mycook/tmp/restart.txt参见docs 关于ruby-如何在Ubuntu中清除RubyPhusionPassenger的缓存?,我们在StackOverflow上找到一个类似的问题:

  5. ruby - 在 Windows 机器上使用 Ruby 进行开发是否会适得其反? - 2

    这似乎非常适得其反,因为太多的gem会在window上破裂。我一直在处理很多mysql和ruby​​-mysqlgem问题(gem本身发生段错误,一个名为UnixSocket的类显然在Windows机器上不能正常工作,等等)。我只是在浪费时间吗?我应该转向不同的脚本语言吗? 最佳答案 我在Windows上使用Ruby的经验很少,但是当我开始使用Ruby时,我是在Windows上,我的总体印象是它不是Windows原生系统。因此,在主要使用Windows多年之后,开始使用Ruby促使我切换回原来的系统Unix,这次是Linux。Rub

  6. ruby-on-rails - 在 Rails 开发环境中为 .ogv 文件设置 Mime 类型 - 2

    我正在玩HTML5视频并且在ERB中有以下片段:mp4视频从在我的开发环境中运行的服务器很好地流式传输到chrome。然而firefox显示带有海报图像的视频播放器,但带有一个大X。问题似乎是mongrel不确定ogv扩展的mime类型,并且只返回text/plain,如curl所示:$curl-Ihttp://0.0.0.0:3000/pr6.ogvHTTP/1.1200OKConnection:closeDate:Mon,19Apr201012:33:50GMTLast-Modified:Sun,18Apr201012:46:07GMTContent-Type:text/plain

  7. 世界前沿3D开发引擎HOOPS全面讲解——集3D数据读取、3D图形渲染、3D数据发布于一体的全新3D应用开发工具 - 2

    无论您是想搭建桌面端、WEB端或者移动端APP应用,HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务。如果您的客户期望有一种在多个平台(桌面/WEB/APP,而且某些客户端是“瘦”客户端)快速、方便地将数据接入到3D应用系统的解决方案,并且当访问数据时,在各个平台上的性能和用户体验保持一致,HOOPSPlatform将帮助您完成。利用HOOPSPlatform,您可以开发在任何环境下的3D基础应用架构。HOOPSPlatform可以帮您打造3D创新型产品,HOOPSSDK包含的技术有:快速且准确的CAD

  8. 电脑0x0000001A蓝屏错误怎么U盘重装系统教学 - 2

      电脑0x0000001A蓝屏错误怎么U盘重装系统教学分享。有用户电脑开机之后遇到了系统蓝屏的情况。系统蓝屏问题很多时候都是系统bug,只有通过重装系统来进行解决。那么蓝屏问题如何通过U盘重装新系统来解决呢?来看看以下的详细操作方法教学吧。  准备工作:  1、U盘一个(尽量使用8G以上的U盘)。  2、一台正常联网可使用的电脑。  3、ghost或ISO系统镜像文件(Win10系统下载_Win10专业版_windows10正式版下载-系统之家)。  4、在本页面下载U盘启动盘制作工具:系统之家U盘启动工具。  U盘启动盘制作步骤:  注意:制作期间,U盘会被格式化,因此U盘中的重要文件请注

  9. 【鸿蒙应用开发系列】- 获取系统设备信息以及版本API兼容调用方式 - 2

    在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList​()Obt

  10. Vscode+Cmake配置并运行opencv环境(Windows和Ubuntu大同小异) - 2

    之前在培训新生的时候,windows环境下配置opencv环境一直教的都是网上主流的vsstudio配置属性表,但是这个似乎对新生来说难度略高(虽然个人觉得完全是他们自己的问题),加之暑假之后对cmake实在是爱不释手,且这样配置确实十分简单(其实都不需要配置),故斗胆妄言vscode下配置CV之法。其实极为简单,图比较多所以很长。如果你看此文还配不好,你应该思考一下是不是自己的问题。闲话少说,直接开始。0.CMkae简介有的人到大二了都不知道cmake是什么,我不说是谁。CMake是一个开源免费并且跨平台的构建工具,可以用简单的语句来描述所有平台的编译过程。它能够根据当前所在平台输出对应的m

随机推荐