gcc源码编译过程-Linux源代码编译和安装MySQL 8.0.20

1 概述

本文主要介绍如何从源代码编译和安装 MySQL 社区版 8.0.20,先介绍一些编译安装相关知识,然后再开始编译安装

2. 了解源代码的编译和安装

2.1制作和配置

make 是一个编译命令,它将在当前目录中查找 Makefile 文件,Makefile 文件记录有关如何编译源代码的详细信息。配置是由软件开发人员编写的检查器,用于检查用户的开发环境并在检查后生成 Makefile 文件。通常,配置会检查以下内容:

2.2 压缩包文件

压缩包文件可以是对源代码进行压缩的文件。一般使用 gzip 进行压缩,通常扩展名是 .tar.gz 或 .tgzgcc源码编译过程,但由于 bzip2 和 xz 等技术压缩得比 gzip 好,所以文件名也会变成扩展名也会做成.tar.bz2 或 .tar.xz 之类的。通常,压缩包文件具有:

2.3 相关组件的源代码编译和安装

2.3.1 编译器

编译器需要能够编译,通常使用 gcc。

2.3.2make+autoconfig

软件以压缩包的方式发布,为了简化编译过程,一般需要根据目标文件文件的依赖性进行编译,但由于make需要Makefile,所以需要自动配置来生成Makefile。

2.3.3 库

内核提供的库和关联的包含文件是必需的。

2.4 静态和动态库

有两种类型的库,动态库和

静态库,其中大部分放在 /lib 和 /lib64 中。

2.4.1 静态库

扩展名为.a,在编译时会直接集成到可执行程序中,因此借助静态库生成的文件会更大,编译后的可执行文件可以直接运行,无需依赖外部库。另外,升级难度大gcc源码编译过程,因为直接集成到程序中,如果升级静态库,则需要重新编译。

2.4.2 动态库

扩展名为.so,与编译时的静态库不同,动态库在程序中只有一个表引脚,当可执行程序需要使用库的功能时,可以读取库来使用,并且生成的可执行文件会更小,并且不能独立执行编译后的程序。此外,升级更方便,不需要重新编译,因为可执行文件会直接指向新的库文件。

2.5 编译安装的常见步骤

请注意,上述步骤是有序的,但如果上一步失败,则无法执行下一步,这意味着必须成功执行上一步才能继续下一步。要完成以上六个步骤的编译安装,通常需要做一些后处理,比如在 PATH 中添加可执行文件,在 /usr/include 和 /etc/ld.so.conf.d 中添加头文件和库文件,在 /etc/man_db.conf 中添加在线帮助文件。

2.6 编译安装前的心理规划

这是最后一个提示,您也可以在安装之前按 ctrl+w 关闭此页面,以防止无数的困扰。

编译安装最常见的问题是版本和依赖问题,版本问题容易

处理起来,可以通过包管理器升级或者自动升级,至于依赖问题,包管理器安装简单,编译安装会让人头疼,因为不知道一个依赖下需要安装多少个依赖。

因此,有必要计划足够的时间和耐心来解决无数的问题,并能够成功编译和安装MySQL和Workbench等小型软件。

没有了,让我们开始吧。

3. 安装 MySQL

3.1 安装依赖

MySQL 需要以下依赖项:

3.2 包管理器安装

作者的 Debian 部门,使用 apt:

sudo apt-get install -y bison git hostname libncurses-dev libssl-dev make openssl pkg-config doxygen cmake make

红帽8.x:

sudo yum install -y bison bzip2 git hostname ncurses-devel openssl openssl-devel pkgconfig tar wget zlib-devel doxygen diffutils rpcgen make libtirpc-devel cmake gcc

红帽7.x:

sudo yum install -y bison bzip2 git hostname ncurses-devel openssl openssl-devel pkgconfig tar wget zlib-devel doxygen cmake gcc

其他人自己搜索。

