如何在GUI中使用Vagrant for CentOS

时间:2015-10-15 11:06:19

标签: qt centos vagrant

我正在尝试使用带有GUI的CentOS版本的Vagrant机器。这是我的流浪文件:

Vagrant.configure(2) do |config|

config.vm.box = "puppetlabs/centos-7.0-64-nocm"
config.vm.provider :virtualbox do |vb|
  vb.name = "DSW-Run-7"
end
config.vm.network "private_network", ip: "192.168.33.13"
config.vm.synced_folder ".", "/home/vagrant/CartoDSW"
config.vm.provider "virtualbox" do |vb|
# Display the VirtualBox GUI when booting the machine
vb.gui = true
  vb.memory = "2048"
end
config.vm.provision "shell", inline: <<-SHELL
sudo yum -y install epel-release
sudo yum -y install qt5-qtbase
sudo yum -y install qt5-qtbase-devel
sudo yum -y install jbigkit.x86_64
sudo yum -y install gcc-c++
sudo yum -y install git
sudo yum groupinstall basic-desktop desktop-platform x11 fonts
  SHELL
end

在此之后我做了vagrant up并且GUI已启动。我尝试使用Vagrant登录,但Vagrant说无效登录&#39;:

  

Centos Linux 7(核心)

     

内核3.10.0-123.e17.x86_64

     

localhost登录:vagrant

     

密码:密码

     

登录不正确

vagrant up之后{I} vagrant ssh使用startx之类的命令,但仍无法启动GUI。

请建议我如何使用GUI安装CentOS,因为我需要使用QT来调试我的代码。

4 个答案:

答案 0 :(得分:1)

为了解决Centos / 7的问题,我使用以下shell命令从Vagrant文​​件安装并启动了GNOME:

config.vm.provision "shell", inline: <<-SHELL
 sudo yum -y groupinstall "GNOME Desktop"
 sudo systemctl set-default graphical.target
 sudo systemctl start graphical.target
SHELL

答案 1 :(得分:1)

对于CentOS 6,我有一个仓库可以在这里工作:https://github.com/hsiaoyi0504/vagrant_centos_6_gui

简而言之,请使用以下代码进行安装和设置:

config.vm.provision "shell", inline: <<-SHELL
  # install GUI desktop
  sudo yum update
  sudo yum groupinstall -y "X Window System" "Desktop"
  sudo yum install -y gnome-core xfce4 xorg-x11-fonts
  sudo echo "id:5:initdefault:" > /etc/inittab
  # fix fonts problem in terminal
  # https://forums.anandtech.com/threads/fonts-screwed-up-in-centos-6-terminal.2186468/
  sudo yum -y install terminus-fonts terminus-fonts-console
  reboot # reboot to load GUI
SHELL

答案 2 :(得分:0)

有两种可能的解决方案:

  • 首先:使用GUI并直接启动GUI
  • 第二名:使用x11转发

第一个选项:以GUI模式启动

vagrant用户在大多数情况下都没有密码(除非你另有说明并构建一个新的框),因为它与ssh密钥连接。

如果您想通过GUI连接,则需要为用户提供新密码。

  • 运行vagrant ssh以连接到VM ​​
  • 运行sudo passwd为您的用户输入新密码

从那里你可以通过GUI登录,然后确保你有X环境开始工作,你可以安装

sudo yum install 'xorg*'
sudo yum install xterm

或安装Gnome环境

yum -y groups install "GNOME Desktop"

确保使用

设置Vagrantfile
config.vm.provider "virtualbox" do |vb|
  vb.gui = true
end

,当您运行vagrant up

时,您的GUI将启动

备选方案,您的第二个选择:使用X11转发

从你试图实现的目标来看,可能有一种更好的方式(但我对QT不够熟悉,无法真正判断)。 Vagrant可以选择转发X11。

  

config.ssh.forward_x11 - 如果true,X11通过SSH转发   连接已启用。默认为false。

您的主机上需要一个X11客户端(如果您在Mac上运行,您可以下载并使用XQuartz它可以很好地完成工作,如果您在另一个系统上运行,请检查等效项< / p>

因此,当您在主机上安装X11客户端并打开config.ssh.forward_x11时,您可以直接运行X-command,它们将在您的主机上转发,所以

sudo yum install xterm
xterm & 

并且xterm窗口将出现在您的主机上。

注意:您可能需要在VM上安装xauth,例如sudo apt-get install xauth(Debian / Ubuntu / ...)或yum install xorg-x11-xauth(CentOS,Fedora,......)。

答案 3 :(得分:0)

将以下内容放入您的Vagrant文​​件中,以重置密码。适用于我通常使用的Centos 6x图像

config.vm.provision :shell, :inline => "echo \"vagrant\"|passwd --stdin vagrant"
config.vm.provision :shell, :inline => "echo \"vagrant\"|passwd --stdin root"

例如:

https://github.com/lastnitescurry/documentum71/blob/master/Vagrantfile

从中得出:

https://github.com/puphpet/packer-templates/blob/master/centos-6-x86_64/http/ks.cfg