当前位置: 首页 > news >正文

NVM安装管理node.js版本(简单易懂)

一、前言

1.1 简介

NVM(Node Version Manager)是 node.js 的版本管理器,用 shell 脚本切换机器中不同版本的 nodejs。

Nodejs为什么需要多个版本?

有经验的开发者可能遇到过,某个依赖包明确nodejs是某个版本,或者不高于某个版本才能工作。例如将npm项目打包exe可执行文件时,打包工具pkg因为没有适配node20版本,只能按要求切换到node18版本使用。这时候如果没有版本管理器,自己得重新下载安装对应nodejs版本。而有些nodejs原生addons插件开发者,甚至需要在32位和64为版本之间切换,光是这些环境配置的问题就让人头疼。

NVM能自动切换不同版本的nodejs使用,还提供了不同版本的下载和安装,就能很方便简化以上的这些工作。有用过python的朋友可能知道,NVM的作用和conda一样,都是机器上管理多个版本解释器环境的工具。

1.2 前置知识

本文需要掌握配置环境变量,假如你已经掌握可以跳过本小节。

环境变量是操作系统正常运行需要的参数,具体起什么作用这和具体的环境变量相关。例如环境变量中配置了系统安装目录、临时文件夹目录等。

进入环境变量设置方法

  • 方法1:控制面板->系统和安全->系统->高级系统设置->环境变量按钮
  • 方法2:桌面“计算机”鼠标右键属性 -> 高级系统设置 -> 环境变量按钮
  • 方法3:Windows10/11,搜索关键词“环境变量”从“编辑系统环境变量” -> 环境变量按钮
  • 方法4:终端执行“/SystemPropertiesAdvanced”程序 -> 环境变量按钮

创建环境变量

环境变量中分为用户变量和系统变量两部分,用户变量只作用于当前用户,系统变量作用于所有用户,本文需要设置的是“系统变量”。

创建环境变量时,点击“新建”按钮,输入变量名和变量值确定。程序通常会用变量名读取变量值,在环境变量中用 %变量名% 读取值,例如 %A% 表示用A的值。

Path环境变量

Path是关键的环境变量,它的值包含多个目录路径,这些路径会被终端程序(cmd/powershell)用来查找执行程序。实际上查找执行程序的路径不只有path的路径,包含以下这些路径:

  • 当前工作路径
  • path环境变量
  • windir环境变量(windows系统安装目录)
  • system32目录

Cmd用命令 echo %path% 或者powershell用命令 echo $env:path ,就能看到可用的路径。许多第三方程序需要在终端执行,会把程序所在目录路径添加到path中,例如java、python、node等程序。

二、NVM工作原理

先说结论,NVM用一个软链接实现nodejs版本切换。切换版本时,NVM用 NVM_SYMLINK 环境变量的值创建的软链接,指向要切换版本nodejs安装目录路径,终端中执行node程序时,从软链接找到 node.exe 程序执行。在操作系统中,访问软链接都会被重定向到软链接指向的真实路径。

NVM_SYMLINK 需要我们配置在环境变量中,它的值就是软链接的路径,例如值是 D:\nvm\node ,NVM用该值创建软链接,这意味着软链接名总是 D:\nvm\node

NVM 切换 18.20.4 版本时,创建名为 D:\nvm\node 软链接,它的值是 D:\nvm\v18.20.4 ,软链接指向它的值的目录,或者说 D:\nvm\nodeD:\nvm\v18.20.4 的软链接。

拓展知识

软链接是计算机文件系统的符号链接,可以理解为Windows文件系统的快捷方式,作用是用来指向某个目录或文件实体。例如访问A,如果A是B的软链接,那么访问的是B;如果A是C的软链接,那么访问的是C。

软链接和快捷方式的区别是,快捷方式是.lnk文件,软链接是.symlink文件,快捷方式创建后能被修改,而软链接一旦创建就不能修改。另外还有硬链接,这里不深究,有兴趣可以参考 https://zhuanlan.zhihu.com/p/661358379 这篇文章。

