我让学生运行Mac和Windows。每个学期,总会有很多关于如何安装工具“X”的问题。我想创建一个Linux虚拟机(我尝试过VirtualBox)并分发图像。这样,所有工具都已预先安装,每个人都在使用Linux。
问题是,鉴于人们有不同的图形硬件,这是如何工作的?还是有用吗?如果确实如此,我该如何分发它?他们是否必须安装VirtualBox,然后加载我给他们的一些文件,或者我可以轻松创建一个安装程序吗?
我让学生运行Mac和Windows。每个学期,总会有很多关于如何安装工具“X”的问题。我想创建一个Linux虚拟机(我尝试过VirtualBox)并分发图像。这样,所有工具都已预先安装,每个人都在使用Linux。
问题是,鉴于人们有不同的图形硬件,这是如何工作的?还是有用吗?如果确实如此,我该如何分发它?他们是否必须安装VirtualBox,然后加载我给他们的一些文件,或者我可以轻松创建一个安装程序吗?
Answers:
我喜欢mperrin以流浪者为中心的答案,但正如你可能从那里的评论中看到的那样,我的个人观点是“保持简单”,我建议你在配置完成后简单导出VirtualBox OVA并将其传递给学生。
那就是说,你问这个:
问题是,鉴于人们有不同的图形硬件,这是如何工作的?还是有用吗?如果确实如此,我该如何分发它?他们是否必须安装VirtualBox,然后加载我给他们的一些文件,或者我可以轻松创建一个安装程序吗?
我不太确定你在教学或做什么,或者你希望你的学生从这整个练习中得到什么,但是很多关注你正在转向DevOps(开发和运营)的领域,你可能想要考虑将这个概念混合到你的教导中。
现在我不认为DevOps的整个概念需要传达,但在我看来,你创建一个稳定的VirtualBox OVA然后传递给学生并要求他们在他们的家庭/学校机器上使用肯定会打开一扇门关于如何处理不同的硬件/系统设置以及如何适应的问题。
因此,我建议您强烈建议学生使用您设置的VirtualBox OVA,同时也允许学生自行安装工具。我的直觉告诉我95%或更多的学生会愉快而轻松地使用VirtualBox OVA方法,但你不能指望它是100%完美的。
也许最后你应该对课程工具的使用有一些基本的要求,并且在实施时要灵活。
例如,我做了很多PHP开发,并进行与PHP开发相关的系统管理/ DevOps。由于我在Mac上,我更喜欢使用MAMP进行本地开发。但我与使用Linux或Windows进行开发的开发人员合作。哎呀,有些人喜欢使用Vagrant和VirtualBox来满足他们的LAMP开发需求。我的态度是我不关心他们的基本操作系统设置是什么。只要他们的PHP版本与我的客户使用的版本一致,我就可以了。
有时候开发人员会说错误是因为 - 例如 - 我在MAMP上测试的代码与Linux LAMP设置上的代码“不一样”。我100%放心地说,我一直都证明问题不是基本操作系统,而是PHP编码本身。
所以这一切基本上都是为了基本上传达以下内容:只是灵活地向学生解释VirtualBox设置的使用,并且不要期望用勺子操作操作系统来简单地解决所有问题。它可能会将95%的问题排除在公园之外,但剩余的5%将始终以某种方式解决。所以看一下VirtualBox设置 - 也许是一个Vagrant脚本 - 作为一种工具,可以在一个武器库中使用,使一些人的生活更轻松,但不一定是所有问题的最终解决方案。
你应该看看Vagrant。
Vagrant支持VirtualBox,允许您:
创建和配置轻量级,可重现且可移植的开发环境。
与VirtualBox图像的大量导出相比,共享单个或一堆文本文件要容易得多。特别是如果您想管理更新。
一旦VirtualBox和Vagrant安装简单:
vagrant up
将:
单个Vagrantfile还可以处理Windows或Mac主机的特定功能。
这根本不重要 - virtualbox(以及其他所有虚拟化软件)都模拟自己的视频适配器(IIRC卷云逻辑)。虽然传统的virtualbox文件分为不同的文件进行设置和存储,但您可以按照建议将其导出到ovf文件中。如果您的学生可以安装virtualbox或vmware,那应该是微不足道的。如果没有,他们需要学习。
安装virtualbox相当简单(假设您有硬件支持)。
我建议的一些事情 - 将VM保持在32位(因此您不必担心主机上的VT-X支持),创建一个在大型2操作系统上安装virtualbox的方法(Windows很简单, linux需要一些额外的步骤),并导入OVF文件。这也意味着如果学生想要使用vmware播放器等。除非您需要运行可从外部访问的服务器,否则请使用NAT进行联网。
如果性能不是问题,您可能只需将所有内容捆绑到QEMU实例(它们可以设置为自运行)和合适的启动脚本。我认为这是最后的手段。
我注意到很多大学确实为虚拟机提供了合适的工具(IIRC stanfords CS 50,这是edx免费提供的课程),所以值得看看他们是如何做到这一点的。
作为大多数虚拟化技术的替代方案,Linux(例如Ubuntu)可以安装在拇指驱动器上。几乎每台计算机都会启动一个拇指驱动器,大多数现代安装人员会在启动时检测到显卡/网卡。如果您安装了32位Ubuntu,它几乎可以在人们可能拥有的所有硬件上运行。
它们易于分发,不需要任何其他安装的软件。它们也可以轻松地从一台机器移动到另一台机器 - 从学校的计算机上拔下,放在口袋里。当你回到家时,只需将其插入即可。
他们可以相当便宜(我意识到学校的预算非常有限!); 根据将在机器上运行的应用程序,4gb应该足够,也许8GB。
另一个要考虑的选择。如果你真的不担心他们有GUI,你可以使用像terminal.com这样的东西。
您可以创建自己的公共快照,并将其保留给学生。它类似于VirtualBox的方法,但不是自己的机器上安装的虚拟机是在云别人的机器上。
然后,他们只需要一个足够现代的网络浏览器。如果他们感兴趣,他们可以设置它们,以便他们可以使用SSH / Putty /等。
根据他们的数据,如果学生使用的是微型实例(256 MB RAM,几GB的磁盘空间),如果他们在没有使用虚拟机时暂停虚拟机,则需要花费9美元/年才能运行8小时/天。我不能代表terminal.com发言,但我怀疑如果你联系他们,他们可能会为你提供某种教育折扣。