首页 >>  正文

apt-get安装gcc

来源:baiyundou.net   日期:2024-08-27

作者: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命令可以看到系统上的依赖之间的冲突(见下图):

即使删除个东西,都会提示这些冲突:

我研究了一下解决方法。

第一步、如果修改了/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

这时候,仍然显示报错(见下图):

按照提示,改用下面的命令来安装:

sudo apt --fix-broken install ./gcc-12-base_12.3.0-1ubuntu1~22.04_amd64.deb

这时候不报错了(见下图):

执行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不兼容:

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个了:

采用sudo apt --fix-broken install 命令解决大批量冲突的情况

这条命令可以解决很多大批量依赖之间冲突的问题:

查看文章精彩评论,请前往什么值得买进行阅读互动

","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":"pika","pub_time":1698931229000,"pure":"","rawurl":"http://zm.news.so.com/36dfa396936281347346560673eb5c00","redirect":0,"rptid":"4d1c3d2c4cebed49","rss_ext":[],"s":"t","src":"什么值得买","tag":[],"title":"Linux系统修复依赖冲突的方法

元兔凝3664怎么在Redhat linux下搭建C编程环境? -
彭寇唐17878123209 ______ 如果你有linux安装盘,直接从安装盘找到相关的安装程序就行了,如果是rhel系列的,可以从add/remove software中找到开发相关的一些程序,比如开发工具、开发库等,选中,安装上就可以了. 安装后可用的是gnu下的一套开发环境,包括gcc、gnu-make等.

元兔凝3664Linux怎样安装gcc? -
彭寇唐17878123209 ______ 你可在你的光盘上找,有一个GCC包和4个依赖文件:glibc-devel-2.3.4-2.13.i386.rpm cpp-3.4.4-2.i386.rpm glibc-kernheaders-2.4-9.1.98.EL.i386.rpm glibc-headers-2.3.4-2.13.i386.rpm gcc-3.4.4-2.i386.rpm 如没有的话,可以用网上自动更新的方式安装,如fedora的话可用yum install gcc这条命令自动安装. 如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快! vae la

元兔凝3664Ubuntu下GCC怎么安装啊 -
彭寇唐17878123209 ______ ubuntu下可以使用包管理器进行安装 比如apt-get install gcc (需要root权限) 或者也可使用aptitude install gcc进行安装 (同样需要root权限) ubuntu也拥有像软件中心或者新立德这样的东西 也可以从软件中心或者新立德中搜索gcc再进行安装 除了以上的方法之外也可以从源码中进行编译安装 不过这种方法过于烦琐,如果没有特殊需求的话通过包管理器安装就可以了

元兔凝3664ubuntu下编译完的C语言程序能否直接运行 -
彭寇唐17878123209 ______ 晕,,不要带着Windows的习惯好不好.. gcc编译出来的就是可执行的二进制程序,不要管扩展名,没意义,linux下一般都不给可执行文件加扩展名的, 比如vim这个程序你终端输入vim就能运行了,要带上扩展名岂不是很麻烦很Windows吗?? gcc -o file file.c 这样编译出来的可执行文件的名字就叫做file. ./file就能够运行了.想直接运行可以 gcc -o file file.c && ./file

元兔凝3664如何在Ubuntu 12.04 LTS中使用低版本gcc/g++ -
彭寇唐17878123209 ______ 在Ubuntu 12.04 LTS中使用低版本gcc/g++解决方法为有两个 第一个方法: 在网页https://launchpad.net/ubuntu/+source/gcc-4.1 上下载对应版本的.deb文件,并放在同一个目录下. 进入这个目录,输入命令 sudo dpkg -i * 安装完gcc-4.1后,需...

元兔凝3664linux下安装GCC -
彭寇唐17878123209 ______ # 解决搭建LAMP环境遇到编译错误# 请将Linux系统盘放入光驱# 以下为Shell脚本# 此脚本功能为安装gcc等解释器 mkdir -p /root/iso mount /dev/cdrom /root/iso cd /root/iso/Server# C++ rpm -ivh compat-gcc-34-c++-3.4.6-4.i386.rpm --force --...

元兔凝3664如何快速使用上C++11 -
彭寇唐17878123209 ______ 1) 安装高版本的gcc,这里以安装gcc 4.8为例:sudo add-apt-repositoryppa:ubuntu-toolchain-r/test sudo apt-get update; sudo apt-get installgcc-4.8 g++-4.82) 光装好高版本的gcc还不行,还要让gcc4.8为当前的使用版本:sudo update-...

元兔凝3664Ubuntu 16.04 怎样安装系统更新和应用更新 -
彭寇唐17878123209 ______ 1.更新Ubuntu的gcc和g++版本,依次进行如下操作:sudo add-apt-repository ppa:ubuntu-toolchain-r/test sudo apt-get update sudo apt-get install gcc-4.7 sudo apt-get install g++-4.72.本人安装过程中提示有存在依赖关系的文件未安装,gcc-4.6-...

元兔凝3664linux中ati显卡驱动(run文件)如何使用 -
彭寇唐17878123209 ______ ubuntu下要求使用root权限才能安装 注销后,按 Ctrl+Alt+F1,登录后 关闭 gdm sudo /etc/init.d/gdm stop 然后开始安装(假设下载的文件ATI.run放在 home 根目录下) sudo sh ATI.run 如果你下载的是 64 位驱动 sudo sh ATI_64.run 进入安装界面...

元兔凝3664如何看linux有没有安装gcc -
彭寇唐17878123209 ______ 我晕, 你到底是在什么发行版? 从提示上来看,要用 apt-get install 来装,说明是 ubuntu/debian之类的linux发行版,你怎么又会去用 rpm 来查询和安装软件? 你不说你是什么发行版,楼上回答的人也不管,直接就让你用rpm,误人子弟啊.正...

(编辑:自媒体)
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图 @ 白云都 2024