linux+upgrade
作者:yasden
结论:sudo apt --fix-broken install命令可以解决很多依赖之间大批量冲突的问题。
特别提醒:采用“sudo dpkg -i 本地deb文件”来安装deb应用程序,很大概率会产生依赖冲突,因为dpkg是不会自动解决依赖冲突的。强烈建议用“sudo apt-get install 本地deb文件”来安装deb程序,这样apt会自动解决依赖冲突。注意:“sudo apt-get install 本地deb文件”来安装deb的时候,必须指明本地deb文件的路径,如果不指明文件路径,apt会在“源”上去找该文件。
最近发现,我的linux系统的依赖关系有点乱,因为之前我强制安装了一些包,导致出现一些冲突。
用sudo apt-get upgrade命令可以看到系统上的依赖之间的冲突(见下图):
![](https://p0.ssl.img.360kuai.com/t017a127dc332f2ec86.jpg)
即使删除个东西,都会提示这些冲突:
我研究了一下解决方法。
第一步、如果修改了/etc/apt/sources.list文件,最好恢复成原来的默认文件。
用下面的命令将/etc/apt/sources.list文件恢复成系统初始文件,这一步的目的是保证将apt-get的源恢复成系统默认的,假如你添加过什么其他源,都要删除掉,避免干扰(高手如果懂原理,可以不用做这一步):
sudo vi /etc/apt/sources.list
第二步、系统提示什么冲突,就解决那个冲突的包(这个方法采用单个包手动解决的方式,适合只有1-2个包的情况,如果出现大批量冲突则要换其他方法来解决)
例如:上面的信息提示下面的信息(见上图):
依赖: gcc-12-base (= 12.3.0-1ubuntu1~22.04)
先到ubuntu.pkgs官网下载gcc-12-base_12.3.0-1ubuntu1~22.04_amd64.deb文件,然后用下面的命令安装gcc-12-base_12.3.0-1ubuntu1~22.04_amd64.deb:
sudo apt-get install ./gcc-12-base_12.3.0-1ubuntu1~22.04_amd64.deb
这时候,仍然显示报错(见下图):
![](https://p0.ssl.img.360kuai.com/t01419a845a99ad659e.jpg)
按照提示,改用下面的命令来安装:
sudo apt --fix-broken install ./gcc-12-base_12.3.0-1ubuntu1~22.04_amd64.deb
这时候不报错了(见下图):
![](https://p0.ssl.img.360kuai.com/t01aec45406f9cd04a7.jpg)
执行sudo apt --fix-broken install ./gcc-12-base_12.3.0-1ubuntu1~22.04_amd64.deb这条命令的目的是: apt --fix-broken install 会自动从第一步提到的/etc/apt/sources.list这个apt源里面自动查找并修复冲突的依赖,执行之后,会提示下面的信息,也就是提示你,这些冲突的依赖会自动修复(见上图的截图,我将该命令修复的依赖粘贴到下面,给大家仔细看):
将会同时安装下列软件:
lib32gcc-s1 lib32stdc++6 libc6 libc6-dev-i386 libc6-i386 libclang-14-dev libclang-common-14-dev libclang1-14 libllvm14 libobjc4 libstdc++-11-dev
建议安装:
glibc-doc libstdc++-11-doc
推荐安装:
libnss-nis libnss-nisplus gcc-multilib
下列【新】软件包将被安装:
lib32stdc++6
下列软件包将被升级:
gcc-12-base lib32gcc-s1 libc6 libc6-dev-i386 libc6-i386 libclang-14-dev libclang-common-14-dev libclang1-14 libllvm14 libobjc4 libstdc++-11-dev
特别提醒
sudo apt --fix-broken install ./gcc-12-base_12.3.0-1ubuntu1~22.04_amd64.deb这条命令需要指定gcc-12-base_12.3.0-1ubuntu1~22.04_amd64.deb文件的目录(相对目录或者绝对目录都行,我是cd到该文件的下载目录下,所以我使用的是./这个相对目录,你也可以使用绝对目录),如果你不指定gcc-12-base_12.3.0-1ubuntu1~22.04_amd64.deb文件路径的话,apt会傻傻的去apt源里面找,而且apt肯定找不到这个gcc-12-base_12.3.0-1ubuntu1~22.04_amd64.deb文件,如果它能智能到找到并安装“源“里面的这个gcc-12-base_12.3.0-1ubuntu1~22.04_amd64.deb文件,上面我执行sudo apt-get upgrade就不会报缺少gcc-12-base的错了。
如果执行sudo apt --fix-broken install ./gcc-12-base_12.3.0-1ubuntu1~22.04_amd64.deb命令提示下面的报错信息,也就是提示你将要安装的gcc-12-base和系统已经安装的gcc-12-base不兼容:
![](https://p0.ssl.img.360kuai.com/t010e09e4005d294cbf.jpg)
sudo dpkg --force-overwrite -i 命令强制安装某个包
用下面的命令来强制安装该包(注意:使用该命令有可能导致系统故障,除非你清楚知道自己在干嘛,不然不要轻易强制安装执行,下面的命令使用前要千万小心):
sudo dpkg --force-overwrite -i gcc-12-base_12.3.0-1ubuntu1~22.04_amd64.deb
上面的命令执行完毕后,再用sudo apt-get upgrade查看一下,冲突的依赖减少到只有下面的3个了:
![](https://p0.ssl.img.360kuai.com/t01fa74e2527b7ad9b5.jpg)
采用sudo apt --fix-broken install 命令解决大批量冲突的情况
这条命令可以解决很多大批量依赖之间冲突的问题:
![](https://p0.ssl.img.360kuai.com/t01211ca7f85fbe8563.jpg)
![](https://p0.ssl.img.360kuai.com/t014c1446d7ec9e2088.jpg)
查看文章精彩评论,请前往什么值得买进行阅读互动
","gnid":"91ddaf20b8e94b14b","img_data":[{"flag":2,"img":[{"desc":"","height":785,"title":"","url":"https://p0.ssl.img.360kuai.com/t0143144d9888ec0898.jpg","width":1025},{"desc":"","height":785,"title":"","url":"https://p0.ssl.img.360kuai.com/t01835ffda699e5befd.jpg","width":1025},{"desc":"","height":"554","title":"","url":"https://p0.ssl.img.360kuai.com/t01aec45406f9cd04a7.jpg","width":"1022"},{"desc":"","height":529,"title":"","url":"https://p0.ssl.img.360kuai.com/t01712aa81b5155a782.jpg","width":1042},{"desc":"","height":"458","title":"","url":"https://p0.ssl.img.360kuai.com/t01fa74e2527b7ad9b5.jpg","width":"1080"},{"desc":"","height":"229","title":"","url":"https://p0.ssl.img.360kuai.com/t01211ca7f85fbe8563.jpg","width":"1080"},{"desc":"","height":899,"title":"","url":"https://p0.ssl.img.360kuai.com/t010c958ffce75bf738.jpg","width":1080}]}],"original":0,"pat":"art_src_1,fts0,sts0","powerby":"cache","pub_time":1698931229000,"pure":"","rawurl":"http://zm.news.so.com/36dfa396936281347346560673eb5c00","redirect":0,"rptid":"4d1c3d2c4cebed49","rss_ext":[],"s":"t","src":"什么值得买","tag":[],"title":"Linux系统修复依赖冲突的方法
滑乐货4252Linux 下怎么做RAID5
诸衫泪15370795019 ______ 从硬盘里面分出4个分区出来,这个会做吧.分区类型ID为fd.假如不会再问我. 然后激活,假如新建出来的4个分区分别为,/dev/sda5,/dev/sda6,/dev/sda7,/dev/sda8.然后做RAID5,具体操作如下: mdadm -C /dev/md0 -l 5 -n 3 -x 1 /dev/sda{5.....
滑乐货4252怎样在linux系统上安装WPS? -
诸衫泪15370795019 ______ 下面就讲解如何安装linux版wps,方法/步骤:1. #sudo apt-get update&&sudo apt-get dist-upgrade -y 注:更新LINUX源,让系统达到最新.2. #sudo apt-get install wps-office 注:下载并安装wps-office.3. #wps 注:就能运行WPS软件.1. ...
滑乐货4252如何在Linux上安装WPS Office (64bit)? -
诸衫泪15370795019 ______ 下面就讲解如何安装linux版wps,方法/步骤:#sudo apt-get update&&sudo apt-get dist-upgrade -y 注:更新LINUX源,让系统达到最新.#sudo apt-get install wps-office 注:下载并安装wps-office.#wps 注:就能运行WPS软件.Kingsoft Office ...
滑乐货4252ubuntu如何升级到最新内核? -
诸衫泪15370795019 ______ 查看内核 uname -a sudo apt-get update (这一步更新包列表) sudo apt-get dist-upgrade (这一步安装所有可用更新,包括新内核)
滑乐货4252linux如何实现每次开机数值+1,当到达100后,执行重命名d盘的1.txt为1.bak, 如果 -
诸衫泪15370795019 ______ 1、/proc/uptime文件包含启动时间,数值是秒2、创建~/r.txt保存启动次数3、创建脚本u.sh,计划任务每分钟执行一次,如果发现启动时间小于60秒,就判断为刚启动,记录增加1,并将新纪录写入r.txt4、实例#!/bin/sh uptime=`cat /proc/uptime ...
滑乐货4252Linux 怎么挂盘和卸盘? -
诸衫泪15370795019 ______ Linux下每个文件系统都有独立的inode,block,super block等信息,这个文件系统要挂载到目录树才可以使用,将文件系统与目录树结合的操作称为挂载,反之则为卸载.也就是说,挂载点一定是目录,而目录是进入磁盘分区(也就是文件系统)...
滑乐货4252linux centos内核升级有什么用 -
诸衫泪15370795019 ______ 内核不求新,稳定是最重要的 CentOS升级可以以upgrade方式安装一遍就行了
滑乐货4252Linux下如何查看哪个进程占用存储空间多 -
诸衫泪15370795019 ______ linux下获取占用CPU资源最多的10个进程,可以使用如下命令组合: ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head linux下获取占用内存资源最多的10个进程,可以使用如下命令组合: ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head ...
滑乐货4252linux里 yum 更新源和 软件仓库的区别 -
诸衫泪15370795019 ______ Linux升级命令有两个分别是yum upgrade和yum update, 这个两个命令是有区别的:复制代码 代码如下:yum -y update 升级所有包同时也升级软件和系统内核 复制代码 代码如下:yum -y upgrade 只升级所有包,不升级软件和系统内核 实验分...
滑乐货4252LINUX操作系统的启动过程 -
诸衫泪15370795019 ______ 一、启动内核 首先介绍启动内核部分.电脑启动时,BIOS装载MBR,然后从当前活动分区启动,LILO获得引 导过程的控制权后,会显示LILO提示符.此时如果用户不进行任何操作,LILO将在等待制定 时间后自动引导默认的操作系统,而如...