让64位的WSL(windows子linux系统)支持运行32位程序

假设有一个新的Ubuntu WSL实例,则需要安装qemu-user-static软件包,添加i386 binfmt,启用i386体系结构,更新软件包列表,并安装一些i386软件包:

安装qemu和binfmt

sudo apt update
sudo apt install qemu-user-static
sudo update-binfmts --install i386 /usr/bin/qemu-i386-static --magic ‘\x7fELF\x01\x01\x01\x03\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x03\x00\x01\x00\x00\x00‘ --mask ‘\xff\xff\xff\xff\xff\xff\xff\xfc\xff\xff\xff\xff\xff\xff\xff\xff\xf8\xff\xff\xff\xff\xff\xff\xff‘

需要更新软件包列表,已添加sudo apt update

这将通过使它们通过qemu-i386-static执行来激活i386支持,并将配置文件放入其中/var/lib/binfmts/以供将来重新激活。

每次重新启动WSL并需要i386支持时,都需要重新激活此功能:

sudo service binfmt-support start

启用i386架构和软件包

sudo dpkg --add-architecture i386
sudo apt update
sudo apt install gcc:i386

  

参考:https : //github.com/Microsoft/WSL/issues/2468

转自:https://www.jianshu.com/p/3df082840b40

原文地址:https://www.cnblogs.com/huang-y-x/p/12343582.html

时间: 2024-10-10 10:52:53

让64位的WSL(windows子linux系统)支持运行32位程序的相关文章

64位 Windows 8/7 系统下的 32位PLSQL 联接 64 位 Oracle 11g

64位 Windows 8/7 系统下的 32位PL/SQL 联接 64 位 Oracle 11g 说明:安装完后Oracle的 oci.dll 是64位的,而32位应用程序 PL/SQL Developer 无法加载 解决方案 步骤一:下载Instant Client for Microsoft Windows (32-bit) 包  地址:http://www.oracle.com/technetwork/topics/winsoft-085727.html 步骤二:解压文件 步骤三:配置系

如何在64位版本Linux上开发运行32位应用程序

最近换了Linux系统,由i686换成了x86-64,导致在进行开发的时候出用不了原来SDK中32位的开发工具.于是,博主找到如下文章,博主亲测实用: 如何在64位版本Linux上开发运行32位应用程序 内容如下: 很多程序员(特别是别的公司的)跟我抱怨说他们32位软件无法在我们的64位Linux系统上正常运行,而在他们32位机上正常,其实这个很好解决,一般 是64位系统安装后没有默认安装glibc的32位版本,通过简单的执行以下命令即可实现在64位Linux系统上开发运行32位应用程序,而不用

64位系统上运行32位程序能否申请到8G内存?

申请不到,因为64为系统在运行32位程序的时候只是为了向下兼容而已,对于32位程序来讲,申请8G的存储空间没有任何意义,因为32位的程序最大寻址空间只有4G,32位程序在编译之后的机器代码也只有32位的寻址数(指针占4个字节),因此申请8G的空间是没啥意义的,而且一般系统都会为每个进程设置一些资源限制,对于32位程序其能申请的内存量也远远小于4G可以看一下下面这个表操作系统内部数据结构限制对比 IT168评测中心 分组 限制 64位Windows限制 类别 单个进程虚拟空间 4GB 16TB 用

转载:查看linux系统版本是32位的还是64位的

一. [root@linuxzgf ~]#getconf LONG_BIT[root@linuxzgf ~]#getconf WORD_BIT(32位的系统中int类型和long类型一般都是4字节,64位的系统中int类型还是4字节的,但是long已变成了8字节inux系统中可用"getconf WORD_BIT"和"getconf LONG_BIT"获得word和long的位数.64位系统中应该分别得到32和64.) 二. [root@linuxzgf ~]#un

查看Linux系统版本是32位还是64位的命令

直接输入命令: uname -a 然后:如果有x86_64就是64位的,没有就是32位的 后面是X686或X86_64则内核是64位的,i686或i386则内核是32位的

查看linux系统版本是32位还是64位

如何查看ubuntu版本是64位还是32位的: 1.# uname -a 如果有x86_64就是64位的,没有就是32位的 2.# uname -mx86_64 3.# archx86_6 如何查看ubuntu版本号: 1. # lsb_release -a No LSB modules are available.Distributor ID: UbuntuDescription: Ubuntu 12.04 LTSRelease: 12.04Codename: precise 2. # cat

C++内存管理1-64位系统运行32位软件会占用更多的内存吗?

随着大容量内存成为电脑平台常规化的配置,在配置组装机时很多的用户都会选择8GB甚至是16GB的容量规格内存使用在自己的机器上,如果要将这8GB甚至是16GB的内容在系统使用时能充分利用起来的话,你平台必须使用64位的操作系统作为支持. 但值得注意的是虽然64位系统已经在近几年成为主流,但不少的软件或者不少的用户在使用电脑时运行的软件仍为32位版本,这引发了一个有趣的问题.你需要更多或更少的内存来让32位应用程序运行在64位版本的Windows?并且还有一个传言是说“在64位系统运行32位应用程序

Linux判断CPU是32位还是64位,判断系统是32位还是64位

from:http://www.ipcpu.com/2010/08/linux-cpu-32-64/ 本文仅限于服务器CPU和Linux系统讨论,与台式电脑.笔记本无关. 32位.64位不能乱装,64的能装32位的,因为64位的CPU可以兼容32位,32位的装不了64位的.最近部署了MongoDB,系统是32位的提示会有最大文件2G的限制.还有最常见的问题32位系统不支持4G以上内存,即使打PAE效率也受影响. 1.判断CPU是32位还是64位 这个问题比较有意思,网上给出的办法都是判断了系统的

Windows与Linux系统拷贝文件之pscp的使用分享

因为需要把linux环境下的oracle或mysql的数据库备份文件存放至windows环境保存,找到了这个pscp工具来实现,以下是我的个人使用的分享,希望对大家的使用有所帮助:1.首先需要确认所使用的windows环境是32位还是64位可以通过在cmd窗口输入 systeminfo来查询该系统的信息,以下举例winserver2003与winserver2008r2的信息截图,通过系统类型与处理器这两个信息,很容易知道当前操作系统的位数 2.下载对应的pscp,下载的地址为https://w