Узел установлен во время настройки на бродяге, но исчезает после соединения с ssh

Я действительно устаю от этого, и я не знаю что не так. Я использую Бродягу 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 теперь правильно установлен, и я мог использовать узел.

1
задан 23 February 2015 в 15:11

4 ответа

Ну, я нашел, как сделать это. И очень легко (путь, легче, чем я сказал).

, Короче говоря выполните эти шаги:

  1. Набор Vagrantfile для выполнения как обычный пользователь:

    config.vm.provision "shell", path: "provision.sh", privileged: false
    
  2. Внутренняя часть Ваш файл условия, сделайте это:

    curl https://raw.githubusercontent.com/creationix/nvm/v0.24.1/install.sh | bash
    source $HOME/.nvm/nvm.sh
    

команда выше желания, во-первых, nvm установки от GitHub creationix, и обновляют оболочку, чтобы позволить условию использовать команды nvm для установки узла и npm.

  1. Затем Вы просто делаете это:

    nvm install stable
    nvm alias default stable
    

'конюшня' всегда будет последней стабильной версией узла. Таким образом, если Вы хотите конкретную версию, просто изменяете 'конюшню' на версию, Вам нужно.

вторая строка, где Вы вводите псевдоним nvm, просто говорит nvm, что это должно использовать, как принимают значение по умолчанию версия, Вы передали ему. Тогда nvm будет знать, какую версию узла назвать, когда nvm выполнят команды узла и npm.

Кредиты к djheru для разъясняют вещи здесь https://stackoverflow.com/a/26691455

3
ответ дан 10 November 2019 в 08:13

Если я не ошибаюсь, бродячая настройка работает как корень. Установка 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'
2
ответ дан 10 November 2019 в 08:13

Это - способ, которым я решил это. Я еще не попробовал Ваши ответы, таким образом, я не могу принять никого, но это - то, что работало на меня.

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
1
ответ дан 10 November 2019 в 08:13

В первую очередь, я должен сказать, что мой ответ не является полным ответом так читает его тщательно.

Вы должны проверить, если Ваш 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...

0
ответ дан 10 November 2019 в 08:13

Другие вопросы по тегам:

Похожие вопросы: