สคริปต์การจัดสรรเชลล์ไม่ได้สร้าง. bash_aliases


0

ฉันใช้ Vagrant กับ VirtualBox เพื่อสร้าง VM guest guest ของ Ubuntu บนโฮสต์ Windows 10 นี่คือ Vagrantfile ของฉัน:

# vi: set ft=ruby :

Vagrant.configure(2) do |config|
  config.vm.box = "ubuntu/trusty64"

  config.vm.network "forwarded_port", guest: 8080, host: 8100

  config.vm.provision "shell", path: "./bootstrap.sh"
end

และนี่คือไฟล์ bootstrap.sh

printf "Working directory is: %s." $(pwd)

if [ ! -f '~/.bash_aliases' ]; then
    printf "# This is a comment." > ~/.bash_aliases ;
fi;

ls -la

แต่ด้วยเหตุผลบางอย่างมันไม่เคยสร้าง. bash_aliases ในไดเรกทอรีของผู้ใช้คนจรจัด ฉันสามารถ SSH ลงในกล่องและเรียกใช้คำสั่งเดียวกันที่แน่นอนและใช้งานได้ ฉันจะสร้างไฟล์. bash_aliases ในไดเรกทอรีของผู้ใช้งานคนจรจัดได้อย่างไร

คำตอบ:


0

คิดออก มีวิธีแก้ไขปัญหาอย่างน้อยสองวิธี

โซลูชันที่ 1 - เรียกใช้ด้วยการprivilegedตั้งค่าเป็นfalse

ใน Vagrantfile เปลี่ยนบรรทัดนี้ ...

config.vm.provision "shell", path: "./bootstrap.sh"

สำหรับสิ่งนี้:

config.vm.provision "shell", path: "./bootstrap.sh", privileged: false

คนจรจัดจะทำงานในฐานะผู้ใช้คนจรจัดไม่ใช่ราก ( sudo)

โซลูชันที่ 2 - สร้างไฟล์โดยตรงที่ /home/vagrant/.bash_aliases

เปลี่ยน ...

if [ ! -f '~/.bash_aliases' ]; then
    printf "# This is a comment." > ~/.bash_aliases ;
fi;

สำหรับสิ่งนี้:

if [ ! -f /home/vagrant/.bash_aliases ]; then
    printf "# This is a comment." > /home/vagrant/.bash_aliases ;
fi;

สิ่งนี้เขียนโดยตรงไปยังไดเรกทอรีของผู้ใช้คนจรจัด

ฉันไปกับโซลูชัน 2

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.