过程如下图所示(注意虚线实线)

NodeJs安装目录
环境变量
创建
或指向
或指向
查找执行
查找执行
v18.20.4
v20.15.1
NVM_SYMLINK(软链接路径)
path(包含 NVM_SYMLINK)
nvm
终端
软链接
node.exe

明白软链接的作用后,NPM的配置信息也使用包含软链接的路径,这样就能在NVM更改软链接的指向后,NPM自动切换访问对应的目录。

提示

主要分为NVM配置和NPM配置两个部分。系统只有一个NVM需要配置,每个nodejs版本都有独立的npm包管理器,但npm共用一个配置文件,所以也只需要配置一次。

NVM配置部分,把nvm安装目录路径加到path环境变量,让终端能找到nvm程序;还要配置 NVM_SYMLINK 环境变量值是软链接名,NVM用它来创建软链接指向切换的nodejs安装目录;为了让终端找到切换后的node程序,还要把软链接名加入path环境变量,软链接名就是 NVM_SYMLINK 的值。

NPM配置部分,如果你有npm的配置经验,NVM管理的npm配置,区别只在于使用软链接的路径,让软链接来控制npm访问的真实路径,其他配置与原来并无不同。

在这里插入图片描述

具体的配置请看下文。

三、NVM安装配置

3.1 下载

请在 https://github.com/coreybutler/nvm-windows/releases 官方仓库下载需要的安装包。本文主要演示 Windows 系统中的安装, nvm-setup.exe 安装版和 nvm-noinstall.zip 免安装版,为了演示如何配置NVM以及避免黑盒操作,本人建议选择下载免安装版本。

注意,免安装版请解压.zip文件到 非中文无空格 的路径中,否则会存在意想不到的问题。本人解压到 D:\Applications\nvm 目录中。

D:\Applications\nvm\elevate.cmdelevate.vbsinstall.cmdLICENSEnodejs.iconvm.exesetuserenv.vbsunsetuserenv.vbs

3.2 配置NVM环境变量

NVM需要把 安装目录软链接目录 添加到 path 环境变量。 nvm-setup.exe 安装版,在安装过程中会要求你输入这两个路径以设置环境变量,本文主要演示免安装版。

3.2.1 NVM_HOME

NVM需要添加 NVM_HOME 环境变量,变量值是NVM的安装目录路径(本人是 D:\Applications\nvm)。另外,因为 NVM 主要在终端中使用,所以要让终端找到 nvm 命令,也必须把 NVM 安装目录路径,添加到 path 环境变量中。因为已经设置了 NVM_HOME 环境变量,所以用 %NVM_HOME% 变量添加进 path 环境变量中,使用 %NVM_HOME% 变量表示取 NVM_HOME 的值。

添加 NVM_HOME 环境变量确定后,启动终端就能使用 nvm -v 就能看到NVM的版本号。

PS C:\> nvm -v
1.1.12
PS C:\>

现在只是能用NVM的相关命令,还不能完全能使用,还需要配置最核心的软链接目录。

3.2.2 NVM_SYMLINK

软链接可以理解为快捷方式,NVM工作原理 小结中已经解释了软链接的作用。

添加 NVM_SYMLINK 环境变量就是设置软链接,变量值是NVM的软链接目录路径(本人是 D:\Applications\nvm\node),NVM会在创建和删除软链接时用到该环境变量。还需要把它作为变量 %NVM_SYMLINK% 添加到path环境变量中,因为软链接就是nvm切换后的nodejs安装目录,只有把它添加到path,才能使用node命令。

在这里插入图片描述

注意

软链接不需要手动创建,用 nvm use 命令切换到某个 nodejs 版本时会自动创建。

3.3 配置文件 settings.txt

NVM的配置文件 settings.txt ,用来配置NVM的安装路径和镜像源等信息,使用国内的镜像源下载速度会快一些。

免安装版NVM解压后没有 settings.txt 配置文件,需要手动创建。可以用命令配置项目,例如:

nvm root D:\Applications\nvm

设置root值为D:\Applications\nvm,其他配置项同理。

配置内容如下:

root: D:\Applications\nvm
arch: 64
proxy: none
originalpath: .
originalversion: 
node_mirror: https://npmmirror.com/mirrors/node/
npm_mirror: https://npmmirror.com/mirrors/npm/
  • root: NVM安装路径
  • arch: 位数
  • node_mirror: nodejs安装包镜像源,nvm用来下载nodejs
  • npm_mirror: npm依赖包镜像源,nvm用来下载npm包管理器

提示

在安装低版本的node时,同步安装的 npm 版本有可能在指定的源中找不到。例如我当前配置的npm下载镜像是淘宝镜像。当我下载8.0.0指定的低版本node时,npm下载失败。此时,我必须去掉 npm_mirror 配置项,让nvm去默认的源下载。

四、NVM基本使用

NVM的命令主要是实现nodejs版本的管理,包括nodejs的安装、卸载、切换版本等。下面介绍nvm常用的命令。

4.1 on

on 命令用于启用 NVM ,只有启用NVM才能真正让它工作。

PS C:\> nvm on
nvm enabled

4.2 list (ls)

list 命令简写 ls 可以查看当前机器已安装的nodejs版本。参数 available 用来查看可安装的版本。

PS C:\> nvm list* 20.16.0 (Currently using 64-bit executable)
PS C:\> nvm list available|   CURRENT    |     LTS      |  OLD STABLE  | OLD UNSTABLE |
|--------------|--------------|--------------|--------------|
|    22.6.0    |   20.16.0    |   0.12.18    |   0.11.16    |
|    22.5.1    |   20.15.1    |   0.12.17    |   0.11.15    |
|    22.5.0    |   20.15.0    |   0.12.16    |   0.11.14    |
|    22.4.1    |   20.14.0    |   0.12.15    |   0.11.13    |
|    22.4.0    |   20.13.1    |   0.12.14    |   0.11.12    |
|    22.3.0    |   20.13.0    |   0.12.13    |   0.11.11    |
|    22.2.0    |   20.12.2    |   0.12.12    |   0.11.10    |
|    22.1.0    |   20.12.1    |   0.12.11    |    0.11.9    |
|    22.0.0    |   20.12.0    |   0.12.10    |    0.11.8    |
|    21.7.3    |   20.11.1    |    0.12.9    |    0.11.7    |
|    21.7.2    |   20.11.0    |    0.12.8    |    0.11.6    |
|    21.7.1    |   20.10.0    |    0.12.7    |    0.11.5    |
|    21.7.0    |    20.9.0    |    0.12.6    |    0.11.4    |
|    21.6.2    |   18.20.4    |    0.12.5    |    0.11.3    |
|    21.6.1    |   18.20.3    |    0.12.4    |    0.11.2    |
|    21.6.0    |   18.20.2    |    0.12.3    |    0.11.1    |
|    21.5.0    |   18.20.1    |    0.12.2    |    0.11.0    |
|    21.4.0    |   18.20.0    |    0.12.1    |    0.9.12    |
|    21.3.0    |   18.19.1    |    0.12.0    |    0.9.11    |
|    21.2.0    |   18.19.0    |   0.10.48    |    0.9.10    |This is a partial list. For a complete list, visit https://nodejs.org/en/download/releases
PS C:\>

4.3 install

install 是安装 nodejs 命令,后面参数跟版本号,如果参数是 lts 则安装最新的 latest 长期稳定版本,如果是18、19、20等大版本号,则会安装大版本中最新的 latest 版本。

PS C:\> nvm install 20.16.0
Downloading node.js version 20.16.0 (64-bit)...
Extracting node and npm...
Complete
npm v10.8.1 installed successfully.Installation complete. If you want to use this version, typenvm use 20.16.0
PS C:\>

命令参数

nvm install 20.16.0 # 安装具体版本
nvm install 20      # 安装20版最新latest版本
nvm install lts     # 安装最新的latest版本

4.4 uninstall

uninstall 是卸载版本命令,执行该命令将会删除对应版本的安装目录。当卸载的是当前版本时,软链接也会被删除。

