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)下载软件包,而且版本最好对应。