在工作中需要用到Ubuntu系统作为支撑系统来编译QT程序和ARM开发板上用的程序,一直以来都是用VMware Workstation虚拟机运行Ubuntu。VMware Workstation这玩意儿耗内存相当厉害,一般的机器正常情况没事,一旦打开VMware Workstation这个软件,那是卡得会让人抓狂。后来微软终于拥抱了Linux,得以摆脱VMware Workstation直接在Windows下面运行Ubuntu,更重要的是,不再需要以启动双系统的方式即可在Windows系统里面直接运行Ubuntu系统,省时省力省开销。这不得不让我们这些需要和Linux接触的人有些小惊喜。
Windows Subsystem for Linux(简称WSL)是一个在Windows 10和Windows 11上能够运行原生Linux二进制可执行文件(ELF格式)的兼容层。它是由微软与Canonical公司合作开发,其目标是使纯正的Ubuntu、Debian等映像能下载和解压到用户的本地计算机,映像内的实用工具能在此子系统上原生运行。适用于 Linux 的 Windows 子系统可让开发人员按原样运行 GNU/Linux 环境 - 包括大多数命令行工具、实用工具和应用程序 - 且不会产生传统虚拟机或双启动设置开销。
子系统这个功能已经在最新版的Windows 10中自带,如果你的Windows10比较老旧,需要先升级至最新版Windows 10,确保Windows10系统版本高于1606。Win + i 组合键打开系统设置,然后打开Windos系统更新,可以检查更新、升级和查看自己的系统版本号,如图:

在Windows10系统里安装Linux Ubuntu的步骤如下:
依次打开控制面板 > 程序和功能 > 启用或关闭Windows功能
勾选“适应于 Linux 的 Windows 子系统”,确定
在确定之后,Windows系统会自动安装一些所需的文件,完成后会提示你重启后才会生效,选择“立即重新启动”。
完成上一步的操作并且重新启动之后,通过左下角的放大镜搜索应用商店。

打开Microsoft Store,搜索Ubuntu,会出来一些结果,点击需要的版本(根据自己需要选择要安装的Ubuntu版本),出现安装按钮,最后点击安装按钮,应用商店会自动下载,安装。安装完成会出现打开按钮。

点击“打开”按钮,Windows终端会弹出,首次安装需要等待几分钟。
安装完成后,需要输入用户名和密码,用户名和密码自行设置即可。

至此,Windows子系统的安装就已经完成了。默认的Linux子系统不具备图形桌面,全命令行运行模式。
需要注意的是,如果你需要用到串口通讯,WSL1的串口是与Windows共用的,只是叫法与写法不一样,比如Windows下面的串口是COM1,对应的Linux Ubuntu系统则是/dev/ttyS0。如果因为某些原因您需要升级到WSL2,你会发现Ubuntu的串口通讯与Windows串口不能共用了。所以升级需谨慎。
关于WSL1和WSL2的比较,可参考微软官方文档
查看本机安装的Windows子系统,可以在Windows终端(Windows PowerShell)使用命令:
wsl --status或者:wsl -l -v 都可以

我使用了一段时间,发现WSL1和WSL2两个版本都有一些不尽如人意的地方,有时候不得不需要在WSL版本之间切换的才能达到自己的目的,在Windows终端(Windows PowerShell)使用命令:
wsl --set-version Ubuntu-20.04 2
或者
wsl --set-version Ubuntu-20.04 1
在WSL2和WSL1之间切换。比较痛苦的是,这种切换是需要一段时间的,我等过最久的是30分钟左右。所以后来想了一办法,我在Windows中安装了两个Linux子系统,一个Ubuntu20,使用WSL2;一个是Ubuntu18,使用WSL1。根据自己不同的需要决定使用哪个子系统,必要的时候两个同时打开,同时打开两个子系统,比一个子系统在两个WSL版本之间切换可省事太多了。
默认情况下,Windows子系统已经安装SSH,但不好用。先卸载再安装,打开Ubuntu子系统,输入命令:
sudo apt-get remove openssh-server
sudo apt-get install openssh-server
配置ssh:(注意同级目录下可能有ssh_config,不要搞错)
sudo vim /etc/ssh/sshd_config
我修改了3处:
● Port 22
● PasswordAuthentication yes
● PermitRootLogin yes


ssh配置完成之后,使用ssh客户端可成功连接到ubuntu子系统:

全文完
我想为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
我打算为ruby脚本创建一个安装程序,但我希望能够确保机器安装了RVM。有没有一种方法可以完全离线安装RVM并且不引人注目(通过不引人注目,就像创建一个可以做所有事情的脚本而不是要求用户向他们的bash_profile或bashrc添加一些东西)我不是要脚本本身,只是一个关于如何走这条路的快速指针(如果可能的话)。我们还研究了这个很有帮助的问题:RVM-isthereawayforsimpleofflineinstall?但有点误导,因为答案只向我们展示了如何离线在RVM中安装ruby。我们需要能够离线安装RVM本身,并查看脚本https://raw.github.com/wayn
我有一个奇怪的问题:我在rvm上安装了rubyonrails。一切正常,我可以创建项目。但是在我输入“railsnew”时重新启动后,我有“程序'rails'当前未安装。”。SystemUbuntu12.04ruby-v"1.9.3p194"gemlistactionmailer(3.2.5)actionpack(3.2.5)activemodel(3.2.5)activerecord(3.2.5)activeresource(3.2.5)activesupport(3.2.5)arel(3.0.2)builder(3.0.0)bundler(1.1.4)coffee-rails(
我刚刚为fedora安装了emacs。我想用emacs编写ruby。为ruby提供代码提示、代码完成类型功能所需的工具、扩展是什么? 最佳答案 ruby-mode已经包含在Emacs23之后的版本中。不过,它也可以通过ELPA获得。您可能感兴趣的其他一些事情是集成RVM、feature-mode(Cucumber)、rspec-mode、ruby-electric、inf-ruby、rinari(用于Rails)等。这是我当前用于Ruby开发的Emacs配置:https://github.com/citizen428/emacs
我正在尝试在我的centos服务器上安装therubyracer,但遇到了麻烦。$geminstalltherubyracerBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtherubyracer:ERROR:Failedtobuildgemnativeextension./usr/local/rvm/rubies/ruby-1.9.3-p125/bin/rubyextconf.rbcheckingformain()in-lpthread...yescheckingforv8.h...no***e
我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search
我实际上是在尝试使用RVM在我的OSX10.7.5上更新ruby,并在输入以下命令后:rvminstallruby我得到了以下回复:Searchingforbinaryrubies,thismighttakesometime.Checkingrequirementsforosx.Installingrequirementsforosx.Updatingsystem.......Errorrunning'requirements_osx_brew_update_systemruby-2.0.0-p247',pleaseread/Users/username/.rvm/log/138121
由于fast-stemmer的问题,我很难安装我想要的任何rubygem。我把我得到的错误放在下面。Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingfast-stemmer:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcreatingMakefilemake"DESTDIR="cleanmake"DESTDIR=
当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub
我试过重新启动apache,缓存的页面仍然出现,所以一定有一个文件夹在某个地方。我没有“公共(public)/缓存”,那么我还应该查看哪些其他地方?是否有一个URL标志也可以触发此效果? 最佳答案 您需要触摸一个文件才能清除phusion,例如:touch/webapps/mycook/tmp/restart.txt参见docs 关于ruby-如何在Ubuntu中清除RubyPhusionPassenger的缓存?,我们在StackOverflow上找到一个类似的问题: