Sourcing .bashrc não permite o uso de nvm

4

Estou tentando configurar um shell script para ser executado no contexto de uma conta de usuário após a criação de uma máquina virtual usando o vagrant; Eu sou um usuário do Windows, então tenho exposição limitada a scripts bash. Eu estou usando máquinas virtuais para configurar as caixas Linux para que eu possa usar a base superior do sistema operacional antes de fazer a mudança para o Mac mais tarde neste ano; -)

Para o problema: Estou tentando instalar o nvm usando seu script de instalação; o site informa que depois de instalar o nvm você deve recarregar seu shell bash. Eu sou do entendimento que eu poderia, em vez disso, fonte meu .bashrc sem ter que reiniciar o shell (o que seria inconveniente). Aqui está o script de shell que estou usando:

## 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

Tudo isso é executado no contexto da conta de um usuário (sem sudo, mas não deve ser necessário). O problema é que, quando chegarmos a nvm install , pareceria que a origem do .bashrc não expôs nvm ao shell bash e falhará porque não pode encontrar nvm . Estou usando o Ubuntu 14.04.2 LTS (GNU / Linux 3.13.0-53-genérico i686), que utiliza o bash + .bashrc para isso.

A saída do console está abaixo.

==> 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
    
por Dan Pantry 23.06.2015 / 11:41

1 resposta

4

Hah eu estou fazendo exatamente a mesma coisa e fiquei perplexa com a mesma coisa. Fonte deve funcionar ... mas isso não acontece.

Solução: source ~ / .nvm / nvm.sh

Ir direto para a fonte (sem trocadilhos) parece tê-lo corrigido.

Também é importante lembrar que o uso do vagrant up / reload --provision é executado em qualquer script de provisão como root, mas se você usar o ssh no seu computador, ele o levará ao usuário vagabundo que não possui ~ / .nvm

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

    
por 05.10.2015 / 20:00