码迷,mamicode.com
首页 > 系统相关 > 详细

ubuntu-14.04-desktop-amd64 安装 Beyond Compare,ia32-libs

时间:2016-01-02 10:22:36      阅读:479      评论:0      收藏:0      [点我收藏+]

标签:

前几天 Ubuntu 14.04 最终公布了,然后就開始了预谋已久的系统升级了。

曾经都是安装 32 位的 Ubuntu,这次想開始全新的 64 位时代了,所以安装了 64 位的 Ubuntu 14.04。

只是安装完系统后。安装一些软件时发现库或者软件包依赖的问题。于是就各种搜索找解决的方法,终于算是把问题都攻克了。所以写篇文章总结一下在 64 位系统下安装 32 位软件以及解决 deb 包依赖的一些方法。

首先,要在 64 位系统下安装 32 位软件须要有一些基本库(32位)的支持,比如:libc6:i386 等。默认情况下,64 位的 Ubuntu 使用软件中心或者新立得等工具安装的都是 64 位的库或者软件。所以要想安装 32 位的库或者软件须要进行一些必要的设置来使系统支持 i386 架构的软件:

1 打开终端。使用 dpkg 命令(dpkg --help 查看帮助)进行架构的加入:


dpkg --add-architecture i386                                 // 加入对 i386 架构的支持

dpkg --remove-architecture i386                           // 移除对 i386 架构的支持


2 安装基础的 32 位库:

在终端中输入命令(使用软件包管理工具也能够):

sudo apt-get install gcc-multilib


3 下载 Beyond Compare(deb包),安装时会报缺少库 ia32-libs 的错误。所以须要先完毕 ia32-libs 的安装,

    尽管我下载的就是 amd64 版本号的软件,但还是会依赖 ia32-libs,可能是 64 位不全然,呵呵;


4 安装 ia32-libs(下载地址: http://pkgs.org/):

sudo dpkg -i ia32-libs_20140131_amd64.deb

运行上面的命令后发现还是软件包依赖关系不满足,缺少下面软件包(我的电脑是这几个):

lib32z1

lib32ncurses5

lib32asound2

lib32v4l-0


ps:上面命令运行完后尽管安装是失败的。可是会造成其它软件包安装时出问题,最好清理掉:

        sudo dpkg -r ia32-libs

当中前两个能够直接在新立得软件包管理器中找到。而另外两个却没有!

继续从  http://pkgs.org/  搜索下载(amd64的)。

在这里不得不说一下,这个站点真是不错,有超多的软件包。rpm和deb的都有!


好不easy下载完了,在安装的时候还是遇到了老问题:软件包依赖关系!

lib32asound2 依赖的软件包是 libasound2 (= 1.0.25-3ubuntu3.1);

lib32v4l-0 依赖的软件包是 libv4l-0 (= 0.8.8-3)。


就是说前面 32 位的软件包又依赖后面 64 位的软件包,通过新立得搜索发现这两个 64 位的软件包都已经安装了,仅仅是版本号太高了!而两个 32 位的软件包都是依赖特定的版本号(=)。


这时候我首先想通过强制安装试一下,就是先忽略依赖关系:

我用的是忽略依赖版本号,其它选项使用命令查看:dpkg --force-help

sudo dpkg -i --force-depends-version lib32asound2_1.0.25-3ubuntu3.1_amd64.deb


这样确实是能够安装上的,可是使用新立得管理时提示有破损的软件包,这样可能导致其它软件包安装出问题,看来这样强制安装的方法是不可取的。仅仅能寻找其它办法了!


既然已经安装了高版本号。而且在高版本号的依赖关系里写明了替代之前的版本号,那么库内部的实现应该是兼容的。所以考虑尝试改动deb软件包。


開始想直接通过归档管理器提取deb包中 DEBIAN 下的 control 文件。通过 vi 或者 gedit 改动后,再替换掉原来的。可是无法通过归档管理器向deb包中加入文件。看来须要使用deb打包工具了。

搜索一番后发现假设仅仅是进行简单改动再又一次打包。那么使用 dpkg-deb 命令就能够了。

其它关于deb打包的知识:http://www.startos.com/ubuntu/tips/2010122417734.html


改动下载的deb包,将deb包中 DEBIAN 下的 control 文件里关于依赖的字段中的 = 改为 >=:

dpkg-deb --help                                      // 查看命令帮助

1 解压缩 deb 包中的文件:

dpkg-deb -x lib32asound2_1.0.25-3ubuntu3.1_amd64.deb deb;

2 解压缩 deb 包中的控制信息:

cd deb

dpkg-deb -e ../lib32asound2_1.0.25-3ubuntu3.1_amd64.deb

此时在 deb 文件夹下应该有两个文件夹:DEBIAN  和 usr

3 改动 DEBIAN/control 文件:

原来:Depends: libasound2 (= 1.0.25-3ubuntu3.1), libc6-i386 (>= 2.7)

改为:Depends: libasound2 (>= 1.0.25-3ubuntu3.1), libc6-i386 (>= 2.7)

这样事实上就能够了,当然高兴的话把软件包的版本号也改一下,呵呵:

原来:Version: 1.0.25-3ubuntu3.1

改为:Version: 1.0.25-3ubuntu3.2(自己定义)

4 又一次打包:

切换到 deb 文件夹的上一级文件夹下,运行命令(后面软件包名自己定义):

dpkg-deb -b deb lib32asound2_1.0.25-3ubuntu3.2_amd64.deb


出现一个小的警告后,新的 deb 包就打好了!


如今再进行新 deb 包的安装就没有问题了:

sudo dpkg -i lib32asound2_1.0.25-3ubuntu3.2_amd64.deb


另外一个软件包 lib32v4l-0 也是一样的步骤,将对应的 = 改为 >= 又一次打包安装就能够了!


最后再次执行上面的命令完毕 ia32-libs 的安装:

sudo dpkg -i ia32-libs_20140131_amd64.deb


5 最终进入正题了:安装 Beyond Compare (程序猿必备)

ia32-libs 安装好后,一条命令就搞定了:

sudo dpkg -i ia32-libs_20140131_amd64.deb


安装好后启动 bcompare。然后完毕注冊即可了!



--------------------------------------------------------------------------------------------------------------------------

附件:Beyond Compare 和 ia32-libs(内含注冊码。ia32-libs 文件夹下 original 中的是未改动的)

bcompare:http://pan.baidu.com/s/1c0kXh0c

ia32-libs:http://pan.baidu.com/s/1jGDRk0I




ubuntu-14.04-desktop-amd64 安装 Beyond Compare,ia32-libs

标签:

原文地址:http://www.cnblogs.com/mengfanrong/p/5094128.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!