前言:目标和环境
环境:
Ubuntu 18.04.5 LTS@VMware
目标:
安装vim,解决包依赖的冲突:
本文,通过一个很好的实例,诠释了,LINUX系统下,安装一个应用遇到的依赖库问题如何解决的基本方法和思路。同时,用一个实录的实例,展示了三个法则的使用方法,尤其是法则3,一步一步走到很里面,解决了VIM安装的问题,相信对大家会有帮助。
写在前面的结论:
在嵌入式,linux系统中,我们安装一个应用,经常会遇到包依赖的冲突,我们怎么避免?
法则1:
安装任何应用前,不要上来就安装他,记得先系统更新一下,让,所有的之前的库到一个互相兼容的状态:用以下命令:
sudo apt-get update
遵循这个习惯,大约可以减掉80%你以后要花的时间。
法则2:
能用万能自动依赖差错更新,先用万能依赖查错更新,命令如下:
sudo apt --fix-broken install
这个命令,都不要考虑库,不要输入库,闭眼写,也许就解决了,这可以解决10%你要花费的时间
法则3:
如果,这系统不是你弄的,被别人搞的就不想管了,怎么办?
记住,法则3,看似繁琐,其实是一条亘古不变的可以解决的方法,记住,不要怕繁琐,闭眼,他报了哪个库依赖错误,你就把那个库拎出来,重新安装,那些看似繁琐到天文的LOG恢复,我们稍微用一点法眼,就发现,他其实是告诉你,兄弟,你要整活,那么这里,这里,这里,这里,这里...有问题,他一个一个告诉你,你应该高兴而不是烦躁,把这些冲突的库,都闭眼拿出来重新装,如果装的时候,又提示了下一级的包依赖问题,拿先用法则2,再重新装,记住,先用法则2,再重新装。
sudo apt-get install
install 后面可接很多,很多,
例如:本例
sudo apt-get install libgl1-mesa-dev libgl-dev libgles2-mesa-dev libglu1-mesa-dev libqt5concurrent5 libqt5printsupport5 libqt5sql5 libqt5test5 libqt5xml5 libxext-dev qt5-qmake qtbase5-dev-tools qtchooser libqt5opengl5-dev
最终必定能解决你的包依赖的问题呀,
下面是实例:
问题和解决办法:
因为安装vim之前,先安装了tinyserial和Qt,所以报了库兼容的问题:
问题1:
先运行:
vim xx.c
会提示vim,找不到,然后,提示你:
sudo apt-get install vim
然后,你运行,报错:
donkey) donkeybot@ubuntu:~$ sudo apt install vim
[sudo] password for donkeybot:
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
tinyserial : Depends: libqt5x11extras5 but it is not going to be installed
Depends: libqt5x11extras5-dev but it is not going to be installed
vim : Depends: vim-common (= 2:8.0.1453-1ubuntu1.13) but 2:8.0.1453-1ubuntu1.3 is to be installed
Depends: vim-runtime (= 2:8.0.1453-1ubuntu1.13) but it is not going to be installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).
(donkey) donkeybot@ubuntu:~$ sudo apt --fix-broken install tinyserial
Reading package lists... Done
Building dependency tree
Reading state information... Done
tinyserial is already the newest version (1.2).
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
tinyserial : Depends: libqt5x11extras5 but it is not going to be installed
Depends: libqt5x11extras5-dev but it is not going to be installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).
【分析】
这里就是Ubuntu系统,认为在:(the tinyserial
and vim
packages)之间,发现了不匹配的库依赖(unmet dependencies)。提示解决办法,运行,
sudo apt --fix-broken install
做了,如果不行,然后,tinyserial提示,libqt5x11extras5,libqt5x11extras5-dev,依赖不匹配,vim,Depends: vim-common,Depends: vim-runtime不匹配,咋办?
修复步骤1:
sudo apt-get install libqt5x11extras5 libqt5x11extras5-dev
问题1.1:
【案,这里又提示,libqt5x11extras5-dev 里面 qtbase5-dev】咋办,这里有问题,那就再重装他别,就是这种重装循环,于是
修复步骤1.1
sudo apt --fix-broken install qtbase5-dev
直接挂fix broken,来重装,结果悲催了,
问题1.1.1
【你现在是不是要崩溃了,越高越多,是不是要放弃了】
【案,这时候放弃,你就SB了,这其实发现正在问题了,告诉我,qtbase5-dev,的依赖问题,以及发现了是如此,如此,如此的包不对,也就是找到突破点了】
不要慌,死皮赖脸,这些库都有问题对吧,那就再来 【全部重新装】
修复步骤1.1.1
[最烦的是这里对吧,后面告诉你怎么弄】现在UP主很傻白甜的一个一个搞出来,重装
sudo apt-get install libgl1-mesa-dev libgl-dev libgles2-mesa-dev libglu1-mesa-dev libqt5concurrent5 libqt5printsupport5 libqt5sql5 libqt5test5 libqt5xml5 libxext-dev qt5-qmake qtbase5-dev-tools qtchooser libqt5opengl5-dev
然后,得到了
问题,1.1.1.1
关键的地方来了哈,UP主本来还想来个循环解决,把这些库都COPY出来,重新装,但是,这么多,,于是,他不是一直提示:
【为了偷懒】
解决步骤1.1.1.1
没错,就是这句话,然后,结果是:
结果,他从下往上,把之前的那些几十个依赖包的问题全部解决了!!!!!!!,中间问了两次,其中一次,要不要覆盖老的tinyserial,这不就是和vim冲突的东西吗,兴奋啊
更新了这么多库,感觉做一次全按摩,把系统里面全面检测一二:
修复步骤2:
(donkey) donkeybot@ubuntu:/home/TOFPrj$ sudo apt-get update
Hit:1 http://security.ubuntu.com/ubuntu bionic-security InRelease
Hit:2 http://us.archive.ubuntu.com/ubuntu bionic InRelease
Hit:3 http://us.archive.ubuntu.com/ubuntu bionic-updates InRelease
Hit:4 http://us.archive.ubuntu.com/ubuntu bionic-backports InRelease
Reading package lists... Done
顺利啊,
问题1不就是这个冲突吗,那么我是不是可以重装了,一激动,还把vim写出VIM了,报错
问题2
解决步骤3
换成小写:
sudo apt-get install vim
真正的安装开始了,而且,顺利: