• Ubuntu源码编译Mysql常见的错误


    由于我昨天装的版本没有debug,所以今天又卸载重装来尝试debug版本,同时也遇到了一些错误,但好在都解决了。

    下面一起来看一下这些错误吧。

    Ubuntu的包管理工具

    Ubuntu/Debian使用deb软件包来管理软件,apt-get是Ubuntu/Debian的deb软件包管理工具,它的最底层调用dpkg包管理程序,通过apt-get工具可使我们很好地解决软件包的依赖关系,apt-get会从该软件库安装各种软件包,apt-get update 更新软件包信息库。

    可能会有一个疑惑,我们不仅看到了apt-get,我们也看到了apt了,这是怎么回事呢?

    最常用的 Linux 包管理命令都被分散在了 apt-get、apt-cache 和 apt-config 这三条命令当中。

    apt命令的引入就是为了解决命令过于分散的问题,在使用 apt 命令时,用户不必再由 apt-get 转到 apt-cache 或 apt-config,而且 apt 更加结构化,并为用户提供了管理软件包所需的必要选项。

    可以简单理解为,apt = apt-get、apt-cache 和 apt-config 中最常用命令选项的集合。

    Centos使用的就是rpm或者yum包管理工具了,使用都大同小异,我们有时候按照别人的教程解决问题,但是我们的环境不一样,那么可以根据大方向思路来进行灵活处理。

    Ubuntu源码编译安装Mysql

    Ubuntu如何源码编译mysql请见我的上一篇文章:https://blog.csdn.net/qq_43779149/article/details/127653658?spm=1001.2014.3001.5501

    按照上述流程编译安装mysql是没有问题的,只不过预编译中间可能会存在一些包依赖的问题,所以可能又要重新去安装一下包,但有一个问题是,可能表面上说是缺少这一个包,但是实际上是缺少对应的依赖,所以就会存在一系列“我到底应该安装哪个包”的问题。

    预编译错误

    一开始预编译错误,然后才发现是缺少相应的包。

    在这里插入图片描述

    Unable to locate package

    • 首先更新软件包信息库
    sudo apt-get update
    
    • 1
    • 然后再去下载对应的包
    sudo apt install 你自己想要安装的包
    
    • 1

    如果上述不行,比如提示你缺少A,你按照上述更新后安装A仍然不行,那么可能原因是你应该安装A对应的依赖B,这就需要你花时间去找了。

    Please install the appropriate openssl developer package

    • 安装libssl-dev
    sudo apt-get install libssl-dev
    
    • 1

    在这里插入图片描述

    Curses library not found. Please install appropriate package

    • 安装libncurses-dev
    sudo apt-get install libncurses-dev
    
    • 1

    在这里插入图片描述

    Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)

    • 安装pkg-config
    sudo apt-get install pkg-config
    
    • 1

    在这里插入图片描述

    预编译成功

    这样后再去cmake就可以啦!

    在这里插入图片描述
    接下来就去正式编译啦!

    补充

    今天试的时候,发现了确实是上次不是debug版本,蛛丝马迹如下:

    这是第一次安装的:

    在这里插入图片描述

    这是今天安装的:

    在这里插入图片描述
    所以说啊,cmake中的-DWITH_DEBUG=1是最关键的,它的作用是开启DBUG,如果忘记了就是使用的默认的,那就不能debug,那么就不能使用gdb调试呜呜呜!

    还有就是,执行cmake后看一下相应的信息,学会排查错误!!

    安装了几个小时终于好啦!!!

    • 查看mysql版本
    select version();
    
    • 1

    在这里插入图片描述

  • 相关阅读:
    Python-flask高级使用
    Python快速刷题网站——牛客网 数据分析篇(十)
    科学家探索用于光电子的二维半导体
    Biotin hydrazide HCl|CAS:66640-86-6|生物素-酰肼盐酸盐
    git命令 cherry-pick
    独享IP是原生IP吗?
    基于单片机智能汽车仪表设计系统
    Redis的分布式锁问题(九)Redis + Lua 脚本实现分布式锁
    在家怎么做芋圆 芋圆的做法
    广州小程序开发公司怎么找?
  • 原文地址:https://blog.csdn.net/qq_43779149/article/details/127666045