GreatSQL社区

搜索

[已解决] centos7编译源码时无法正常运行

390 11 2024-6-11 10:23
本帖最后由 驭无殇1998 于 2024-6-11 17:12 编辑

greatsql版本:8.0.32-25
操作系统:centos7.6

根据官方提供的编译文档,只下载了Dockerfile文件。然后根据系统修改了一些内容,以下是修改后的Dockerfile文件:

我源码编译的时候,改用centos7.6的镜像,然后跑不了了怎么办?
这个是我改动后的Dockerfile:
FROM centos:centos7.6.1810
ENV LANG en_US.utf8

LABEL maintainer="greatsql.cn" \
email="greatsql@greatdb.com" \
forum="https://greatsql.cn/forum.php" \
gitee="https://gitee.com/GreatSQL/GreatSQL-Docker"

ARG OPT_DIR=/opt
ARG MYSQL_UID=3306
ARG MYSQL_USER=mysql
ARG GREATSQL_BUILD_DOWNLOAD_URL="https://gitee.com/GreatSQL/GreatSQL-Docker/raw/greatsql-8.0.32-25/GreatSQL-Build"
ARG GREATSQL_ENV="greatsql-setenv.sh"
ARG ENTRYPOINT="docker-entrypoint.sh"
ARG DEPS="autoconf automake binutils bison cmake cyrus-sasl-devel cyrus-sasl-scram gcc-c++ \
gcc-toolset-11 gcc-toolset-11-annobin-plugin-gcc jemalloc jemalloc-devel krb5-devel libaio-devel \
libcurl-devel libtirpc-devel libudev-devel m4 make ncurses-devel numactl-devel openldap-devel \
openssl openssl-devel pam-devel readline-devel wget zlib-devel"

RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == \
systemd-tmpfiles-setup.service ] || rm -f $i; done); \
rm -f /lib/systemd/system/multi-user.target.wants/*;\
rm -f /etc/systemd/system/*.wants/*;\
rm -f /lib/systemd/system/local-fs.target.wants/*; \
rm -f /lib/systemd/system/sockets.target.wants/*udev*; \
rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \
rm -f /lib/systemd/system/basic.target.wants/*;\
rm -f /lib/systemd/system/anaconda.target.wants/*; \
rm -f /etc/yum.repos.d/* ; \
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo > /dev/null 2>&1 && \
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo > /dev/null 2>&1 && \
yum clean all > /dev/null 2>&1 && \
yum makecache > /dev/null 2>&1 && \
yum update -y > /dev/null 2>&1 && \
yum install -y epel-release > /dev/null 2>&1 && \
yum install -y ${DEPS} > /dev/null 2>&1 && \
source /opt/rh/gcc-toolset-11/enable > /dev/null 2>&1 && \
echo 'source /opt/rh/gcc-toolset-11/enable' >> /root/.bash_profile; \
/usr/sbin/groupadd -g ${MYSQL_UID} ${MYSQL_USER} && \
/usr/sbin/useradd -u ${MYSQL_UID} -g ${MYSQL_UID} -s /sbin/nologin ${MYSQL_USER} && \
curl -o ${OPT_DIR}/${GREATSQL_ENV} ${GREATSQL_BUILD_DOWNLOAD_URL}/${GREATSQL_ENV} > /dev/null 2>&1 && \
curl -o /${ENTRYPOINT} ${GREATSQL_BUILD_DOWNLOAD_URL}/${ENTRYPOINT} > /dev/null 2>&1 && \
chmod +x /*sh ${OPT_DIR}/*sh

ENTRYPOINT ["/docker-entrypoint.sh"]
CMD ["bash"]


但是运行后,无法正常运行:



啊,我无解了
全部回复(11)
reddey 2024-6-11 13:26:07
你的操作系统是CENTOS 7,GLIBC 为2.17,只能编译GreatSQL-8.0.32-25-Linux-glibc2.17-x86_64.tar.xz吧。只是我的个人理解
一个学艺不精的国产数据库爱好者
驭无殇1998 2024-6-11 14:00:53
15167759230 发表于 2024-6-11 13:26
你的操作系统是CENTOS 7,GLIBC 为2.17,只能编译GreatSQL-8.0.32-25-Linux-glibc2.17-x86_64.tar.xz吧。只 ...

主要是都还没开始编译,这个dockerfile是搭建编译环境的,都跑不起来。。。。
yejr 2024-6-11 15:23:49
驭无殇1998 发表于 2024-6-11 14:00
主要是都还没开始编译,这个dockerfile是搭建编译环境的,都跑不起来。。。。 ...

为什么不使用CentOS 8来编译呢?

Docker镜像构建过程中发生错误了,可以修改 Dockerfile,把相应工作阶段的命令行最后面的 " >/dev/null 2>&1 " 注释掉,就可以打印出具体的报错原因了。
驭无殇1998 2024-6-11 15:35:26
yejr 发表于 2024-6-11 15:23
为什么不使用CentOS 8来编译呢?

Docker镜像构建过程中发生错误了,可以修改 Dockerfile,把相应工作阶 ...

喔喔,使用centos 8编译的话,可以在centos7上正常跑嘛?不用容器,内核版本对不上吧?
驭无殇1998 2024-6-11 17:11:15
yejr 发表于 2024-6-11 15:23
为什么不使用CentOS 8来编译呢?

Docker镜像构建过程中发生错误了,可以修改 Dockerfile,把相应工作阶 ...

看着是加载这个东西报错了
source /opt/rh/gcc-toolset-11/enable



yejr 2024-6-12 08:49:06
驭无殇1998 发表于 2024-6-11 17:11
看着是加载这个东西报错了
source /opt/rh/gcc-toolset-11/enable

CentOS 8环境下是gcc-toolset-11,CentOS 7的版本就没这么高了,可能是8或9。

一般来说,在CentOS 7环境下编译的二进制包,可以在CentOS 8环境下运行,反之则不行。
驭无殇1998 2024-6-12 09:07:10
yejr 发表于 2024-6-12 08:49
CentOS 8环境下是gcc-toolset-11,CentOS 7的版本就没这么高了,可能是8或9。

一般来说,在CentOS 7环境 ...

好的,我回去测试测试,主要我公司系统都是centos7的
reddey 2024-6-12 09:51:19
驭无殇1998 发表于 2024-6-12 09:07
好的,我回去测试测试,主要我公司系统都是centos7的

CENTOS 7系统的GCC版本是不是可以升级?升级是不是有内险。毕竟CENTOS7已经停服了
一个学艺不精的国产数据库爱好者
驭无殇1998 2024-6-12 10:41:31
15167759230 发表于 2024-6-12 09:51
CENTOS 7系统的GCC版本是不是可以升级?升级是不是有内险。毕竟CENTOS7已经停服了 ...

我看是可以安装gcc的高版本拓展包的,刚在容器测试后是可以的,修改Dockerfile后可以正常构建编译环境镜像了,但是编译的时候好像还要改一下docker-entrypoint.sh这个脚本,不然编译不了,我再捣鼓捣鼓
12下一页
驭无殇1998

18

主题

0

博客

150

贡献

中级会员

Rank: 3Rank: 3

积分
247

勤学好问(铜)助人为乐(银)

合作电话:010-64087828

社区邮箱:greatsql@greatdb.com

社区公众号
社区小助手
QQ群
GMT+8, 2024-7-27 16:28 , Processed in 0.037183 second(s), 21 queries , Redis On.
快速回复 返回顶部 返回列表