前言:之前大二的时候老师上课要求使用虚拟机,我第一次接触时一脸懵逼,当时在网上搜了一堆教程,花了不少时间终于安装成功。如今再次帮弟弟安装的时候对流程着实回忆不太起来,因此打算认认真真写一篇教程,相信在以后能起到不少作用 : )
目录
1、下载VirtualBox安装文件
点击下载链接:Downloads – Oracle VM VirtualBox


2、下载ubuntu20.04
不建议从官网Ubuntu 20.04.3 LTS (Focal Fossa)下载,因为下载速度实在太慢
推荐使用国内镜像站下载,链接:Index of /ubuntu-releases/20.04/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror,根据自己的需求选择,博主的电脑是Windows64位的,所以选择图中的那个: )
不知道自己的电脑是几位的,可以打开电脑的设置,点击关于,查看相关信息

1、打开下载好的VirtualBox安装文件,一路点击“下一步”,留意安装位置,可以将C盘改为D盘







1、运行VirtualBox,点击新建
2、名称可以随意起,图中起为Ubuntu,文件夹的路径可以改为D盘,类型选择Linux,版本选择Ubuntu(64-bit),因为该教程是用虚拟机安装Ubuntu的教程,博主的电脑系统是Windows64位的。
3、自定义虚拟电脑的内存大小和虚拟硬盘




动态分配是指:假设虚拟硬盘文件在实际硬盘中能用的极限大小是10G,选择动态分配的话,虚拟硬盘在实际硬盘中占用的空间是0~10G
固定大小是指:假设虚拟硬盘文件在实际硬盘中能用的极限大小是10G,选择固定大小的话,虚拟硬盘占用实际硬盘的大小永远是10G,无论空间是否全部使用
虚拟硬盘文件在实际硬盘中能用的极限大小可以自主选择,如下所示,图中选择为10G,最后点击创建,之后就会发现“工具”选项卡下方多了一个名为Ubuntu的虚拟机。

1、点击图中的设置开始配置虚拟机的内存、CPU、显存,参数可依据使用目的自行设置




2、安装虚拟盘,选择之前在清华镜像源下载Ubuntu安装文件,可将在浏览器下载的文件复制到自己熟悉路径,图中路径为D盘内ProgramFiles文件夹下Oracle文件夹内。


1、点击启动,点击设备分配光驱,安装Ubuntu,选择中文,最小安装,创建账户






姓名和密码可自定义,但一定要记住!点击继续,然后等待安装完成




1、安装完的Ubuntu显示窗口很小,那是因为分辨率过低,因此需要修改分辨率!首先要打开终端,可以使用快捷键左Ctrl + Alt + T,也可以桌面右键打开终端,或者找到终端图标进行点击

2、打开终端后输入命令行: xrandr
wang@wang-VirtualBox:~$ xrandr
结果显示如下:

3、查看显示模式的相关信息,使用命令:cvt 1920 1080

4、添加显示模式,输入下面两条命令,如图所示

5、接着输入命令xrandr -s 1920×1080,这时分辨率就改为1920×1080了,使用命令xrandr查看,可以发现可供选择的分辨率多了自己自定义的模式

6、虽然分辨率已经改过来了,但这只是暂时的,如果重启系统还是会恢复原样,如果想要该分辨率永久有效,则要修改profile文件。使用gedit 文本编辑器打开文本,输入命令sudo gedit /etc/profile


xrandr --newmode "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
xrandr --addmode Virtual1 "1920x1080_60.00"
xrandr -s 1920x1080
最后保存文本退出,重启系统看看是否生效
1、点击界面的设备,选择安装增强功能,点击运行,输入自己的账户密码,等待完成



2、这时会发现 ”视图“ 里的“自动调整显示尺寸”变亮了,点击就可以是显示窗口自动填满界面。

1、由于前面已经安装过增强功能了。所以直接修改虚拟机的设置进行共享


共享文件夹路径可以自行选择,记得勾选自动挂载


2、回到Ubuntu系统,打开终端,输入创建共享文件夹的命令sudo mkdir /home/eve/桌面/Win10,eve是我的虚拟机的名字,Win10是我所要创建的文件夹;
之后进入“桌面”文件夹,输入命令sudo mount -t vboxsf shared /home/eve/桌面/Win10,将主机共享文件夹与Ubuntu的共享文件夹连接起来,命令中的shared是主机的共享文件夹,/home/eve/桌面/Win10是虚拟机中的共享文件夹

3、但是失败了(翻车了,不过在我意料之中~_~||)
失败原因是之前安装增强功能时运行了光盘里的软件,所以要将光盘弹出重新安装



4、在/media/tuarus_test/VBox_GAs_5.2.16内找到VBoxLinuxAddition.run文件,执行run文件,等待安装成功 
5、由于之前已经创建过共享文件夹了,只是连接失败了,所以无需在创建共享文件夹,直接输入命令sudo mount -t vboxsf shared /home/eve/桌面/Win10,将主机共享文件夹与Ubuntu的共享文件夹连接起来,命令中的shared是主机的共享文件夹,/home/eve/桌面/Win10是虚拟机中的共享文件夹
6、在主机的共享文件夹放置一个文件,如果Ubuntu内的对应共享文件夹内能看到该文件,则说明共享文件夹创建成功。

7、共享粘贴板和拖放,将禁用改为双向


我正在学习如何使用Nokogiri,根据这段代码我遇到了一些问题:require'rubygems'require'mechanize'post_agent=WWW::Mechanize.newpost_page=post_agent.get('http://www.vbulletin.org/forum/showthread.php?t=230708')puts"\nabsolutepathwithtbodygivesnil"putspost_page.parser.xpath('/html/body/div/div/div/div/div/table/tbody/tr/td/div
我有一个Ruby程序,它使用rubyzip压缩XML文件的目录树。gem。我的问题是文件开始变得很重,我想提高压缩级别,因为压缩时间不是问题。我在rubyzipdocumentation中找不到一种为创建的ZIP文件指定压缩级别的方法。有人知道如何更改此设置吗?是否有另一个允许指定压缩级别的Ruby库? 最佳答案 这是我通过查看rubyzip内部创建的代码。level=Zlib::BEST_COMPRESSIONZip::ZipOutputStream.open(zip_file)do|zip|Dir.glob("**/*")d
类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc
很好奇,就使用rubyonrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提
假设我做了一个模块如下:m=Module.newdoclassCendend三个问题:除了对m的引用之外,还有什么方法可以访问C和m中的其他内容?我可以在创建匿名模块后为其命名吗(就像我输入“module...”一样)?如何在使用完匿名模块后将其删除,使其定义的常量不再存在? 最佳答案 三个答案:是的,使用ObjectSpace.此代码使c引用你的类(class)C不引用m:c=nilObjectSpace.each_object{|obj|c=objif(Class===objandobj.name=~/::C$/)}当然这取决于
我正在尝试使用ruby和Savon来使用网络服务。测试服务为http://www.webservicex.net/WS/WSDetails.aspx?WSID=9&CATID=2require'rubygems'require'savon'client=Savon::Client.new"http://www.webservicex.net/stockquote.asmx?WSDL"client.get_quotedo|soap|soap.body={:symbol=>"AAPL"}end返回SOAP异常。检查soap信封,在我看来soap请求没有正确的命名空间。任何人都可以建议我
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。
我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t
我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h
我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po