nvm uninstall 20.16.0

4.5 use

use 命令用于切换版本,后跟参数版本号。要注意只能切换本地已安装的版本,切换前请 nvm list 查看是否安装该版本。当软链接不存在时,use命令将会创建软链接。

nvm use 20.16.0

4.6 所有命令

nvm help 命令查看所有命令。

nvm arch:显示节点运行在32位还是64位模式。
nvm current:显示当前版本。
nvm调试:检查NVM4W进程是否存在已知问题(疑难解答)。
nvm install <version> [arch]:版本可以是一个特定的版本,“latest”表示最新的当前版本,“lts”表示当前版本最新的LTS版本。可选地指定是安装32位还是64位版本(默认值)系统拱)。设置[arch]为“all”来安装32位和64位版本。在该命令的末尾添加——insecure以绕过远程下载服务器的SSL验证。
nvm list [available]:列出node.js的安装。在最后键入“available”,看看可以安装什么。别名为ls。
nvm on:启用node.js版本管理。
nvm off:关闭node.js版本管理。
nvm proxy [url]:设置用于下载的代理。保留[url]为空以查看当前代理。设置[url]为none删除代理。
nvm node_mirror [url]:设置节点镜像。默认为https://nodejs.org/dist/。[url]为空,使用默认url。
nvm npm_mirror [url]:设置npm镜像。默认为https://github.com/npm/cli/archive/。[url]为空,默认为url。
nvm uninstall <version>:版本必须是指定的版本。
nvm use [version] [arch]:切换使用指定的版本。可选地使用"latest""lts""latest"。“latest”是最新安装的版本。可选地指定32/64位架构。
NVM use <arch>将继续使用所选版本,但切换到32/64位模式。
nvm root [path]:设置nvm存放node.js不同版本文件的路径。如果未设置<path>,则显示当前根目录。
nvm[——]version:显示Windows下nvm的当前运行版本。别名为v。

五、NPM配置

Npm的配置方法和不使用nvm版本管理器时一样,只是配置prefix公共包和cache缓存的路径有区别。在不使用nvm时这两个路径指向两个固定的目录,但是nvm版本管理情况下使用了软链接,这时候这两个路径就必须指向软链接后的目录,因为软链接会被nvm切换版本时修改为nodejs安装目录,这样就实现了不同版本使用不同的prefix公共包目录和cache缓存目录。

5.1 命令配置

本人机器的nvm软链接NVM_SYMLINK 值是 D:\Applications\nvm\node 目录,软链接代表不同的nodejs版本安装目录,所以 npm 如下配置 prefix 和 cache :

npm config set prefix "D:\Applications\nvm\node\node_global"
npm config set cache "D:\Applications\nvm\node\node_cache"

注意

不需要手动创建这两个目录,在 npm 安装依赖包时会被自动创建。

Npm 的依赖包镜像源配置:

npm config set registry https://registry.npmmirror.com

该镜像源和NVM配置的镜像源作用不同,该镜像源是为某个版本的npm包管理器准备,npm会从这个源下载依赖包,而NVM的npm_mirror是让nvm下载npm包管理器。

5.2 配置文件

npm的配置文件 .npmrc 在用户目录中 C:\Users\用户名.npmrc ,用命令配置则会自动创建配置文件,也可以直接配置这个文件,配置如下:

prefix=D:\Applications\nvm\node\node_global
cache=D:\Applications\nvm\node\node_cache
registry=https://registry.npmmirror.com

5.3 配置NPM环境变量

Npm必须把prefix公共包目录添加到path环境变量,原因是公共包内可能会安装一些全局命令工具,例如第三方yarn包管理器,只有把node_global目录添加path,这些命令才能在终端使用。

path环境变量添加以下路径,因为 NVM_SYMLINK 已经是环境变量,可以作为变量直接使用:

%NVM_SYMLINK%\node_global
%NVM_SYMLINK%\node_modules

在这里插入图片描述

5.4 是否能多版本共用公共包?

