Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vagrant 自动设置流浪客操作系统上的环境变量?_Vagrant_Vagrantfile - Fatal编程技术网

Vagrant 自动设置流浪客操作系统上的环境变量?

Vagrant 自动设置流浪客操作系统上的环境变量?,vagrant,vagrantfile,Vagrant,Vagrantfile,我猜这很简单,但我一直在到处寻找: 每当我打开一个漫游框时,我希望能够在我的来宾操作系统上设置一个环境变量。我不想只在配置上运行,因为这样每次我的盒子停止时都需要重新配置 这似乎是一件非常容易的事情,也许只是Vagrant文件中的一些基本内容,但我尝试过的一切都失败了 如果没有插件(或使用插件),这是否可行?有两种可能性: 如果您不想运行任何资源调配,则需要在来宾操作系统中进行一次资源调配,然后将VM重新打包为新框,这样,当您从此新框启动新VM时,它们将始终自动定义所有设置,然后再打包为新框 尽

我猜这很简单,但我一直在到处寻找:

每当我打开一个漫游框时,我希望能够在我的来宾操作系统上设置一个环境变量。我不想只在配置上运行,因为这样每次我的盒子停止时都需要重新配置

这似乎是一件非常容易的事情,也许只是Vagrant文件中的一些基本内容,但我尝试过的一切都失败了


如果没有插件(或使用插件),这是否可行?

有两种可能性:

  • 如果您不想运行任何资源调配,则需要在来宾操作系统中进行一次资源调配,然后将VM重新打包为新框,这样,当您从此新框启动新VM时,它们将始终自动定义所有设置,然后再打包为新框

  • 尽管如此,运行资源调配还是个不错的主意。比如说

    $script = <<SCRIPT
    echo "alias lt='ls -lt'" >> .bashrc
    echo "export NEW_ENV_VAR=...." >> .bashrc
    SCRIPT
    
    Vagrant.configure(2) do |config|
    
      blablabla
      config.vm.provision "shell", inline: $script, privileged: "false", run: "always"
    
    end
    
    $script=.bashrc
    echo“导出新的环境变量=…”>.bashrc
    剧本
    Vagrant.configure(2)do | config|
    喋喋不休
    config.vm.provision“shell”,内联:$script,特权:“false”,运行:“始终”
    终止
    
  • 这将在
    .bashrc
    文件中设置几个变量(如果愿意,可以在
    .profile
    中设置)

    run:“始终”
    确保每次启动或重新加载时都会运行此设置(变量就位后可能不需要)

    privileged:“false”
    将确保它与您的vagrant用户一起运行,因此它将在vagrant.bashrc文件中更新,如果您未指定此选项,请确保引用文件的完整路径
    .home/vagrant/.bashrc
    ,否则将为root用户执行此操作