为什么和 curl 然后是 sudo apt-get?

Pet*_*ter 1 linux sudo bash apt-get

要在 Linux 上安装节点,根据文档,我必须执行以下操作:

curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
sudo apt-get install -y nodejs
Run Code Online (Sandbox Code Playgroud)

我得到第二个陈述,但不是第一个。

curl会下载内容吧?然后通过管道将其传递给新命令?哪个做什么?我知道 -E 会保留环境变量,但是有什么作用bash -呢?

为什么我需要这样做,然后再做apt-get?不应该apt-get给我最新版本吗?或者这总是这样做的方式apt-get吗?

Dyu*_*usk 6

curl 正在下载 bash 脚本并将其内容通过管道传输到以 root 身份运行的新 bash shell,并使用您当前帐户的环境变量。

- 告诉 bash 从 stdin 读取,在这种情况下是 curl 的输出 - bash 脚本的内容。

该脚本实际上是将其自己的存储库添加nodejs到您的包管理器中,这就是您在运行脚本后安装它的原因。使用官方 Node 存储库可确保您安装最新版本。

您可以查看bash 脚本。

您拥有的“一个班轮”是首先将脚本下载到文件然后使用以下命令运行它的替代方法sudo

wget https://deb.nodesource.com/setup_4.x
sudo -E bash ./setup_4.x
Run Code Online (Sandbox Code Playgroud)