QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4794|回复: 12

需要在magiclinux3.0的64位环境中运行一些32位程序

[复制链接]
发表于 2014-3-13 19:06:58 | 显示全部楼层 |阅读模式
例如安卓sdk,它里面的程序是32位的,因此需要32位的glibc里的librt.so.1,但是现在仓库里glibc只有64位的。
不知道怎么样造出32位的glibc及一堆其它软件,是否是把src.rpm拿来加个参数重新打包就可以了?本座试过--target=i686-magic-linux,报告说编译器不被支持。
发表于 2014-3-13 22:41:54 | 显示全部楼层
添加32位的仓库就可以了。
我不知道haulm的仓库配置怎么写的。就是那个配置复制一份,把里面的x86_64改成i686就可以了。
回复

使用道具 举报

 楼主| 发表于 2014-3-14 08:03:35 | 显示全部楼层
好像他在发布iso的帖子里说过不支持32位。
等下试试。
回复

使用道具 举报

 楼主| 发表于 2014-3-14 09:51:35 | 显示全部楼层
去haulm在sourceforge上的magiclinux-plus项目里看了一下,确实只有x86_64的rpm包。

目前是从magiclinux2.6里复制出各个缺少的32位so文件过来,安卓SDK已经能正常运行了。

不知道直接把2.6的系统挂载了之后,把其中的/usr/lib目录加入到环境变量里是否可行,会不会引起什么问题。
回复

使用道具 举报

发表于 2014-3-14 16:42:56 | 显示全部楼层
2.6 的32位库最好不要用在 3.0p 的身上,目前 64 位 mgc3.0p 是兼容 sejishikong 的 32 位仓库的,如果有用到开发环境注意一下 libgcc32 就是从 32 位仓库移植过来的库。
目前 64 位上我没精力去实现 32 位支持,比如 wine
这个库我没时间研究,你可以到里面找找看。
http://apt.linuxfans.org/magic/3.0/i686/
sejishikong 的 64 位仓库也许有可用的东西,但千万不要用来升级。
回复

使用道具 举报

 楼主| 发表于 2014-3-14 18:08:18 | 显示全部楼层
原帖由 haulm 于 2014-3-14 16:42 发表
2.6 的32位库最好不要用在 3.0p 的身上,目前 64 位 mgc3.0p 是兼容 sejishikong 的 32 位仓库的,如果有用到开发环境注意一下 libgcc32 就是从 32 位仓库移植过来的库。
目前 64 位上我没精力去实现 32 位支持,比如 wine ...


刚才试了一下这样混用,有冲突了:

依赖解析错误:

Multilib version problems found. This often means that the root
cause is something else and multilib version checking is just
pointing out that there is a problem. Eg.:

  1. You have an upgrade for nss-softokn-freebl which is missing some
     dependency that another package requires. Yum is trying to
     solve this by installing an older version of nss-softokn-freebl of the
     different architecture. If you exclude the bad architecture
     yum will tell you what the root cause is (which package
     requires what). You can try redoing the upgrade with
     --exclude nss-softokn-freebl.otherarch ... this should give you an error
     message showing the root cause of the problem.

  2. You have multiple architectures of nss-softokn-freebl installed, but
     yum can only see an upgrade for one of those architectures.
     If you don't want/need both architectures anymore then you
     can remove the one with the missing update and everything
     will work.

  3. You have duplicate versions of nss-softokn-freebl installed already.
     You can use "yum check" to get yum show these errors.

...you can also use --setopt=protected_multilib=false to remove
this checking, however this is almost never the correct thing to
do as something else is very likely to go wrong (often causing
much more problems).

保护多库版本:nss-softokn-freebl-3.14.3-1mgc30.i686 != nss-softokn-freebl-3.15.2-1mgc30.x86_64
回复

使用道具 举报

发表于 2014-3-15 22:21:10 | 显示全部楼层
这是因为同一个库的版本不一致,版本号一致就可以了。
回复

使用道具 举报

发表于 2014-3-16 07:49:53 | 显示全部楼层
yum 会有很多复本错误提示的,能装就行,似乎 devel 包都会冲突,64 位上运行 32 位在我看来是很麻烦的事情。
回复

使用道具 举报

发表于 2014-3-16 20:08:56 | 显示全部楼层
原帖由 haulm 于 2014-3-16 07:49 发表
yum 会有很多复本错误提示的,能装就行,似乎 devel 包都会冲突,64 位上运行 32 位在我看来是很麻烦的事情。

不不,同一版本的不会提示副本冲突的,部分devel包存在文件冲突,不是副本冲突。
回复

使用道具 举报

 楼主| 发表于 2014-3-17 09:06:03 | 显示全部楼层
那么现在该怎么搞呢?
由于nss-sofokn的这个错误,现在无法装上i686的glibc。
回复

使用道具 举报

发表于 2014-3-18 22:16:08 | 显示全部楼层
原帖由 hxcan 于 2014-3-17 09:06 发表
那么现在该怎么搞呢?
由于nss-sofokn的这个错误,现在无法装上i686的glibc。

这个,如果你都用我的仓库,我可以让两个版本一致,不过现在我用的版本比haulm的高,所以如果不用我的仓库,只能自己编译一个同样版本的i686了。
回复

使用道具 举报

 楼主| 发表于 2014-3-19 09:35:09 | 显示全部楼层
明白了。
回复

使用道具 举报

发表于 2014-3-27 13:14:17 | 显示全部楼层
nss-sofokn 自行编译到同版本即可,也可以把仓库全部定义成 se 的仓库。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-25 01:47 , Processed in 0.104399 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表