在vagrantfile上设置virtualbox的1/4内存

在vagrantfile上设置virtualbox的1/4内存,vagrant,virtualbox,vagrantfile,ubuntu-server,Vagrant,Virtualbox,Vagrantfile,Ubuntu Server,我对vagrant是个新手,我试图将我的机器设置为系统内存的1/4,如下所示: config.vm.define "UbuntuServer2" do |server2| server2.vm.box = "ubuntu/trusty64" server2.vm.provider :virtualbox do |vb| vb.customize ["modifyvm", :id, "--cpuexecutioncap", "50"] vb.customize ["modifyvm", :

我对vagrant是个新手,我试图将我的机器设置为系统内存的1/4,如下所示:

config.vm.define "UbuntuServer2" do |server2|
server2.vm.box = "ubuntu/trusty64"
server2.vm.provider :virtualbox do |vb|
  vb.customize ["modifyvm", :id, "--cpuexecutioncap", "50"]
  vb.customize ["modifyvm", :id, "--memory", 'echo -n $($(awk '/MemTotal/' {print $2} /proc/meminfo / 1024 / 4))']

 end
end
但我得到了一个错误: 路径: 电话号码:38 消息:NameError:未初始化的常量MemTotal

如何初始化这个变量?
我正在使用MacOs 10.11.5
提前感谢。

如果您的主机操作系统是mac,我将在这种情况下使用以下内容

config.vm.define "UbuntuServer2" do |server2|
  server2.vm.box = "ubuntu/trusty64"
  server2.vm.provider :virtualbox do |vb|
    vb.customize ["modifyvm", :id, "--cpuexecutioncap", "50"]
    mem = `sysctl -n hw.memsize`.to_i / 1024 / 1024 / 4
    vb.customize ["modifyvm", :id, "--memory", mem]

  end
end
我有一个更完整的脚本,可以帮助任何人,如果需要的话

  config.vm.provider "virtualbox" do |v|
      host = RbConfig::CONFIG['host_os']
      # Give VM 1/4 system memory & access to all cpu cores on the host
      if host =~ /darwin/
        cpus = `sysctl -n hw.ncpu`.to_i
        # sysctl returns Bytes and we need to convert to MB
        mem = `sysctl -n hw.memsize`.to_i / 1024 / 1024 / 4
      elsif host =~ /linux/
        cpus = `nproc`.to_i
        # meminfo shows KB and we need to convert to MB
        mem = `grep 'MemTotal' /proc/meminfo | sed -e 's/MemTotal://' -e 's/ kB//'`.to_i / 1024 / 4
      else
        cpus = `wmic cpu get NumberOfCores`.split("\n")[2].to_i
        mem = `wmic OS get TotalVisibleMemorySize`.split("\n")[2].to_i / 1024 /4
      end

      v.customize ["modifyvm", :id, "--memory", mem]
      v.customize ["modifyvm", :id, "--cpus", cpus]
  end

如果你的主机操作系统是mac的话,下面是我在这种情况下使用的方法

config.vm.define "UbuntuServer2" do |server2|
  server2.vm.box = "ubuntu/trusty64"
  server2.vm.provider :virtualbox do |vb|
    vb.customize ["modifyvm", :id, "--cpuexecutioncap", "50"]
    mem = `sysctl -n hw.memsize`.to_i / 1024 / 1024 / 4
    vb.customize ["modifyvm", :id, "--memory", mem]

  end
end
我有一个更完整的脚本,可以帮助任何人,如果需要的话

  config.vm.provider "virtualbox" do |v|
      host = RbConfig::CONFIG['host_os']
      # Give VM 1/4 system memory & access to all cpu cores on the host
      if host =~ /darwin/
        cpus = `sysctl -n hw.ncpu`.to_i
        # sysctl returns Bytes and we need to convert to MB
        mem = `sysctl -n hw.memsize`.to_i / 1024 / 1024 / 4
      elsif host =~ /linux/
        cpus = `nproc`.to_i
        # meminfo shows KB and we need to convert to MB
        mem = `grep 'MemTotal' /proc/meminfo | sed -e 's/MemTotal://' -e 's/ kB//'`.to_i / 1024 / 4
      else
        cpus = `wmic cpu get NumberOfCores`.split("\n")[2].to_i
        mem = `wmic OS get TotalVisibleMemorySize`.split("\n")[2].to_i / 1024 /4
      end

      v.customize ["modifyvm", :id, "--memory", mem]
      v.customize ["modifyvm", :id, "--cpus", cpus]
  end

你的操作系统是什么?我正在为你的操作系统更新MacOs 10.11.5ok-你的命令是针对linux的,所以我以为你有一个基于linux的主机谢谢Frederic!工作很好:)当然!再次感谢:)你的操作系统是什么?我正在为你的操作系统更新MacOs 10.11.5ok-你的命令是针对linux的,所以我以为你有一个基于linux的主机谢谢Frederic!工作很好:)当然!再次感谢:)