Я действительно устаю от этого, и я не знаю что не так. Я использую Бродягу 1.7.2, Ubuntu 13.04, Виртуальное Поле 4.3 12 r93733
Моя хост-машина является Windows 8.1
Вот мой сценарий начальной загрузки узла, найденный на моем bootstrap.sh
echo "--- Installing Node.js ---"
curl https://raw.githubusercontent.com/creationix/nvm/v0.16.1/install.sh | bash
source ~/.nvm/nvm.sh
nvm install 0.12
nvm use 0.12
sudo cp ~/.nvm/versions/nodejs/v0.12/bin/node /bin/node
echo "--- Install node app dependencies --"
cd /var/www/html/node
npm install express
npm install youtube-audio-stream
Во время настройки я видел, что узел установлен правильно. Я видел Теперь узел использования v0.12. Я мог также видеть, что npm установка успешна
Однако, когда я соединяю бродягу использования ssh. Я получаю команду No 'nvm' найденный. И программа 'узел' может быть найдена в следующих пакетах:. я также проверил ~/.nvm/каталог, это не является существующим.
Это становится еще более странным. Таким образом, в то время как я в ssh, я повторно выполняю сценарий снова. Затем nvm теперь правильно установлен, и я мог использовать узел.
Ну, я нашел, как сделать это. И очень легко (путь, легче, чем я сказал).
, Короче говоря выполните эти шаги:
Набор Vagrantfile для выполнения как обычный пользователь:
config.vm.provision "shell", path: "provision.sh", privileged: false
Внутренняя часть Ваш файл условия, сделайте это:
curl https://raw.githubusercontent.com/creationix/nvm/v0.24.1/install.sh | bash
source $HOME/.nvm/nvm.sh
команда выше желания, во-первых, nvm установки от GitHub creationix, и обновляют оболочку, чтобы позволить условию использовать команды nvm для установки узла и npm.
Затем Вы просто делаете это:
nvm install stable
nvm alias default stable
'конюшня' всегда будет последней стабильной версией узла. Таким образом, если Вы хотите конкретную версию, просто изменяете 'конюшню' на версию, Вам нужно.
вторая строка, где Вы вводите псевдоним nvm, просто говорит nvm, что это должно использовать, как принимают значение по умолчанию версия, Вы передали ему. Тогда nvm будет знать, какую версию узла назвать, когда nvm выполнят команды узла и npm.
Кредиты к djheru для разъясняют вещи здесь https://stackoverflow.com/a/26691455
Если я не ошибаюсь, бродячая настройка работает как корень. Установка NVM характерна для пользователя, и она добавляет команды к конфигурации удара текущего пользователя (в этом случае, корень). Без тех команд NPM не доступен в оболочке. Необходимо установить NVM и узел как бродячий пользователь, не корень.
кроме того, Вы используете старую версию NVM.
sudo su vagrant -c 'curl https://raw.githubusercontent.com/creationix/nvm/v0.23.3/install.sh | bash'
sudo su vagrant -c '. ~vagrant/.nvm/nvm.sh;nvm install v0.12'
sudo su vagrant -c '. ~vagrant/.nvm/nvm.sh;nvm use v0.12'
Это - способ, которым я решил это. Я еще не попробовал Ваши ответы, таким образом, я не могу принять никого, но это - то, что работало на меня.
git clone https://github.com/creationix/nvm.git /home/vagrant/.nvm && cd /home/vagrant/.nvm && git checkout `git describe --abbrev=0 --tags`
source /home/vagrant/.nvm/nvm.sh
nvm install 0.12
nvm use 0.12
n=$(which node);n=${n%/bin/node}; chmod -R 755 $n/bin/*; sudo cp -r $n/{bin,lib,share} /usr/local
В первую очередь, я должен сказать, что мой ответ не является полным ответом так читает его тщательно.
Вы должны проверить, если Ваш Vagrantfile выполняет условие как корень. Если так, необходимо измениться на использование как обычный пользователь:
config.vm.provision "shell", path: "provision.sh", privileged: false
Эти privileged: false
сделает это изменение для Вас.
Затем, необходимо будет обновить оболочку после команды для установки nvm от GitHub:
curl https://raw.githubusercontent.com/creationix/nvm/v0.24.1/install.sh | bash
source $HOME/.nvm/nvm.sh
Эти source $HOME/.nvm/nvm.sh
сделает это для Вас. Можно присоединить эту команду к .bashrc файлу, в $HOME/.bashrc
внутренняя бродяга.
печальная вещь состоит в том, что необходимо будет экспортировать некоторые переменные среды узла и npm и вставить команду .bashrc слишком поэтому, когда Вы войдете через ssh в бродягу, Вы будете в состоянии использовать узел и команды npm, но я еще не знаю, что правильные команды делают это, вот почему я заканчиваю здесь хе-хе-хе...
, О, и после добавляют команды к .bashrc, необходимо обновить оболочку, делающую:
source $HOME/.bashrc
ну, теперь я просто должен найти, как экспортировать переменные при установке узла с nvm для выполнения этой задачи hehe...