Es gibt einige Befehle, die nach der ersten Bereitstellung als normaler Benutzer ausgeführt werden müssen. Ich dachte, ich könnte dies mit einem separaten Shell-Skript und dem Befehl tun su --login -c <command> vagrant
, aber es ruft nicht den Pfad des Benutzers oder andere Umgebungseinstellungen von .bashrc ab.
z.B:
#!/usr/bin/env bash
su --login -c "rbenv install 2.0.0-p353" vagrant
su --login -c "rbenv global 2.0.0-p353" vagrant
su --login -c "gem update --system" vagrant
su --login -c "yes | gem update" vagrant
su --login -c "gem install rdoc" vagrant
su --login -c "gem install rails pg" vagrant
Gibt es eine Möglichkeit, dies zu tun? Vielleicht muss es mit einem anderen Bereitstellungstool wie Puppet oder Chef gemacht werden? Ich habe darüber nachgedacht, ein anderes Shell-Skript zu erstellen, das das .bashrc
Quellcode erstellt, es mit einem: file-Provisioner in die Box kopiert und die Befehle so ausführt, aber es scheint eine Art Hack zu sein.
Was ist der richtige Weg, um dies zu tun?
su -p
werden Umgebungsvariablen erhalten - hilft das?