基于本地centos构建gdal2.4.4镜像
1.前言
基于基础镜像构建gdal环境一般特别大,一般少则1.6G,多则2G甚至更大,这对于镜像的迁移造成了极大的不便。究其原因在于容器中有大量的源码文件以及编译中间过程文件,还要大量编译需要的yum库。本文主要通过在centos系统上先构建基础gdal环境,然后将编译好的二进制文件以及动态库拷贝出来。通过DockerFile或者操作容器的方式构建进行。通过这样的方式,镜像700M左右(基础镜像200M+gdal500M)。当然文章末尾还提供压缩的方式导出镜像(大小约250M左右)。
2. 编译环境
2.1 操作系统
[root@surpass ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
2.2 gdal以及插件及版本
| 序号 | 软件名称 | 版本号 |
|---|---|---|
| 1 | ant | apache-ant-1.10.12 |
| 2 | gdal | gdal-2.4.4 |
| 3 | geos | geos-3.7.3 |
| 4 | hdf4 | hdf-4.2.13 |
| 5 | hdf5 | hdf5-1.10.5 |
| 6 | jpegsrc | jpegsrc.v8c |
| 7 | netcdf | netcdf-c-4.4.1.1 |
| 8 | pcre | pcre-8.45 |
| 9 | proj | proj-6.0.0 |
| 10 | swig | swig-2.0.9 |
| 11 | jdk | jdk-8u361-linux-x64 |
这里我已经准备好,如果自己下载麻烦,可以直接用的准备好的。gdal2.4.4源码编译及相关插件
3.环境准备
3.1 拷贝文件
当然,第一步还是先将文件拷贝到centos系统中。
[root@surpass gdal]# ll
总用量 200516
-rw-r--r--. 1 root root 5424638 3月 4 21:20 apache-ant-1.10.12-bin.tar.bz2
-rw-r--r--. 1 root root 14748072 3月 4 21:20 gdal-2.4.4.tar.gz
-rw-r--r--. 1 root root 2000211 3月 4 21:20 geos-3.7.3.tar.bz2
-rw-r--r--. 1 root root 4418314 3月 4 21:20 hdf-4.2.13.tar.gz
-rw-r--r--. 1 root root 12030972 3月 4 21:20 hdf5-1.10.5.tar.gz
-rw-r--r--. 1 root root 138762230 3月 4 21:20 jdk-8u361-linux-x64.tar.gz
-rw-r--r--. 1 root root 956918 3月 4 21:20 jpegsrc.v8c.tar.gz
-rw-r--r--. 1 root root 17670828 3月 4 21:20 netcdf-c-4.4.1.1.tar.gz
-rw-r--r--. 1 root root 1578809 3月 4 21:20 pcre-8.45.tar.bz2
-rw-r--r--. 1 root root 2405217 3月 4 21:20 proj-6.0.0.tar.gz
-rw-r--r--. 1 root root 5307341 3月 4 21:20 swig-2.0.9.tar.gz
3.2 安装依赖环境
yum -y groupinstall "Development tools"
yum -y install gcc-c++
yum -y install zlib-devel
yum -y install sqlite-devel
yum -y install bzip2
3.3 查看四个文件夹的内容
查看下面四个文件夹,是否为空的,如果不为空,要记下里面的文件,我这里是空的。
[root@surpass local]# ll /usr/local/bin/
总用量 0
[root@surpass local]# ll /usr/local/lib
总用量 0
[root@surpass local]# ll /usr/local/include/
总用量 0
[root@surpass local]# ll /usr/local/share/
总用量 0
drwxr-xr-x. 2 root root 6 4月 11 2018 applications
drwxr-xr-x. 2 root root 6 4月 11 2018 info
drwxr-xr-x. 21 root root 243 4月 27 2022 man
4. 安装依赖文件
4.1 Proj安装
tar -zxvf proj-6.0.0.tar.gz
cd proj-6.0.0
./configure
make
make install
# 验证是否安装成功
proj —help
此时,proj文件编译的位置如下:
- 可执行文件
[root@surpass bin]# ll /usr/local/bin/ 总用量 2096 -rwxr-xr-x. 1 root root 192008 3月 4 21:42 cct -rwxr-xr-x. 1 root root 192544 3月 4 21:42 cs2cs -rwxr-xr-x. 1 root root 279296 3月 4 21:42 geod -rwxr-xr-x. 1 root root 222448 3月 4 21:42 gie lrwxrwxrwx. 1 root root 4 3月 4 21:42 invgeod -> geod lrwxrwxrwx. 1 root root 4 3月 4 21:42 invproj -> proj -rwxr-xr-x. 1 root root 172400 3月 4 21:42 proj -rwxr-xr-x. 1 root root 1070520 3月 4 21:42 projinfo - 动态库
[root@surpass bin]# ll /usr/local/lib 总用量 114204 -rw-r--r--. 1 root root 85747468 3月 4 21:42 libproj.a -rwxr-xr-x. 1 root root 940 3月 4 21:42 libproj.la lrwxrwxrwx. 1 root root 17 3月 4 21:42 libproj.so -> libproj.so.15.0.0 lrwxrwxrwx. 1 root root 17 3月 4 21:42 libproj.so.15 -> libproj.so.15.0.0 -rwxr-xr-x. 1 root root 31187152 3月 4 21:42 libproj.so.15.0.0 drwxr-xr-x. 2 root root 21 3月 4 21:42 pkgconfig - 共享文件
[root@surpass proj]# ll /usr/local/share/proj/ 总用量 6180 -rw-r--r--. 1 root root 1183 3月 4 21:42 CH -rw-r--r--. 1 root root 728 3月 4 21:42 GL27 -rw-r--r--. 1 root root 2099 3月 4 21:42 ITRF2000 -rw-r--r--. 1 root root 3660 3月 4 21:42 ITRF2008 -rw-r--r--. 1 root root 3498 3月 4 21:42 ITRF2014 -rw-r--r--. 1 root root 19535 3月 4 21:42 nad27 -rw-r--r--. 1 root root 16593 3月 4 21:42 nad83 -rw-r--r--. 1 root root 6385 3月 4 21:42 nad.lst -rw-r--r--. 1 root root 232 3月 4 21:42 null -rw-r--r--. 1 root root 3915 3月 4 21:42 other.extra -rw-r--r--. 1 root root 6242304 3月 4 21:42 proj.db -rw-r--r--. 1 root root 7079 3月 4 21:42 world - 文件头
[root@surpass include]# ll /usr/local/include/ 总用量 184 -rw-r--r--. 1 root root 44277 3月 4 21:42 geodesic.h -rw-r--r--. 1 root root 2960 3月 4 21:42 org_proj4_PJ.h drwxr-xr-x. 2 root root 179 3月 4 21:42 proj -rw-r--r--. 1 root root 8346 3月 4 21:42 proj_api.h -rw-r--r--. 1 root root 23206 3月 4 21:42 proj_constants.h -rw-r--r--. 1 root root 34185 3月 4 21:42 proj_experimental.h -rw-r--r--. 1 root root 42507 3月 4 21:42 proj.h -rw-r--r--. 1 root root 19796 3月 4 21:42 proj_symbol_rename.h
后面编译的软件基本在这几个文件夹,如有特殊会单独说明。
4.2 安装java环境
4.2.1 解压压缩包
tar -zxvf jdk-8u361-linux-x64.tar.gz -C /usr/local/
4.2.2 编辑环境变量
# 编译/etc/profile
export JAVA_HOME=/usr/local/jdk1.8.0_361
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
4.2.3 配置文件生效
source /etc/profile
4.2.4 验证java环境有效性
[root@surpass jdk1.8.0_361]# java -version
java version "1.8.0_361"
Java(TM) SE Runtime Environment (build 1.8.0_361-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.361-b09, mixed mode)
4.3 安装ant
4.3.1 解压压缩包
# 注意这里的参数是-j,不是-z.
tar -jxvf apache-ant-1.10.12-bin.tar.bz2 -C /usr/local/
4.3.2 配置环境变量
vim /etc/profile
export ANT_HOME=/usr/local/apache-ant-1.10.12
export PATH=$PATH:$ANT_HOME/bin
4.3.3 配置文件生效
source /etc/profile
4.3.4 验证ant环境有效性
[root@surpass apache-ant-1.10.12]# ant -version
Apache Ant(TM) version 1.10.12 compiled on October 13 2021
4.4. 安装pcre
tar -jxvf pcre-8.45.tar.bz2
cd pcre-8.45
./configure --enable-utf8
make
make install
# 验证是否安装成功
[root@surpass bin]# geod
Rel. 6.0.0, March 1st, 2019
4.5 安装swig
tar -zxf swig-2.0.9.tar.gz
cd swig-2.0.9/
./configure
make
make install
[root@surpass swig-2.0.9]# swig -version
SWIG Version 2.0.9
Compiled with g++ [x86_64-unknown-linux-gnu]
Configured options: +pcre
Please see http://www.swig.org for reporting bugs and further information
4.6 安装geos
tar -jxvf geos-3.7.3.tar.bz2
cd geos-3.7.3
make
make install
ldconfig
4.7 安装jpeg
4.7.1 编译插件
tar -zxvf jpegsrc.v8c.tar.gz
cd jpeg-8c/
./configure --prefix=/opt/jpeg
make
make install
4.7.2 查看编译成果
[root@surpass jpeg]# ll /opt/jpeg/
总用量 0
drwxr-xr-x. 2 root root 80 3月 4 22:22 bin
drwxr-xr-x. 2 root root 74 3月 4 22:22 include
drwxr-xr-x. 2 root root 103 3月 4 22:22 lib
drwxr-xr-x. 3 root root 17 3月 4 22:22 share
4.8 安装hdf5
4.8.1 编译插件
tar -zxvf hdf5-1.10.5.tar.gz
cd hdf5-1.10.5
export F9X=ifort
./configure --prefix=/opt/hdf5 --with-hdf4=/opt/hdf4 --with-jpeg=/opt/jpeg --enable-java --enable-cxx
make
make install
4.8.2 查看编译成果
[root@surpass hdf5]# ll /opt/hdf5/
总用量 12
drwxr-xr-x. 2 root root 4096 3月 4 22:32 bin
drwxr-xr-x. 2 root root 4096 3月 4 22:32 include
drwxr-xr-x. 2 root root 4096 3月 4 22:32 lib
drwxr-xr-x. 3 root root 27 3月 4 22:32 share
4.9 安装hdf4
4.9.1 编译插件
tar -zxvf hdf-4.2.13.tar.gz
cd hdf-4.2.13
./configure --prefix=/opt/hdf4 --enable-netcdf --enable-jpeg --with-jpeg=/opt/jpeg --enable-hdf5 --with-hdf5=/opt/hdf5 --enable-shared --disable-fortran --enable-java
make
make install
4.9.2 查看编译成果
[root@surpass hdf-4.2.13]# ll /opt/hdf4
总用量 12
drwxr-xr-x. 2 root root 4096 3月 4 22:36 bin
drwxr-xr-x. 2 root root 4096 3月 4 22:36 include
drwxr-xr-x. 2 root root 4096 3月 4 22:36 lib
drwxr-xr-x. 4 root root 38 3月 4 22:36 share
4.10 安装netcdf
4.10.1 编译插件
tar -zxvf netcdf-c-4.4.1.1.tar.gz
cd netcdf-c-4.4.1.1
CPPFLAGS="-l/opt/hdf4/include -l/opt/hdf5/include -l/opt/jpeg/include"
LDFLAGS="-l/opt/hdf4/lib -l/opt/hdf5/lib -l/opt/jpeg/lib"
./configure --prefix=/opt/netcdf --enable-hdf5 --with-hdf5=/opt/hdf5 --enable-hdf4 --with-hdf4=/opt/hdf4 --enable-jpeg --with-jpeg=/opt/jpeg --disable-netcdf-4
make
make install
4.10.2 查看编译成果
[root@surpass opt]# ll /opt/netcdf/
总用量 0
drwxr-xr-x. 2 root root 78 3月 4 22:40 bin
drwxr-xr-x. 2 root root 63 3月 4 22:40 include
drwxr-xr-x. 3 root root 158 3月 4 22:40 lib
drwxr-xr-x. 3 root root 17 3月 4 22:40 share
5. 安装gdal
5.1 编译软件
经过一系列的插件,终于可以编译gdal了。
tar -zxvf gdal-2.4.4.tar.gz
cd gdal-2.4.4
./configure --prefix=/opt/netcdf --enable-hdf5 --with-hdf5=/opt/hdf5 --enable-hdf4 --with-hdf4=/opt/hdf4 --enable-jpeg --with-jpeg=/opt/jpeg --disable-netcdf-4
make
make install
5.2 修改配置文件
vim /etc/profile
export PATH=${PATH}:/opt/hdf4/include:/opt/hdf4/bin:/opt/hdf5/include:/opt/hdf5/bin:/opt/netcdf/include:/opt/netcdf/bin:/opt/gdal/include:/opt/gdal/bin
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/opt/hdf4/lib:/opt/hdf5/lib:/opt/netcdf/lib:/opt/gdal/lib
source /etc/profile
[root@surpass gdal-2.4.4]# gdalinfo --version
GDAL 2.4.4, released 2020/01/08
6. 后期数据准备
6.1 删除中间编译数据
将/usr/local、/opt/hdf4、/opt/hdf5、/opt/jpeg、/opt/netcdf的lib下的所有以a和la结尾的文件删除。
6.2 拷贝文件
将/opt/hdf4、/opt/hdf5、/opt/jpeg、/opt/netcdf下的bin、include、lib、share分别复制到/usr/local下相对应的文件夹下。
6.3 压缩导出
将/usr/local下的bin、include、lib、share赋值出来打成压缩包。如果想直接用,可以看到这里:gdal2.4.4编译的动态库
7. 打开镜像
7.1 下载centos镜像
docker pull centos
[root@surpass gdal_lib]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos 7.9 eeb6ee3f44bd 17 months ago 204 MB
7.2 打开镜像
- 打开镜像容器
docker run --rm -it centos:7.9 bash - 将本地文件拷贝容器里
[root@surpass gdal_lib]# docker cp bin/ d21d5b03fbb4:/usr/local [root@surpass gdal_lib]# docker cp include/ d21d5b03fbb4:/usr/local [root@surpass gdal_lib]# docker cp lib/ d21d5b03fbb4:/usr/local [root@surpass gdal_lib]# docker cp share/ d21d5b03fbb4:/usr/local - 加载动态库
在/etc/ld.so.conf.d,创建文件gdal.conf,加入如下代码:/usr/local/lib - 加载动态库
ldconfig
7.3 提交镜像
docker commit -m="gdal_java" -a="surpassliang" d21d5b03fbb4 gdal2.4.4_java:v0.1
[root@surpass gdal_lib]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
gdal2.4.4_java v0.1 5895879a8d11 27 seconds ago 759 MB
8. 导出镜像
# 导出镜像
docker save gdal_java:v0.2 | gzip > gdal_java_v0.2.tar.gz
# 导入镜像
gunzip -c gdal_java_v0.2.tar.gz | docker load
相关文章:
基于本地centos构建gdal2.4.4镜像
1.前言 基于基础镜像构建gdal环境一般特别大,一般少则1.6G,多则2G甚至更大,这对于镜像的迁移造成了极大的不便。究其原因在于容器中有大量的源码文件以及编译中间过程文件,还要大量编译需要的yum库。本文主要通过在centos系统上先…...
生产环境线程问题排查
线程状态的解读RUNNABLE线程处于运行状态,不一定消耗CPU。例如,线程从网络读取数据,大多数时间是挂起的,只有数据到达时才会重新唤起进入执行状态。只有Java代码显式调用sleep或wait方法时,虚拟机才可以精准获取到线程…...
Day908.joinsnljdist和group问题和备库自增主键问题 -MySQL实战
join&snlj&dist和group问题和备库自增主键问题 Hi,我是阿昌,今天学习记录的是关于join&snlj&dist和group问题和备库自增主键问题的内容。 一、join 的写法 join 语句怎么优化?中,在介绍 join 执行顺序的时候&am…...
算法 - 剑指Offer 丑数
题目 我们把只包含质因子 2、3 和 5 的数称作丑数(Ugly Number)。求按从小到大的顺序的第 n 个丑数。 解题思路 这题我使用最简单方法去做, 首先我们可以获取所有2n,3n,5*n的丑数,只是我们这里暂时无法排序,并且可能…...
【ONE·C || 文件操作】
总言 C语言:文件操作。 文章目录总言1、文件是什么?为什么需要文件?1.1、为什么需要文件?1.2、文件是什么?2、文件的打开与关闭2.1、文件指针2.2、文件打开和关闭:fopen、fclose2.3、文件使用方式3、文…...
cmd窗口中java命令报错。错误:找不到或无法加载主类 java的jdk安装过程中踩过的坑
错误: 找不到或无法加载主类 HelloWorld 遇到这个问题时,我尝试过网上其他人的做法。有试过添加classpath,也有试过删除classpath。但是依然报错,这里javac可以编译通过,说明代码应该是没有问题的。只是在运行是出现了错误。我安装…...
Breathwork(呼吸练习)
查了下呼吸练习相关内容,做个记录。我又在油管学习啦。 喜欢在you. tube看一些self-help相关的内容。比如学习方法、拉伸、跑步、力量举、自重锻炼等等。 总是听Obi Vicent说起Breathwork,比如: My 6am Morning Routine | New Healthy Habit…...
taobao.itemprops.get( 获取标准商品类目属性 )
¥开放平台基础API不需用户授权 通过设置必要的参数,来获取商品后台标准类目属性,以及这些属性里面详细的属性值prop_values。 公共参数 请求地址: HTTP地址 http://gw.api.taobao.com/router/rest 公共请求参数: 公共响应参数: 请求参数 点…...
QT配置安卓环境(保姆级教程)
目录 下载环境资源 JDK1.8 NDK SDK 安装QT 配置环境 下载环境资源 JDK1.8 介绍JDK是Java开发的核心工具,为Java开发者提供了一套完整的开发环境,包括开发工具、类库和API等,使得开发者可以高效地编写、测试和运行Java应用程序。 下载…...
【uni-app教程】八、UniAPP Vuex 状态管理
八、UniAPP Vuex 状态管理 概念 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。 应用场景 Vue多个组件之间需要共享数据或状态。 关键规则 State:…...
同花顺测试面经(30min)
大概三十分钟,面试官人还挺好的 1.自我介绍 2.详细问你了自我介绍中的一个实习经历 3.对我们公司有什么了解 !!(高频) 4.对测试有什么看法,为什么选测试 5.黑盒白盒分别是什么 6.对测试左移有什么看法…...
C++-简述#ifdef、#else、#endif和#ifndef的作用
回答如下: #ifdef,#else,#endif和#ifndef都是预处理指令,用于条件编译。#ifdef:这个指令用来判断一个宏是否已经被定义过,如果已经定义过,则执行后面的代码块。#else:这个指令一般与…...
VictoriaMetrics 集群部署
官网 ## 官网 https://github.com/VictoriaMetrics/VictoriaMetrics 集群角色详解 VictoriaMetrics 集群模式。主要由 vmstorage ,vminsert,vmselect 三部分组成,这三个组件每个组件都可以单独进行扩展。其中: vmstorage 负责提供数据存储服务vminsert 是数据存…...
【基于感知损失的无监督泛锐化】
PercepPan: Towards Unsupervised Pan-Sharpening Based on Perceptual Loss (PercepPan:基于感知损失的无监督泛锐化) 在基于神经网络的全色锐化文献中,作为地面实况标签的高分辨率多光谱图像通常是不可用的。为了解决这个问题…...
在vercel上用streamlit部署网站
Verce和Streamlit都是非常流行的Web应用程序部署平台。以下是从零开始在Vercel上部署Streamlit应用程序的一些基本步骤。 安装 Streamlit 在本地计算机上安装Streamlit。可以轻松地通过在命令行中运行以下命令来安装: pip install streamlit为 Streamlit 应用程序…...
华为OD机试题 - 斗地主(JavaScript)| 含思路
更多题库,搜索引擎搜 梦想橡皮擦华为OD 👑👑👑 更多华为OD题库,搜索引擎搜 梦想橡皮擦 华为OD 👑👑👑 更多华为机考题库,搜索引擎搜 梦想橡皮擦华为OD 👑👑👑 华为OD机试题 最近更新的博客使用说明本篇题解:斗地主题目输入输出描述示例一输入输出示例二输…...
i.MX8MP平台开发分享(clock篇)-计算clock速度相关的内核API
专栏目录:专栏目录传送门 平台内核i.MX8MP5.15.71文章目录 clk消费者clk生产者clk_set_rateclk_round_rateclk_pll1443x_recalc_rate这一篇我们具体来看看其他驱动如何使用clock,这里以lcdif驱动为例。 IMX8MP_CLK_MEDIA_BLK_CTRL_LCDIF_PIXEL是门控时钟,名为pix,这个门控时…...
实验4 设计模式实验3
实验内容: 1. 某软件公司为新开发的智能手机控制与管理软件提供了一键备份功能,通 过该功能可以将原本存储在手机中的通信录、短信、照片、歌曲等资料一次性全 部拷贝到移动存储介质(例如MMC 卡或SD 卡)中。在实现过程中需要与多个 已有的类进行交互,例如通讯录管理类、短信…...
CNN基础
Tip:仅供自己学习记录,酌情参考 1. 前馈与反馈神经网络 神经网络有前馈神经网络和反馈神经网络,前向神经网络也就是前馈神经网络。 前馈型神经网络各神经元接收前一层的输入,并输出给下一层,没有反馈。节点分为两类…...
【UEFI基础】UEFI事件介绍
简述 在【UEFI基础】System Table和Architecture Protocols介绍Boot Service时提到有一部分与事件相关的接口,它们创建、触发、等待和关闭事件,来完成某些功能,本文将进一步介绍事件。 需要注意,因为Boot Service需要在DXE阶段才…...
接口测试中缓存处理策略
在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...
基础测试工具使用经验
背景 vtune,perf, nsight system等基础测试工具,都是用过的,但是没有记录,都逐渐忘了。所以写这篇博客总结记录一下,只要以后发现新的用法,就记得来编辑补充一下 perf 比较基础的用法: 先改这…...
页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...
学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”
2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...
20个超级好用的 CSS 动画库
分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码,而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库,可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画,可以包含在你的网页或应用项目中。 3.An…...
MySQL:分区的基本使用
目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区(Partitioning)是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分(分区)可以独立存储、管理和优化,…...
Linux系统部署KES
1、安装准备 1.版本说明V008R006C009B0014 V008:是version产品的大版本。 R006:是release产品特性版本。 C009:是通用版 B0014:是build开发过程中的构建版本2.硬件要求 #安全版和企业版 内存:1GB 以上 硬盘…...
关于easyexcel动态下拉选问题处理
前些日子突然碰到一个问题,说是客户的导入文件模版想支持部分导入内容的下拉选,于是我就找了easyexcel官网寻找解决方案,并没有找到合适的方案,没办法只能自己动手并分享出来,针对Java生成Excel下拉菜单时因选项过多导…...