可能有人会问,按以上的方法 prefix 公共包使用软链接路径,导致每个版本的公共包不共享,nvm切换nodejs版本后,一些公共包需要重新安装,是否可以多个版本 nodejs 共享一个公共包呢?只要不使用软链接路径就能做到,但是个人并不建议这么做。

使用nvm版本管理的目的是隔离 nodejs 的环境,每个版本使用的是适配它的依赖包,如果所有版本共享所有公共包,就丧失了nvm版本管理的优点,例如你不会在切换到node 18时,把不适配的依赖包卸载再重新安装适配的包,这样做和不使用nvm没区别,个人不建议多版本nodejs共享一个公共包目录。

相关文章:

NVM安装管理node.js版本(简单易懂)

一、前言 1.1 简介 NVM&#xff08;Node Version Manager&#xff09;是 node.js 的版本管理器&#xff0c;用 shell 脚本切换机器中不同版本的 nodejs。 Nodejs为什么需要多个版本&#xff1f; 有经验的开发者可能遇到过&#xff0c;某个依赖包明确nodejs是某个版本&#…...

第1章-04-Chrome及Chrome Driver安装及测试

&#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;CSDN领军人物&#xff0c;全栈领域优质创作者✌&#xff0c;CSDN博客专家&#xff0c;阿里云社区专家博主&#xff0c;2023年CSDN全站百大博主。 &#x1f3c6;数年电商行业从业经验&#xff0c;历任核心研发工程师&am…...

【Linux】SSH 隧道转发场景搭建

ssh建立隧道转发 A设备&#xff1a;没有公网IP地址的本地设备&#xff0c;如本地内网服务器&#xff08;需要能通公网&#xff09; B设备&#xff1a;有公网IP地址的服务器&#xff0c;可以是云服务器 C设备&#xff1a;终端设备&#xff0c;想通过公网服务器B访问到设备A 要…...

前后端部署-服务器linux中安装数据库Mysql8

一、登录Xshell7 && 开放Mysql 3306端口&#xff0c; Redis 6379 端口 二、手动部署MySQL数据库 1.运行以下命令&#xff0c;更新YUM源。 sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm 2.运行以下命令&#xff0c;安装My…...

如何使用jd-gui对springboot源码进行分析

背景&#xff1a; 最近在学习springboot的过滤器和拦截器&#xff0c;想了解一下过滤器和拦截器是怎么匹配URL的&#xff0c;在网上搜了半天都搜不到针对源码的&#xff0c;网上大部分内容都是说怎么配置过滤器和拦截器&#xff0c;怎么使用&#xff0c;并没有对源码进行分析的…...

原来ChatGPT是这么评价《黑神话:悟空》的啊?

《黑神话&#xff1a;悟空》一经上线便迅速吸引了全球的目光&#xff0c;成为了今日微博热搜榜上的焦点话题。作为中国首款现象级的中国3A大作&#xff0c;它的发布无疑引发了广泛的关注与讨论。 《黑神话&#xff1a;悟空》&#xff0c;这款3A国产游戏大作&#xff0c;由国内游…...

C语言第17篇

1.在C语言中,全局变量的存储类别是_________. A) static B) extern C) void D) register 提示&#xff1a;extern adj.外来的 register n.登记表&#xff0c;v.登记 提示与本题无关 2.在一个C源程序文件中,要定义一个只允许本源文件中所有函数使用的全局变…...

Springboot+vue实现webScoket

需求 因为在做的项目中&#xff0c;有多个网站登录同一个用户&#xff0c;故想在某一个页面登录或者退出的时候&#xff0c;对其他页面进行相同的操作 跨域&#xff0c;跨页面&#xff0c;跨项目&#xff0c;跨标签页&#xff0c;https 因为一开始不像麻烦后端&#xff0c;所以…...

CSS知识点详解:display+float

display&#xff1a;浮动 1.block&#xff1a;使元素呈现为块级元素&#xff0c;可设置宽高 display: block; 特点&#xff1a;使元素呈现为块级元素&#xff0c;即该元素会以新行开始&#xff0c;占据整行的宽度&#xff0c;即使其宽度未满。 例子&#xff1a; 2.inline&a…...

