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

前幾天 Ubuntu 14.04終於發佈了,然後就開始了預謀已久的系統升級了。

以前都是安裝 32 位的Ubuntu,這次想開始全新的 64 位時代了,所以安裝了 64 位的 Ubuntu14.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-getinstall gcc-multilib


3 下載 BeyondCompare(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的都有!


好不容易下載完了,在安裝的時候還是遇到了老問題:軟件包依賴關係!

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章