3.2 编译和安装

如果不想使用包管理器进行安装,则可以使用编译安装的形式。

欢迎来到折腾。

3.2.1 安装 cmake

tar -zxvf cmake-3.17.2.tar.gz
cd cmake-3.17.2
./bootstrap --prefix=/usr/local/cmake
make clean 
make -j 6 #6为CPU核数,自定义修改,若失败请使用make
make test
sudo make install

3.2.2 安装制作

如果在没有编译器的情况下编译安装失败,可以使用软件包进行安装,作者的 Debian 系统直接使用 apt:

sudo apt install make

3.2.3 安装 GCC

tar -xvf gcc-9.3.0.tar.xz
cd gcc-9.3.0
./contrib/download_prerequisites
mkdir build
cd build
../configure --prefix=/usr/local/gcc -enable-checking=release -disable-multilib 
make clean 
make -j 6
make test
sudo make install
sudo ln -sv /usr/local/gcc/include /usr/include/gcc
#/etc/ld.so.conf.d/gcc.conf加入以下内容
/usr/local/gcc/lib
/usr/local/gcc/lib64

3.2.4 安装OpenSSL

tar -zxvf openssl-1.1.1g.tar.gz
cd openssl-1.1.1g
./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl/ssl
#prefix为安装位置,默认/usr/local
#openssldir为配置文件位置,同时存放证书与密钥对
make clean 
make -j 6
make test
sudo make install
sudo ln -sv /usr/local/openssl/include /usr/include/openssl
#/etc/ld.so.conf.d/openssl.conf加上以下内容
/usr/local/openssl/lib

3.2.5 下载提升

官方网站戳到这里。

所需版本为 1.70.0。最新版本目前是 1.73.0,理论上更新后的版本应该可以工作,请在此处下载 1.70.0。如果不自动下载提升库,可以在使用 cmake 生成生成文件时将DDOWNLOAD_BOOST设置为 1。

下载后,您可以解压缩它。

tar -xvf boost_1_70_0.tar.bz2

3.2.6 安装诅咒

tar -zxvf ncurses-6.2.tar.gz
cd ncurses-6.2
./configure --prefix=/usr/local/ncurses
make -j 6
sudo make install
sudo ln -sv /usr/local/ncurses/include /usr/include/ncurses
#/etc/ld.so.conf.d/ncurses.conf加入
/usr/local/ncurses/lib

3.2.7 安装野牛

tar -xvf bison-3.4.tar.xz
cd bison-3.4
./configure --prefix=/usr/local/bison
make -j 6
sudo make install
#/etc/ld.so.conf.d/bison.conf加入
/usr/local/bison/lib

3.2.8 安装 git

tar -xvf git-2.26.2.tar.xz
cd git-2.26.2
./configure --prefix=/usr/local/git 
--with-openssl=/usr/local/openssl 
--with-libpcre2=/usr/local/pcre2 
--with-curl=/usr/local/curl 
--with-expat=/usr/local/expat 
--with-iconv=/usr/local/iconv 
--with-editor=/usr/bin/vim 
--with-zlib=/usr/local/zlib 
--with-tcltk=/usr/local/tcl
make all doc info
sudo make install install-doc install-html install-info

3.2.9 后续处理

更改路径:

#在~/.bash_profile 或 ~/.bashrc加入
export PATH=$PATH:
/usr/local/cmake/bin:
/usr/local/gcc/bin:
/usr/local/openssl/bin:
/usr/local/bison/bin:
/usr/local/ncurses/bin:
/usr/local/git/bin:

使动态库正常工作:

ldconfig

如果权限不足,请添加 sudo。

3.3 下载 MySQL 社区版

官方网站在这里。

我不知道第一个和第二个有什么区别,因为作者都尝试过,可以成功编译安装。事实上,它说的是带有助推头的一秒钟,它似乎没有多大用处。这是第一个。

校准(可选):

