2017-02-17 17 views
2

我試圖使用許多不同的流浪盒,我發現here。我想:要使用哪個Vagrant Ubuntu盒來安裝最新的Node.js?

  • 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.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 
+0

ubuntu/trusty64將工作 - 我使用trusty和xenial,他們的工作。你的Vagrantfile如何? –

+0

@FrédéricHenri我更新了問題描述。 –

回答

1

問題的一部分是與Linux版本,當我ssh來加工它不足以做到:

sudo apt-get update 
sudo apt-get upgrade 

我也必須做到:

do-release-upgrade 

在安裝最新的Node.js的順利之後。

EDIT 2018年1月5日

Vagrantfile:

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; 
    } 

} 

請記住,這是節點6.x的較舊版本,但您可能只需將bootstrap.sh腳本中的url切換到較新的版本即可。我不再使用Vagrant(現在我使用Docker),所以我沒有及時使用它。

+0

哪個版本的nodejs?你可以添加完整的流浪文件(或至少是節點的名稱和配置腳本) – epeleg

+1

@eleleg我更新了答案。你可能只需要改變這一行curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash - 在boostrap.sh腳本中安裝最新的node.js. –

0

良好,對我下面的作品和安裝的NodeJS

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 

    config.vm.provision :shell, :inline => "curl -sL https://deb.nodesource.com/setup_7.x | bash - && apt-get -y install nodejs" 

end 

節點被安裝在初始配置

[email protected]:~$ node --version 
v7.5.0 
+0

我用那個運行,但我仍然有舊版本的Node.js:v0.6.12 –

+0

奇怪......你能否確保首先銷燬虛擬機! '流浪摧毀&&流浪'# –

+0

我試過了10次以上。我同意這很奇怪。其他一些建議? –