centos编译openjdk7成功---但是创建codeql数据库失败的记录

centos编译openjdk7成功—但是创建codeql数据库失败的记录

实验环境

centos7

jdk1.6.0_45 (这点很重要,起初由于使用了jdk8作为bootjdk导致莫名其妙的报错,查询了很久才解决)

本篇文章可以作为编译openjdk7的参考,但是由于不熟悉编译原理,到底为什么可以编译openjdk7却不能像openjdk8一样生成对应的codeql数据库就不知道为啥了

安装所需库和工具,依次执行按y即可

yum install cups-devel.x86_64
yum install freetype.x86_64 freetype-devel.x86_64
yum install alsa*
yum install ant
yum install cups-devel
yum install glibc-static libstdc++-static
yum install libXt-devel
yum install libXrender-devel
yum install libXext-devel
yum install libXtst-devel
yum install gcc gcc-c++
yum install freetype-devel
yum install libstdc++-static

安装bootJdk

去官网下载安装jdk1.6
我这里下载的是linux x64的

链接:https://pan.baidu.com/s/1ycVzYU4BSSNBSFevxG-ETg
提取码:klc5

官网链接
https://www.oracle.com/java/technologies/javase-java-archive-javase6-downloads.html

image-20220516125517310

下载下来通过ssh工具传到usr/local目录下

chmod 775 jdk-6u45-linux-x64.bin

使用改命令修改其为可执行

./jdk-6u45-linux-x64.bin

会自动在当前目录解压出来一个jdk1.6.0_45

接着,修改系统变量

vim /etc/profile

在最下面插入

#set Java enviroment

export JAVA_HOME=/usr/local/jdk1.6.0_45

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:/usr/local/src/apache-ant-1.8.2/lib/ant-launcher.jar

#set Ant enviroment

ANT_HOME=/usr/local/src/apache-ant-1.8.2

export PATH=$JAVA_HOME/bin:$ANT_HOME/bin:$CLASSPATH:$JRE_HOME/bin:$PATH

然后!wq退出

source /etc/profile更新变量

java-version

显示为jdk1,6即配置成功

下载openjdk

直接去官网下载很慢,推荐一个技巧,参考链接https://blog.csdn.net/wbo112/article/details/121584122

文章中添加的是openjdk的仓库,我们在openjdk的github仓库那里搜索jdk7u按照一样的方式即可生成到码云

我们需要编译的是jdk7u21,在生成好的jdk7u仓库里面通过标签找到对应版本下载即可

image-20220516132045787

通过ssh上传到centos的任意位置

然后通过unzip进行解压

解压完成后进入解压出来的目录

在里面创建bash脚本

touch jdk.sh

chmod jdk.sh

vim jdk.sh

往里面添加

export LANG=C

export ALT_BOOTDIR=/usr/local/jdk1.6.0_45

export ALT_JDK_IMPORT_PATH=/usr/local/jdk1.6.0_45

export ALLOW_DOWNLOADS=true

export HOTSPOT_BUILD_JOBS=4

export ALT_PARALLEL_COMPILE_JOBS=4

export SKIP_COMPARE_IMAGES=true

export USE_PRECOMPILED_HEADER=true

export BUILD_LANGTOOLS=true

#export BUILD_JAXP=false

export BUILD_JAXWS=false

#export BUILD_CORBA=false

export BUILD_HOTSPOT=true

export BUILD_JDK=true

export DISABLE_HOTSPOT_OS_VERSION_CHECK=ok

export SKIP_DEBUG_BUILD=false

export SKIP_FASTDEBUG_BUILD=true

export DEBUG_NAME=debug

BUILD_DEPLOY=false

BUILD_INSTALL=false

export ALT_OUTPUTDIR=/usr/local/src/openjdk/build

unset JAVA_HOME

unset CLASSPATH

make sanity

然后!wq退出并保存

接着source ./jdk.sh

如果输出结果为Sanity check passed表示编译检查通过(但是不代表编译一定不会出错)

如果检查通过了,不要切换终端,(因为设定的变量在其他终端中无法读取)

就在当前终端中输入make进行编译

image-20220516124540997

最终在经过大概15分钟的等待之后,出现这段字符就表示编译成功了,我这里两分钟是因为已经编译过一次了

生成codeql数据库失败

我编译jdk7u21的数据库的初衷是想使用codeql编写7u21反序列化漏洞的查询语句试试水

对编译原理啥的都不咋了解,甚至连jdk为啥要编译都不知道…

编译数据库的过程是参考的这篇大佬编译jdk8数据库的文章

按照本篇文章的操作,只要通过make编译jdk的准备都做好,并且make编译还成功了的话,使用这段语句便可成功编译出jdk的codeql数据库

codeql database create openjdk7u21-db --language="java" --command="make" --overwrite

但是不知道为什么在jdk7上面行不通,如果后面编译成功了的话,再来更新这篇文章

参考文章

https://blog.csdn.net/m0_37726449/article/details/81226606

https://blog.csdn.net/mole_exp/article/details/122330521

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在CentOS 7上编译安装特定版本的GCC(例如5.1.0),可以按照以下步骤进行操作: 1. 首先,确保系统已经安装了一些必要的软件包来构建GCC。运行以下命令以安装这些软件包: ``` sudo yum groupinstall -y "Development Tools" sudo yum install -y wget sudo yum install -y bzip2 ``` 2. 下载所需的GCC源代码。在此示例中,我们将使用版本5.1.0。运行以下命令: ``` wget https://ftp.gnu.org/gnu/gcc/gcc-5.1.0/gcc-5.1.0.tar.bz2 ``` 3. 解压缩下载的源代码包: ``` tar -xvf gcc-5.1.0.tar.bz2 cd gcc-5.1.0 ``` 4. 创建一个用于构建GCC的目录,并切换到该目录: ``` mkdir build cd build ``` 5. 运行以下命令来配置GCC的构建过程: ``` ../configure --prefix=/usr/local/gcc-5.1.0 --enable-languages=c,c++ ``` 请注意,上述命令将指定GCC安装到`/usr/local/gcc-5.1.0`目录中。 6. 开始构建和安装GCC。运行以下命令: ``` make -j4 sudo make install ``` 这将使用4个并行线程构建GCC,加快构建过程。根据您的系统性能,您可以调整`-j`参数的值。 7. 完成安装后,您需要通过设置环境变量来使新安装的GCC生效。打开您的shell配置文件(例如`~/.bashrc`)并添加以下行: ``` export PATH=/usr/local/gcc-5.1.0/bin:$PATH export LD_LIBRARY_PATH=/usr/local/gcc-5.1.0/lib64:$LD_LIBRARY_PATH ``` 确保将路径`/usr/local/gcc-5.1.0`替换为您在第5步中指定的实际安装路径。 8. 保存并关闭您的shell配置文件,然后重新加载它: ``` source ~/.bashrc ``` 现在,您已经成功CentOS 7上编译和安装了GCC 5.1.0版本。您可以使用`gcc -v`命令检查GCC版本。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值