在Vagrant中安装Node,NPM(以及全球的Grunt和Bower)

我一直在遵循这个要求来安装一些PHP开发的核心依赖关系,但是我需要并且还没有能够工作的一个方法就是安装Node,NPM(然后是全局的Grunt和Bower)到stream浪汉。 我已经看到这样的答案,但它似乎没有完成安装(即我不能安装凉亭和咕噜声)。 有一个通过apt-getnodejs包,似乎确实安装了Node(我可以从那里安装NPM),但是对于Bower来说,这个版本显得太旧了,所以这就是为什么我回到了手动的方式。 谢谢你的帮助。

更新

这是我的bootstraph.sh文件:

 #!/usr/bin/env bash echo ">>> Starting Install Script" # Update sudo apt-get update # Install MySQL without prompt sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password password root' sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password_again password root' echo ">>> Installing Base Items" # Install base items sudo apt-get install -y curl wget build-essential python-software-properties python g++ make echo ">>> Adding PPA's and Installing Server Items" # Add repo for latest PHP sudo add-apt-repository -y ppa:ondrej/php5 # Add NodeJS repository sudo add-apt-repository -y ppa:chris-lea/node.js # Update Again sudo apt-get update # Install the Rest sudo apt-get install -y php5 apache2 libapache2-mod-php5 nodejs php5-mysql php5-curl php5-gd php5-mcrypt php5-xdebug mysql-server echo ">>> Configuring Server" # xdebug Config cat << EOF | sudo tee -a /etc/php5/mods-available/xdebug.ini xdebug.scream=1 xdebug.cli_color=1 xdebug.show_local_vars=1 EOF # Apache Config sudo a2enmod rewrite curl https://gist.github.com/fideloper/2710970/raw/5d7efd74628a1e3261707056604c99d7747fe37d/vhost.sh > vhost sudo chmod guo+x vhost sudo mv vhost /usr/local/bin # Symlink /var/www to project web root sudo rm -rf /var/www sudo ln -s /vagrant/ /var/www # PHP Config sed -i "s/error_reporting = .*/error_reporting = E_ALL/" /etc/php5/apache2/php.ini sed -i "s/display_errors = .*/display_errors = On/" /etc/php5/apache2/php.ini sudo service apache2 restart echo ">>> Installing NPM, Grunt CLI and Bower" curl https://npmjs.org/install.sh | sh sudo npm install -g grunt-cli bower echo ">>> Installing Composer" # Composer curl -sS https://getcomposer.org/installer | php sudo mv composer.phar /usr/local/bin/composer 

发现以下运作良好:

 #!/usr/bin/env bash echo "--- Let's get to work. Installing now. ---" echo "--- Updating packages list ---" sudo apt-get update echo "--- MySQL time ---" sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password password root' sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password_again password root' echo "--- Installing base packages ---" sudo apt-get install -y vim curl python-software-properties echo "--- Updating packages list ---" sudo apt-get update echo "--- We want the bleeding edge of PHP ---" sudo add-apt-repository -y ppa:ondrej/php5 echo "--- Updating packages list ---" sudo apt-get update echo "--- Installing PHP-specific packages ---" sudo apt-get install -y php5 apache2 libapache2-mod-php5 php5-curl php5-gd php5-mcrypt mysql-server-5.5 php5-mysql git-core echo "--- Installing and configuring Xdebug ---" sudo apt-get install -y php5-xdebug cat << EOF | sudo tee -a /etc/php5/mods-available/xdebug.ini xdebug.scream=1 xdebug.cli_color=1 xdebug.show_local_vars=1 EOF echo "--- Installing node.js ---" sudo apt-get update sudo apt-get install -y python g++ make sudo add-apt-repository -y ppa:chris-lea/node.js sudo apt-get update sudo apt-get install -y nodejs echo "--- Installing Ruby ---" \curl -L https://get.rvm.io | bash -s stable source /usr/local/rvm/scripts/rvm rvm requirements rvm install ruby rvm use ruby --default rvm rubygems current echo "--- Enabling mod-rewrite ---" sudo a2enmod rewrite echo "--- Setting document root ---" sudo rm -rf /var/www sudo ln -fs /vagrant/public /var/www echo "--- Turn on errors ---" sed -i "s/error_reporting = .*/error_reporting = E_ALL/" /etc/php5/apache2/php.ini sed -i "s/display_errors = .*/display_errors = On/" /etc/php5/apache2/php.ini sed -i 's/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.conf echo "--- Restarting Apache ---" sudo service apache2 restart echo "--- Install Composer (PHP package manager) ---" curl -sS https://getcomposer.org/installer | php sudo mv composer.phar /usr/local/bin/composer # Laravel stuff here, if you want echo "--- All done, enjoy! :) ---" 

来源: https : //github.com/JeffreyWay/Vagrant-Setup

我们使用n来pipe理我们的Vagrant虚拟机和云盒子上的node.js版本。 我们使用Ansible来pipe理安装,但使用bash很容易实现,如下所示:

 # Install n n_directory='/opt/n' git clone https://github.com/visionmedia/n.git $n_directory cd $n_directory make install # Install node.js/npm using n node_version='0.10.24' n $node_version # Install the global dependencies npm install -g grunt-cli bower 

这依赖于$PATH上的nnpm