md5sum mysql-boost-8.0.20.tar.gz

3.4 生成生成文件

sudo cmake .. 
-DDEFAULT_CHARSET=utf8mb4 
-DDEFAULT_COLLATION=utf8mb4_unicode_ci  #
-DENABLED_LOCAL_INFILE=ON 
-DWITH_SSL=system 
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql/server 
-DMYSQL_DATADIR=/usr/local/mysql/data 
-DMYSQL_TCP_PORT=3306 
-DDOWNLOAD_BOOST=0 
-DWITH_BOOST=~/Desktop/boost

在工作中,很多时候因为需要使用新的技术方案,需要更新版本的内核来支持新功能,而内核

CentOS 系统自带的版本一般较旧,因此我们需要升级系统的内核并安装新版本的内核。这里以 CentOS7 系统为例,编译安装最新版本内核的过程总结如下:

最新版本的 Linux 内核可通过网站获得

1. 下载内核源码包的最新稳定版到 /usr/local/src,解压到当前目录

2. 解压内核源码包

3. 从 /boot 目录复制现有版本的内核编译配置配置文件,放在新的内核源码提取目录下,重命名为 .config 的隐藏文件

[root@localhostsrc]#cdlinux-5.2.11

[root@localhostlinux-5.2.11]#cp/boot/config-3.10.0-957.el7.x86_64./.config

复制 的配置文件

原始内核从 boot 目录主要是为了方便,这个文件存储了安装系统时内核安装的模块配置信息(否则需要再次自动指定每个模块的编译配置)。

4. 安装依赖包

安装开发工具包组

[root@localhostlinux-5.2.11]#yum-ygroupinstall“开发工具”

安装 ncurse-devel 包(makemenuconfig 文本界面窗口依赖包)。

[root@localhostlinux-5.2.11]#yum-yinstallncurses-devel

5. 运行makemenuconfig,打开文本界面的编译选项菜单窗口,调整内核加载的模块的编译选项,如更改编译后的内核名称、添加系统之前缺少的模块等。

更改内核名称:

Generalsetup--->localversion-appendtokernelrelease

此处将内核名称更改为 5.2.11-001.el7.x86_64

新增NTFS文件系统支持模块:

文件系统--->DOS/FAT/NTFilesystems--->NTFSfilesystemsupport

建议选择编译为模块(M选项)。(* 符号以静态方式编译打包到核心文件中,如果添加更多新模块,核心文件的体积会减少)。

6. 编译内核

[root@localhostlinux-5.2.11]#make-j4# 根据CPU内核数开启多线程编译,提升编译率

漫长的编译过程大约需要 1-2 小时才能启动,具体取决于 CPU 硬件的性能。

如果编译开始提示错误,则可能需要预安装相应的组件包,例如:

[root@localhostlinux-5.2.11]#yum-yinstallopenssh-develelfutils-libelf-develbc

根据相应的错误提示linux编译源码教程,对应的组件包以yum的形式安装,部分组件包在EPEL源中linux编译源码教程,因此需要预配置EPEL源仓库。

7. 编译并安装模块

编译完成后,执行makemodules_install安装内核模块

[root@localhostlinux-5.2.11]#makemodules_install

8. 安装内核核心文件

[root@localhostlinux-5.2.11]#makeinstall

重新启动

如果需要将新版本的内核设置为默认引导内核,则可以使用此命令

grub2-set-default0#0 表示 /boot/grub2/grub.cfg 文件中的第一个菜单项段

重启进入系统后,检查内核版本,已经是最新版本5.2.11

[root@localhost~]#uname-r

5.2.11-001.el7.x86_64

至此,整个内核的编译和安装过程就完成了。

Linux 公社的 RSS 地址:

本文将永久更新链接地址:

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 源码编译 gcc源码编译过程-Linux源代码编译和安装MySQL 8.0.20 https://www.wkzy.net/game/129395.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务