ant design pro v6 如何做好角色管理

先上图&#xff1a; 整个角色管理是如何做的吗&#xff1f; 首先你要处理后端&#xff0c;要先把角色存到用户那。 这是用户管理部分的内容&#xff1a; 可以看到一个用户是有多个角色的。 看到没有&#xff0c;存的是数组 数组的是一个 role 对象 role 对象是这样&#xf…...

C++ 设计模式(3. 抽象工厂模式)

抽象工厂模式也是一种创建型设计模式&#xff0c;提供了一个创建一系列相关或相互依赖对象的接口&#xff0c;而无需指定它们具体的类【引用自大话设计模式第15章】基本结构 抽象工厂模式包含多个抽象产品接口&#xff0c;多个具体产品类&#xff0c;一个抽象工厂接口和多个具体…...

【PHP入门教程】PHPStudy环境搭建+HelloWorld运行

文章目录 PHP 的历史PHP 的用途PHP 的特点和优势PHP 环境搭建环境准备安装window 安装CentOS / Ubuntu / Debian 安装 第一个Hello World使用Apache服务运行命令行运行代码 PHP 的历史 PHP&#xff08;Hypertext Preprocessor&#xff09;超文本预处理器是一种开源的通用脚本语…...

补 0 输出。

题目描述 输入一个整数&#xff0c;请在整数前面补 00 补足 88 位后输出。 输入描述 输入一行包含一个整数 nn。 输出描述 输出补00后的整数。 输入输出样例 示例1 输入 2021输出 00002021示例2 输入 202110输出 00202110 import os import sys# 请在此输入您的代码 si…...

因为嫌吵,在自己家也用上了远程控制电脑

加班嘛&#xff0c;赶稿嘛&#xff0c;参加工作的人都懂那种无形的压力和烦躁。 因为家里空间有限&#xff0c;我平常都是直接在客厅用台式电脑加急改写方案&#xff0c;但今天晚上家里来了几位叔&#xff0c;他们边吃饭边聊着秦始皇的话题&#xff0c;都70多分钟了&#xff0c…...

vue---echarts环形图

1、完整代码直接可以cv <template><div id"main1"></div> </template><script> import * as echarts from echarts; // import { mapState } from vuex; // import { Alarm_Device } from ../utils/api.js; export default {name: P…...

克服编程挫折:从Bug的迷宫中寻找出口与面对算法保持冷静的策略

在编程学习的道路上&#xff0c;挫折感无疑是每个学习者都必须面对的挑战之一。它们仿佛是一座座高墙&#xff0c;阻挡我们前进的步伐。然而&#xff0c;正如许多有经验的编程高手所证明的那样&#xff0c;挫折并不是终点&#xff0c;而是成长和进步的催化剂。本文将分享一些有…...

Flink之SQL client使用案例

Flink的执行模式有以下三种: 前提是我们已经开启了yarnsession的进程&#xff0c;在下图中可以看到启动的id也就是后续任务需要通过此id进行认证&#xff0c;以及任务分配的master主机。 这里启动时候会报错一个ERROR&#xff1a;org.apache.flink.shaded.curator.org.apache…...

实际开发中的模块化开发 - 应用到直播间

实际开发中的模块化开发 - 模块管理&#xff08;以直播间为例&#xff09;-CSDN博客 引言 在前面的两篇博客中&#xff0c;我们已经介绍了直播模块的简单结构&#xff0c;创建了模块管理器和模块抽象基类&#xff0c;并且通过模块化实现了两个小业务功能模块。接下来&#xf…...

EmguCV学习笔记 VB.Net 第5章 图像变换

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 EmguCV是一个基于OpenCV的开源免费的跨平台计算机视觉库,它向C#和VB.NET开发者提供了OpenCV库的大部分功能。 教程VB.net版本请访…...

【初阶数据结构】顺序表与链表的比较(附题)

