ubuntu上安装gcc

ubuntu上安装gcc首先我是直接根据别人博客来的:sudoaptupdatesudoaptinstallbuild-essential主要是说build-essential中包含了GNU编辑器集合

大家好,又见面了,我是你们的朋友全栈君。

首先我是直接根据别人博客来的:

  1.  sudo apt update
  2.  sudo apt install build-essential

主要是说 build-essential 中包含了 GNU 编辑器集合,GNU调试器和其他编译软件所必须的开发库和工具。

结果,报错了。

<span role="heading" aria-level="2">ubuntu上安装gcc

我一开始想到的是直接上博客搜,查到两种解决方案:

  1. 杀死之前的进程

    查出与 apt 相关的进程,然后直接关了。

     ps -e|grep apt

    <span role="heading" aria-level="2">ubuntu上安装gcc

    然后将进程杀死:

    <span role="heading" aria-level="2">ubuntu上安装gcc

    但是我的下载依旧报错;因此我采用了第二种方法。

  2. 强制解锁

    按照别人的博客所说,删除以下两个文件就行了,如下所示:

     sudo rm /var/cache/apt/archives/lock
     sudo rm /var/lib/dpkg/lock

    <span role="heading" aria-level="2">ubuntu上安装gcc

    但是我依旧报错:

     ~$ sudo apt install build-essential
     E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用)
     E: 无法获取 dpkg 前端锁 (/var/lib/dpkg/lock-frontend),是否有其他进程正占用它?

    <span role="heading" aria-level="2">ubuntu上安装gcc

    不急,慢慢来。

    这时我发现报错里貌似有指明冲突在哪,于是我试了试直接强制解锁这里的:

     sudo rm /var/lib/dpkg/lock-frontend

    再安装试试?

     ~$ sudo apt-get install build-essential
     E: dpkg 被中断,您必须手工运行 ‘sudo dpkg --configure -a’ 解决此问题。

    行,那就运行吧。

     ~$ sudo dpkg --configure -a
     dpkg: 错误: 另外一个进程已经为 dpkg 状态数据库 加锁

    额,,,不慌,于是我试了试 apt-get 而不是直接用 apt 安装:

     ~$ sudo apt install build-essential
     正在读取软件包列表... 完成
     正在分析软件包的依赖关系树      
     正在读取状态信息... 完成      
     有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
     因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
     包尚未被创建或是它们已被从新到(Incoming)目录移出。
     下列信息可能会对解决问题有所帮助:
     
     下列软件包有未满足的依赖关系:
      build-essential : 依赖: dpkg-dev (>= 1.17.11) 但是它将不会被安装
     E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

    我本以为是部分软件版本的问题,于是我又跑了一遍 sudo apt install update,但是看起来事情并没这么简单

     ~$ sudo apt update
     命中:1 http://security.ubuntu.com/ubuntu bionic-security InRelease            
     命中:2 http://cn.archive.ubuntu.com/ubuntu bionic InRelease                    
     命中:3 http://cn.archive.ubuntu.com/ubuntu bionic-backports InRelease
     正在读取软件包列表... 完成                        
     正在分析软件包的依赖关系树      
     正在读取状态信息... 完成      
     所有软件包均为最新。
     ~$ sudo apt install build-essential
     正在读取软件包列表... 完成
     正在分析软件包的依赖关系树      
     正在读取状态信息... 完成      
     有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
     因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
     包尚未被创建或是它们已被从新到(Incoming)目录移出。
     下列信息可能会对解决问题有所帮助:
     
     下列软件包有未满足的依赖关系:
      build-essential : 依赖: dpkg-dev (>= 1.17.11) 但是它将不会被安装
     E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

    看来并不是这里的问题,再去网上找找有没有大佬遇到过类似的问题吧。然后就找到了:

    1. 移除 libdpkg-perl 这个软件:

       ~$ sudo apt-get remove libdpkg-perl
    2. 再安装 libdpkg-perl:

       ~$ sudo apt-get install libdpkg-perl
    1. 再安装build-essential:

       ~$ sudo apt-get install build-essential

      至此,问题解决。

      <span role="heading" aria-level="2">ubuntu上安装gcc

     

总结:

有问题可以上网查,但别看都不看直接拿来用,有一点差异的话直接复制粘贴是无法解决的,我在杀死进程和强制解锁那边其实绕了很久,如果直接放进来的话还是太长了。总之,查问题需要结合自己的报错来看,终端的报错才是解决问题的关键。

 

参考:

如何在 Ubuntu 20.04 上安装 GCC(build-essential)-阿里云开发者社区 (aliyun.com)

Ubuntu E: 无法获得锁 /var/lib/dpkg/lock-frontend – open (11: 资源暂时不可用) – 云+社区 – 腾讯云 (tencent.com)

64位ubuntu在安装build-essential遇到依赖问题的解决办法煮虾子的专栏-CSDN博客crossbuild-essential-arm64

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/155039.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java中super()的使用[通俗易懂]

    Java中super()的使用[通俗易懂]目录1.super()的使用实例一一一子类重写父类的方法2.super()的使用实例一一一子类重写父类的变量3.super()的使用实例一一一在子类的构造方法中4.关于构造方法中super()第一种情况:编译不通过第二种情况:编译不通过第三种情况:成功编译通过1.super()的使用实例一一一子类重写父类的方法publicclassA{…

    2022年6月11日
    30
  • csgo开箱网站可以取回的_csgo官方开箱网站在哪里

    csgo开箱网站可以取回的_csgo官方开箱网站在哪里Incsgo,能取回的开箱网.我们为Incsgo爱好者们倾力打造品质卓越的Incsgo开箱平台,Incsgo抽奖网站,安全可靠,玩法多样。立即注册领取奖金,库存充足,全新箱子,一秒取回。Incsgo官方网站-能够取回的csgo开箱子网站官方链接:www.incsgo.gg注册登录自动免费获得$1.00美金优惠码:csgogo(充值使用csgogo可增加5%充值金额)支付:微信支付宝状态:直接取回…

    2022年9月27日
    3
  • js实现modbus_Modbus通讯协议「建议收藏」

    js实现modbus_Modbus通讯协议「建议收藏」Modbus通讯协议Modbus概述Modbus是由Modicon公司(现为施耐德电气的一个品牌)在1978年发明的,这是一个跨时代、里程碑式的网络协议,因为工业网络从此拉开了序幕。Modbus是全球第一个真正用于工业现场的总线协议,据不完全统计:截至到2004中,Modbus的节点安装数量已经超过了800万个,而且75%的产品为非施耐德产品,安装的地区遍及世界各地,可见其普及的程度,已经成为了事…

    2022年7月14日
    25
  • crontab 定时任务配置

    crontab 定时任务配置2019独角兽企业重金招聘Python工程师标准>>>…

    2025年5月27日
    4
  • 项目管理学习笔记之中的一个.项目管理综述「建议收藏」

    项目管理学习笔记之中的一个.项目管理综述

    2022年1月21日
    46
  • UAT环境[通俗易懂]

    UAT环境[通俗易懂]公司上班,会给你数据库账号,SVN等一系列配置。在企业级软件的测试过程中,经常会划分为三个阶段——单元测试,SIT和UAT,如果开发人员足够,通常还会在SIT之前引入代码审查机制(CodeReview)来保证软件符合客户需求且流程正确。下面简单介绍一下SIT和UAT的基本情况。SIT(SystemIntegrationTesting)系统集成测试,也叫做集成测试,是软件测试的一个术语,…

    2022年9月30日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号