openjdk源碼編譯踩坑

1. 在ubuntu18.04下編譯openjdk源碼

1.1 apt-get 沒法安裝libx11-dev, 換成了aptitude,結果仍是安裝不成功。而且發現aptitude使用不習慣,要換回apt-get,問題就出在了這裏。因爲須要本身下載.deb報,這時在便在搜索引擎中去搜索,導向了一些網址,而後再去下載某些deb.安裝以後卻發現apt仍是有某些兼容問題,提示使用apt --fix-broken install去解決。執行以後仍是發現某些依賴問題。無心間找到了正宗源頭package.ubuntu.com,就這樣一個個的去下載安裝中須要的依賴包,解決了困惑了多年的apt-get自動安裝不能解決的依賴問題。java

1.2 因爲一開始在別的站點libstdc++6高於ubuntu18.04對應(bionic (18.04LTS) )版本,這時想着把該包換成對應版本的。問題就出在了這裏。 因爲須要先卸載該包,但是依賴該包的包特別多,此時提示所有卸載。卸載不卸載哪?因爲了很久,仍是決定冒險試下。結果應用圖表所有基本被搞掉了。怎麼辦哪?幸虧當初存下來了當初要刪除哪些軟件包,那就一個個再恢復吧,看看能不能救活。安裝過程當中某些循環依賴須要藉助apt-get install -f來解決。一個個的弄下來,少說有上百個被刪的軟件包,並且其中不少都有別的許多依賴,好比我要安a,a依賴a1,a2...,a1又依賴b1...轉眼幾個小時過去了,才弄好十幾個,正爲這巨大的工做量擔心,忽然斷網了,並且長時間沒法恢復。鎖屏吧,看看還能不能進來,也是爲了之後要是能修好,重啓後能不能正常進入。結果壞了,進不來了,在輸入密碼處光標一直閃爍,就是不能輸入字符。這樣只能進入其餘tty了,重啓後tty1也變成了只有命令行界面,一切的努力宣告白費,只剩下重裝系統了。c++

2. 在ubuntu20.04下編譯openjdk源碼

重裝系統後,首先試下能不能正常編譯openjdk,畢竟爲了它系統都搞崩了。此次整個過程仍是比較順利。ubuntu

2.1 配置bash

bash configure --with-root-jdk=上一版本jdk路徑 --diasble-warnings-as-errors  ionic

其中--diasble-warnings-as-errors   ,必需要有,否則在make過程當中會把warnings看成errors,從而編譯中斷。ui

這個過程當中也提示安裝libx11-dev等,順利的安裝成功了。搜索引擎

2.2 編譯spa

make命令行

持續幾十分鐘後,終於看到了最後一行的Finish...code

進入build/**,java -version。終於看到了盼望已久的版本號信息。

3.總結

3.1 ubuntu18.04沒法安裝libx11-dev等包,多是因爲系統長期更新,致使內部軟件包的依賴出現了兼容性問題。這時要麼只看源碼,不進行編譯,要麼在新的系統上進行嘗試。

3.2 對於libstdc++6 這些基礎性的包在工做環境中必定不能動,要動也要在實驗環境中,不然會刪除太多依賴它的軟件包,致使整個環境出現嚴重問題。

3.3 要在正確的地方(packages.ubuntu.com)下載軟件包,而且版本最好對應。

相關文章
相關標籤/搜索