我是 Linux 新手,所以这可能是一个新手问题......
在新安装的 Ubuntu 18.04 LTS 上,我想安装 NodeJS。我运行了以下命令node --version
来验证它尚未安装:
Command 'node' not found, but can be installed with:
sudo apt install nodejs
因此,它没有安装,终端输出建议如何安装它。
其他一些在线资源建议使用wget
或curl
像这样安装它:
# using wget
wget https://nodejs.org/dist/v12.13.1/node-v12.13.1-linux-x64.tar.xz
# using curl
curl -o node-v12.13.1-linux-x64.tar.xz https://nodejs.org/dist/v12.13.1/node-v12.13.1-linux-x64.tar.xz
# extract
tar xf node-v12.13.1-linux-x64.tar.xz
是否有充分的理由使用wget
或curl
代替apt install
?
答案1
您将安装的版本apt
是 Ubuntu 为操作系统打包的版本。在 Ubuntu 18.04 上,这似乎是nodejs 8.10.0。nodejs 网站直接提供的版本(curl
和wget
选项)是最新版本,但如果您下载它,则必须手动保持其更新。
我不使用 NodeJS,所以社区可能会有其他建议,但一般来说,最好安装来自的包版本,apt
除非你明确知道需要另行安装。
您可能需要采取其他措施的原因包括您可能特别需要较新版本的 nodejs。这种情况有时会发生,但如果您确实需要,那么值得注册他们的邮件列表或以其他方式在发布较新版本时收到通知,这样您就可以更新它,而不会出现潜在的安全问题。
答案2
wget
一般来说,你这个问题上的用法curl
是一样的,它们都检索/下载来自网络服务器的文件。
所以你的问题可能是:从 NodeJS 安装apt
和从其官方网站安装有什么区别?
安装自apt
从这里安装的 Node.jsapt
在 99.9% 的情况下应该可以立即使用,因为它是专门为某个发行版设计的(在您的例子中是 18.04)。因此,如果您寻求轻松安装并且不需要特定版本的 Node.js,这将是您的最佳选择。
在撰写本文时,Ubuntu 的 vanilla 存储库提供了 Node.js 版本8.10.0
$ apt-cache policy nodejs
nodejs:
Installed: (none)
Candidate: 8.10.0~dfsg-2ubuntu0.4
Version table:
8.10.0~dfsg-2ubuntu0.4 500
安装自Node.js 页面
如果您确实需要较新版本的 Node.js,那么这是最佳选择——否则apt
广泛推荐手动安装。
顺便说一句,如果您想升级到新版本,则必须再次重复该过程,而我们apt
将为您处理。
您可以将 Node.js 存储库添加到您的 Ubuntu 机器,这样您就可以安装特定版本的apt
Node.js。
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt install nodejs
替换12.x
为您想要的版本。然后,使用nodejs -v
命令验证您的版本。
答案3
Ubuntu 官方仓库中打包的 nodejs 版本可能因 Ubuntu 版本而异
有时 - 例如为开源项目做贡献 - 必须使用特定的旧版本的 nodejs 来满足项目的依赖关系,
如果需要特定版本,则必须手动安装。
在这里找到所有可用的版本:
https://nodejs.org/dist/
nodejs github 上有一些关于手动安装的信息
https://github.com/nodejs/help/wiki/Installation
简而言之:
手动安装特定版本(假设弃用 6.17.1)
# 1. Download the binary archive from https://nodejs.org/en/download/releases/
wget https://nodejs.org/dist/latest-v6.x/node-v6.17.1-linux-x64.tar.xz
# 2. Extract archive where you want
# Here extracted to /usr/local/lib/nodejs/VERSION
VERSION=v6.17.1
DISTRO=linux-x64
sudo mkdir -p /usr/local/lib/nodejs
sudo tar -xJvf node-$VERSION-$DISTRO.tar.xz -C /usr/local/lib/nodejs
# 3. Set the environment variable ~/.profile or /etc/profile
sudo tee -a /etc/profile << EofProfile
# Nodejs
export PATH=/usr/local/lib/nodejs/node-v6.17.1-linux-x64/bin:$PATH
EofProfile
# 4. Add symlinks to /usr/bin
sudo ln -s /usr/local/lib/nodejs/node-$VERSION-$DISTRO/bin/node /usr/bin/node
sudo ln -s /usr/local/lib/nodejs/node-$VERSION-$DISTRO/bin/npm /usr/bin/npm