4

Я пытаюсь настроить сценарий оболочки для запуска в контексте учетной записи пользователя после создания виртуальной машины с использованием vagrant; Я пользователь Windows, поэтому я ограничен в использовании сценариев bash. Я использую виртуальные машины для установки Linux-боксов, чтобы я мог использовать превосходную базу ОС, прежде чем перейти на Mac позже в этом году ;-)

К проблеме: я пытаюсь установить nvm, используя скрипт установки; на сайте говорится, что после установки nvm вы должны перезагрузить оболочку bash. Я понимаю, что вместо этого могу получить исходный код .bashrc без перезагрузки оболочки (что было бы неудобно). Вот сценарий оболочки, который я использую:

## NVM
# install nvm
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.25.4/install.sh | bash
# copy nvm config 
cp /vagrant/dotfiles/.nvmrc ~/.nvmrc
# let bash see the new bash profile
source ~/.bashrc
# add nvm
nvm install

Все это выполняется в контексте учетной записи пользователя (без sudo, но в этом нет необходимости). Проблема в том, что, как только мы доберемся до nvm install , может показаться, что использование .bashrc не предоставило nvm оболочке bash, и это не удалось, потому что он не может найти nvm . Я использую Ubuntu 14.04.2 LTS (GNU/Linux 3.13.0-53-generic i686), который использует для этого bash + .bashrc .

Вывод консоли ниже.

==> workspace: => Downloading nvm from git to '/home/vagrant/.nvm'
=>  workspace:
==> workspace: Cloning into '/home/vagrant/.nvm'...
==> workspace: * (detached from v0.25.4)
==> workspace:   master
==> workspace: => Source string already in /home/vagrant/.bashrc
==> workspace: => Close and reopen your terminal to start using nvm
==> workspace: /tmp/vagrant-shell: line 12: nvm: command not found

1 ответ1

4

Ха, я делаю то же самое, и был ошарашен тем же. Источник должен работать ... но это не так.

Решение:источник ~/.nvm/nvm.sh

Переход к источнику (без каламбура), похоже, исправил это.

Также следует иметь в виду, что при использовании vagrant up/reload --provision запускается любой сценарий предоставления в качестве пользователя root, но если вы запустите vsgrant ssh на свою машину, он перенаправит вас в vagrant пользователя, у которого не будет ~/.nvm.

/root/.nvm vs /home/vagrant/.nvm

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .