前几天 Ubuntu 14.04终于发布了,然后就开始了预谋已久的系统升级了。
以前都是安装 32 位的Ubuntu,这次想开始全新的 64 位时代了,所以安装了 64 位的
首先,要在
1 打开终端,使用 dpkg命令(dpkg --help 查看帮助)进行架构的添加:
dpkg
--add-architecture i386 // 添加对 i386架构的支持 dpkg
--remove-architecture i386 // 移除对 i386架构的支持
2 安装基础的 32位库:
在终端中输入命令(使用软件包管理工具也可以):
sudo apt-getinstall gcc-multilib
3 下载 BeyondCompare(deb包),安装时会报缺少库 ia32-libs 的错误,所以需要先完成 ia32-libs的安装,
4安装
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的都有!
好不容易下载完了,在安装的时候还是遇到了老问题:软件包依赖关系!
lib32asound2
依赖的软件包是 libasound2 (=1.0.25-3ubuntu3.1);
lib32v4l-0依赖的软件包是
libv4l-0 (=0.8.8-3);
就是说前面 32位的软件包又依赖后面 64 位的软件包,通过新立得搜索发现这两个 64位的软件包都已经安装了,只是版本太高了!而两个
32位的软件包都是依赖特定的版本(=)。 执行命令:sudo apt-getinstall lib32bz2-1.0 lib32ncurses5 lib32z1lib32tinfo5
这时候我首先想通过强制安装试一下,就是先忽略依赖关系:
我用的是忽略依赖版本,其他选项使用命令查看: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.debdeb;
2 解压缩 deb包中的控制信息:
cddeb
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 -bdeb
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