node.js - 使用哪个 Vagrant Ubuntu 盒子来安装最新的 Node.js?

标签 node.js ubuntu vagrant virtualbox

我尝试使用许多不同的 Vagrant Boxes,我发现了 here 。我尝试过:

  • hashicorp/precise64
  • ubuntu/trusty32
  • ubuntu/trusty64
  • ubuntu/xenial64

但是当我尝试安装最新的 Node.js (7.5) 时(我在 Installing Node.js via package manager 上找到了这个):

curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -

我总是收到这样的错误:

当前不支持您标识为“精确”的发行版,请联系 NodeSource https://github.com/nodesource/distributions/issues如果您认为这是不正确的或希望考虑支持您的发行版

我还尝试下载最新 Ubuntu 服务器的 ISO 镜像并手动将其安装在 VirtualBox 中,在这种情况下,最新 Node.js 的安装工作正常。 我应该使用哪个 Vagrant Box?

此外,我使用 Mac OS 和 VirtualBox 来运行 Vagrant。

我的 Vagrant 配置文件:

Vagrant.configure(2) do |config|

    config.vm.box = "ubuntu/trusty64"
    config.vm.network :forwarded_port, guest: 80, host: 8080
    config.vm.network "forwarded_port", guest: 3306, host: 3309

end

最佳答案

问题出在 Linux 版本上,当我通过 ssh 登录机器时,这还不够:

sudo apt-get update
sudo apt-get upgrade

我还必须这样做:

do-release-upgrade

安装最新的 Node.js 后一切顺利。

编辑 2018 年 1 月 5 日

Vagrant 文件:

Vagrant.configure(2) do |config|
    config.vm.box = "ubuntu/trusty64"
    config.vm.network :forwarded_port, guest: 80, host: 8000
    config.vm.provision :shell, :path => ".provision/bootstrap.sh"
end

.provision/bootstrap.sh:

#!/usr/bin/env bash

# update
sudo apt-get update
sudo apt-get -y upgrade

sudo apt-get -y install software-properties-common python-software-properties
sudo apt-get update

# install packages
sudo apt-get -y install curl git

# nginx
sudo apt-get -y install nginx
sudo service nginx start

# remove default nginx config
sudo rm /etc/nginx/sites-enabled/default

# set up nginx server
sudo cp /vagrant/.provision/nginx/nginx.conf /etc/nginx/sites-available/site.conf
sudo chmod 644 /etc/nginx/sites-available/site.conf
sudo ln -s /etc/nginx/sites-available/site.conf /etc/nginx/sites-enabled/site.conf
sudo service nginx restart

# clean /var/www
sudo rm -Rf /var/www

# symlink /var/www => /vagrant
sudo ln -s /vagrant /var/www

# Node
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs

sudo apt-get install -y build-essential

nginx/nginx.conf:

server {
    listen 80;

    server_name todo.dev;
    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    root   /var/www/dist;
    index index.html index.htm;

    location / {
        try_files $uri $uri/ /index.html;
    }

}

请记住,这是旧版本的 Node 6.x,但您可能只需要将 bootstrap.sh 脚本中的 url 切换到新版本。我不再使用 Vagrant(现在使用 Docker),所以我不太了解它的最新情况。

关于node.js - 使用哪个 Vagrant Ubuntu 盒子来安装最新的 Node.js?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42297578/

相关文章:

ubuntu-12.04 - Vagrant 不能需要 log4r

ruby - 为什么在 Vagrant 上的当前用户下安装 rvm 时需要另一个用户?

javascript - 根据 mongodb 集合数组验证数组

ubuntu - 如何在 linux 中安装 android ndk?

laravel - 如何为 Vagrant 安装手动下载的 .box

linux - 如何列出所有 Linux 环境变量,包括 LD_LIBRARY_PATH

shell - ubuntu中如何检查txt文件的分隔符

node.js - Google Cloud 语音识别 grpc 版本与 VSCode Electron 版本不兼容

node.js - 为什么这个嵌套的 Promise.then 在 Promise 的方法之前执行?

node.js - Socket.io 未从客户端发送到服务器