Ubuntu误删kernel-package和essential-build软件包问题的解决方案
先说起因(略长),操作系统是Ubuntu xenial (16.04.10 LTS) server版,原本打算安装perl5-16,但是在make test的时候总是有各种奇怪的问题,尝试的了许多个版本(perl5-14, perl5-16, perl5-18)都没能成功安装,而perl5-20以上的版本能够安装成功,似乎很多人都在Ubuntu上遇到的了这个问题 https://github.com/gugod/App-perlbrew/issues/611 ,但是目前我还没有找到解决方案。回到正题,因为在CentOS能够成功安装,于是我考虑问题有可能是出在编译器上(因为安装成功的CentOS上配置的是gcc 4.x,这个安装失败的Ubuntu上配置的是gcc 5.x,gcc 5.x似乎在ABI上有所改变,这个问题会导致有些使用旧版编译器编译的库文件无法正常的和使用新版编译器编译的程序正常工作),总之就是尝试安装一个旧版编译器,然后试试能否安装成功。但是安装旧版gcc的过程中,遇到了缺少依赖GMP、MPFR、MPC的问题,后来找了一个deb包用apt-get来安装,结果就出现了这篇博客的问题,因为这几个库十分底层,是很多上层软件的依赖,使用apt-get安装的时候把很多软件给移除掉了,最要命的是移除掉了kernel-package、build-essential、gcc等包