使用emerge工具總是出錯沒辦法,只好手工操作。
1、準備/usr/portage/dev-libs/ace/ace-5.7.2.ebuild的補丁ace-5.7.2.ebuild.patch:
2、使用下面的ace-5.7.2.ebuild.sh的腳本:
3、ace-5.7.2.ebuild.sh的腳本說明:
把之前安裝的ace-5.7.2清除掉,這是因爲直接使用emerge出錯產生的垃圾文件;
如果沒有把ACE-5.7.2.tar.bz2下載到中,那麼得下載;
現在可以解ACE-5.7.2.tar.bz2壓縮包了;
因爲要修改/usr/portage/dev-libs/ace/ace-5.7.2.ebuild這個文件,先備份下,避免以後使用emerge安裝或者同步portage的時候驗證出錯;
打上補丁,修改下/usr/portage/dev-libs/ace/ace-5.7.2.ebuild,出錯的地方總是由於ace的example,至於test沒必要用吧,或者如果不是5.7.2的版本,也可以自己修改ace/config.h和include/makeinclude/platform_macro.GNU文件,當然如果用ebuild compile的話還是不要修改了,它會自己生成這兩個文件,當然也可以自己手工生成咯。
編譯整個包了,使用--skip-manifest,是由於修改了/usr/portage/dev-libs/ace/ace-5.7.2.ebuild,如果不加上ebuild會驗證這個文件,肯定發現內容不對頭了,當然可以使用 修改/usr/portage/dev-libs/ace/Manifest,問題是下次同步portage的時候會報告錯誤的,至於這裏修改/usr/portage/dev-libs/ace/ace-5.7.2.ebuild了,後面會恢復過來;
這下生成了安裝的鏡象image啦,不過還沒有真的安裝,假的啦,還是在/var/tmp/portage目錄下
這個纔是真正的把ace安裝到/usr/include和/usr/lib目錄下
吃完了,當然要抹乾淨了,這個是清除/var/tmp/portage目錄下內容
恢復/usr/portage/dev-libs/ace/ace-5.7.2.ebuild這個文件,原因前面說了
當然,要是想把ACE從系統清除掉用下面這個命令吧:
哦, 上面的ebuid這個動作是不是跟emerge操作很類似呢?