目录 一、顺序表和链表的区别&#xff08;其他链表存在缺陷&#xff0c;比较意义不大&#xff0c;这里用带头双向循环链表与顺序表进行比较&#xff09; 1.1插入、扩容与随机访问 二、缓存利用率的比较 2.1前置知识 详解及补充知识&#xff08;本文仅为比较顺序表及链表&am…...

git-20240822

目录 初始化仓库 Git init Git init project --bare 查看提交的记录 git log --prettyoneline 查看当前git远程库地址 git remote -v 查看详细提交记录 git log 撤出暂存区的文件 git reset HEAD file(.代表全部文件&#xff09; 提交数据到远程仓库 git config --global push.…...

【时时三省】c语言例题----华为机试题< 数字颠倒>

目录 1,题目 描述 输入描述: 输出描述: 示例1 2,代码...

【前缀和算法】--- 一维和二维前缀和模板

Welcome to 9ilks Code World (๑•́ ₃ •̀๑) 个人主页: 9ilk (๑•́ ₃ •̀๑) 文章专栏&#xff1a; 算法Journey 本文开始,博主开始讲解有关前缀和的算法&#xff0c;本篇博客我们先来了解一下有关前缀和的两个模板。 &#x1f3e0; 一维前缀和模板 &…...

有些信息注定会丢失

智能在分析问题、做出决策时&#xff0c;总是希望获取尽可能多的信息&#xff0c;以此更加准确地决策。然而&#xff0c;很遗憾的是&#xff0c;有一些信息注定会丢失&#xff0c;不可能获取完全的信息&#xff0c;而且即使能够获取&#xff0c;智能也不能完全利用。 这一点与…...

c#中Task.Run 和使用 Task 构造函数创建任务的区别

Task.Run 和使用 Task 构造函数创建任务是两种不同的方法&#xff0c;它们在某些方面有显著的区别&#xff1a; 启动方式: Task.Run 是一个静态方法&#xff0c;它立即启动一个任务并在后台执行指定的工作。它通常用于快速启动一个简单的后台任务。使用 Task 构造函数创建任务&…...

使用nginx做代理转发

需求1&#xff1a;通过监听服务器的80端口&#xff0c;将请求转发到另一台服务器的8070端口 打开nginx/nginx.conf文件 server {listen 80;server_name localhost;location /analys {proxy_pass http://10.xx.xx.xx:8070/;} }需求2&#xff1a;通过监听服务器的80端口&am…...

Java前端与后端交互:JSON与XML数据交换 - 掌握现代Web开发的核心技能

引言 随着互联网技术的不断进步&#xff0c;Web应用变得越来越复杂&#xff0c;从前端到后端的每一个环节都需要精心设计以保证良好的用户体验。在这个过程中&#xff0c;数据的传递扮演着至关重要的角色。无论是简单的表单提交还是复杂的API调用&#xff0c;都需要一种可靠的…...

网络攻击原理及过程

网络攻击原理表 攻击者 内容 攻击访问 攻击效果 攻击意图 黑客 挑战 间谍 用户命令 破坏信息 好奇 恐怖主义者 脚本或程序 本地访问 信息泄密 获取情报 公司职员 自治主体 远程访问 窃取服务 经济利益 职业犯罪分子 电磁泄露 拒绝服务 恐怖事…...

day30(8/16)——ansible

目录 一、回顾 1、mysql和python 1. mysql5.7 2. 可以使用pymysql非交互的管理mysql 2、mycat中间件 1. 独属于mysql主从的负载均衡策略 2.配置写主读从 3. 步骤 3.1 安装jdk 3.2 mycat 3.3 配置 3.4 启动和调试 二、运维自动化&#xff08;ansible&#xff09; 1、任务背…...

fastadmin 安装

环境要求&#xff0c;大家可以参考官方文档的&#xff0c;我这里使用的是phpstudy&#xff0c;很多已经集成了。 注意一点&#xff0c;PHP 版本&#xff1a;PHP 7.4 。 第二步&#xff1a;下载 下载地址&#xff1a;https://www.fastadmin.net/download.html 进入下载地址后…...