WIN10子系统Ubuntu16.04安装ia32-libs库

从网络上找到的方法基本都不适用了, 使用旧的源什么的都找不到这个库文件了, 现在提供离线下载文件及安装方法:

首先一定要包含Ubuntu官方的源, 不要只用国内的源, 有些i386的安装包国内的镜像没有.

1.  sudo dpkg --add-architecture i386, 添加386架构, 默认是没有的, 所以在线也搜不到:i386这样的安装包;

2. sudo apt-get update, 更新源列表;

3. 使用下面链接里面提供的deb包手动安装, sudo dpkg -i ./ia32-libs_2016.02.18_amd64.deb

4. 这一步会报错, 依赖包没有安装, 这时候可以运行sudo apt-get -f -y install进行依赖包在线安装, 这个过程可能随时间源中的包不存在了, 到这个网站进行搜索下载https://ubuntu.pkgs.org, 后面我会一并提供下载包, 解压到/var/cache/apt/archives/目录中 , 就不用在线下载了, 也可以手动安装, 不过工作量不小...

5. 安装完依赖包后再安装ia32基本就OK了.

下载地址 :https://download.csdn.net/download/xinxinsky/11257340

 

以上为ia32-libs库的安装方法, 不过我的目的是运行交叉编译环境arm-linux-gnueabi-gcc, 是32位的应用程序, 开始我以为是下载的编译器出问题了, 然后我写了个简单例程, 然后gcc -m32 helloworld.c -o helloworld编译, 运行也是无法运行的, 这个时候我就郁闷了, 不过好歹从网络上找到解决办法了, 应该是Win10 Linux子系统的问题, 解决办法为:

先安装qemu-user-static : sudo apt-get 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'

然后再运行helloword或者交叉编译环境都OK了, 截图纪念:

最后还有个问题是当你重新进入子系统后就又不好使了, 那是因为binfmt-support服务没有启动,

运行:sudo service binfmt-support start就可以了, 在这里也可以将该服务添加到系统启动脚本里就可以了.

在Win10子系统中没法使用rc.local进行服务启动, 网络上有一些其他办法, 我使用了sudo免密码+etc/profile的方式完成该服务的启动, 步骤如下:

1. 编辑sudo配置文件 sudo visudo, 在文件末尾添加如下一行

你的登录名 ALL=NOPASSWD:ALL

保存退出, 编辑前最好备份一下这个文件, 要提醒的是Linux的文件系统目录为

C:\Users\你用户名\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu16.04onWindows_79rhkp1fndgsc\LocalState\rootfs, 在这个目录下你可以直接在Windows中访问Linux下的目录结构, 做好备份以防sudo不好使, 因为子系统没法进入超级用户, 所以做好备份, 惨痛的经历....

2. 编辑好后就可以编辑profile文件了 sudo vim /etc/profile

再最后添加一行: sudo service binfmt-support start, 然后退出重新登录就会有如下提示了:

 * Enabling additional executable binary formats binfmt-support                 [ OK ]

然后再运行32位程序就OK了~!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值