下载Bash脚本的可下载Bash脚本

时间:2015-05-14 16:57:39

标签: bash shell curl

我正致力于自动配置我的开发虚拟机。它做了一些基本的事情:

  1. 设置公司代理商
  2. 更新apt-get并安装一堆库
  3. 安装VirtualBox Guest Additions
  4. 安装RBEnv,一些插件和Ruby 2.2
  5. 其余的配置将由一些ruby脚本管理,这就是为什么ruby是这个脚本的最后一步。

    我把这些东西分解成单独的脚本,我可以通过运行

    来很好地运行它们

    卷曲some.host/proxy.sh | bash的

    因此,为了实现在空白VM上实现1命令配置的梦想,我试图制作看起来像这样的东西:

    curl some.host/proxy.sh | bash
    source ~/.bashrc
    curl some.host/apt.sh | bash
    curl some.host/guest_additions.sh | bash
    curl some.host/development_base.sh | bash
    

    代理脚本(成功完成):

    sudo sh -c "echo 'Acquire::http::proxy \"http://proxy.company.net:3000\";' > /etc/apt/apt.conf.d/01proxy"
    sudo sh -c "echo 'Acquire::https::proxy \"https://proxy.company.net:3000\";' >> /etc/apt/apt.conf.d/01proxy"
    echo 'export http_proxy=http://proxy.company.net:3000' >> ~/.bashrc
    echo 'export HTTP_PROXY=http://proxy.company.net:3000' >> ~/.bashrc
    echo 'export https_proxy=https://proxy.company.net:3000' >> ~/.bashrc
    echo 'export HTTPS_PROXY=https://proxy.company.net:3000' >> ~/.bashrc
    echo 'export no_proxy="company.net,localhost,127.0.0.1"' >> ~/.bashrc
    echo 'export NO_PROXY="company.net,localhost,127.0.0.1"' >> ~/.bashrc
    echo 'source ~/.bashrc' >> .bash_profile
    

    apt命令

    sudo apt-get update
    sudo apt-get install -y build-essential git-core libxml2 libxml2-dev libxslt1-dev dkms linux-headers-generic linux-headers-$(uname -r) zlib1g-dev libssl-dev tklib
    

    嘉宾增加(这永远不会运行)

    source ~/.bashrc
    guest_additions_iso=VBoxGuestAdditions_4.3.28.iso
    wget --directory-prefix=$HOME http://dlc-cdn.sun.com/virtualbox/4.3.28/$guest_additions_iso
    sudo mount -o loop $HOME/$guest_additions_iso /mnt
    sudo /mnt/VBoxLinuxAdditions.run
    sudo umount -f /mnt
    rm $HOME/$guest_additions_iso
    

    Ruby(这永远不会运行)

    git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
    git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
    git clone https://github.com/sstephenson/rbenv-gem-rehash.git ~/.rbenv/plugins/rbenv-gem-rehash
    export PATH="$HOME/.rbenv/bin:$HOME/.rbenv/shims:$PATH"
    if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi
    rbenv install 2.1.5
    rbenv global 2.1.5
    gem install bundler
    

    这很有效,直到guest_additions脚本。

    apt-get安装需要几分钟,完成后,脚本就会停止。它永远不会尝试外出并获取/运行下一个脚本。

    这样做的正确方法是什么?

    编辑:

    好的,很多评论,我试着在这里而不是在评论中解决。

    1. 你的脚本实际上在做什么?
    2. 足够公平,我已经在上面添加了。我想也许只是下载和执行其他脚本的脚本的想法是基础的或者本身会有一些注意事项,所以我最初没有包含脚本以避免用太多细节来解决问题

      1. 停止时会发生什么?
      2. 它没有停滞,坚持,它只是像客人添加和开发人员基线那样。

        1. 为什么不是厨师或其他什么
        2. 我可能会考虑在某些时候使用木偶或其他东西,但此时我不想这样做。

0 个答案:

没有答案