AWS Elastic Beanstalk中安装tesseract5.3.4版本

问题

需要在eb(Elastic Beanstalk)的amazon linux 2023中安装tesseract软件。但是,因为amazon linux 2023官方软件库里面没有包含tesseract软件,需要通过开源的Fedora软件源来解决这个问题。

思路

配置Fedora 40软件源(amazon linux 2023的官方文档是说最高兼容Fedora 36,但是这次2025年11月,测试一下Fedora 40软件源中的tesseract5.3.4版本也可以用),然后,使用dnf安装tesseract和中文,英文语言包。

.ebextensions目录结构

bash 复制代码
├── .ebextensions                    
│   ├── 01launch-template.config
│   ├── 02tesseract.config
│   ├── 03timezone.config
│   └── 04environment-variables.config

01launch-template.config

设置应用程序的环境变量。

yaml 复制代码
option_settings:
  aws:elasticbeanstalk:application:environment:
    TESSDATA_PREFIX: /usr/share/tesseract/tessdata
  aws:autoscaling:launchconfiguration:
    DisableIMDSv1: true
    LaunchTemplateTagPropagationEnabled: true

02tesseract.config

这是安装tesseract库。

yaml 复制代码
files:
    "/etc/yum.repos.d/fedora.repo":
        mode: "000644"
        owner: root
        group: root
        content: |
            [fedora]
            name=Fedora 40 - $basearch
            #baseurl=http://download.example/pub/fedora/linux/releases/40/Everything/$basearch/os/
            metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-40&arch=$basearch
            enabled=1
            metadata_expire=7d
            repo_gpgcheck=0
            type=rpm
            gpgcheck=1
            gpgkey=https://src.fedoraproject.org/rpms/fedora-repos/raw/f40/f/RPM-GPG-KEY-fedora-40-primary
            skip_if_unavailable=False

container_commands:
    install_tesseract:
        command: |
            sudo dnf install tesseract -y
            sudo dnf install tesseract-langpack-eng -y
            sudo dnf install tesseract-langpack-chi_sim -y
            sudo dnf install tesseract-langpack-chi_sim_vert -y
        ignoreErrors: true

03timezone.config

这是设置时区。

yaml 复制代码
commands:
    set_timezone:
      command: |
        sudo timedatectl set-timezone Asia/Shanghai
      ignoreErrors: true

04environment-variables.config

设置环境变量

yaml 复制代码
files:
  "/etc/profile.d/environment_variables.sh":
    mode: "000755"
    owner: root
    group: root
    content: |
      #!/bin/bash
      export TZ="Asia/Shanghai"
      export TESSDATA_PREFIX="/usr/share/tesseract/tessdata"

container_commands:
    environment_variables:
      command: |
        source /etc/profile
      ignoreErrors: true

总结

这就是eb安装tesseract库和设置时区的过程。执行是按照文件名执行顺序。如果在java中使用Tess4J库通过jni方式调用tesseract,需要注意Tess4J库版本号与tesseract库版本号对应。

参考

相关推荐
码哥字节30 分钟前
Spring Boot 4.1 默认开虚拟线程,连接池为什么反而打满了?
spring boot·后端
十年Java程序媛1 小时前
String / StringBuilder / StringBuffer|别再乱用字符串拼接,底层原理一次讲透
java·spring boot·后端
她的男孩1 小时前
权限通了、列表有数,一点分页就炸Forge Admin 用 COUNT(1) 扛住复杂待办
java·spring boot·mybatis
WeiXin_DZbishe2 小时前
基于微信小程序的本地闲置物品交易平台-计算机毕设 附源码【课程设计】26825
vue.js·spring boot·python·微信小程序·架构·php·课程设计
高级程序源3 小时前
springboot本地生活服务平台33399-计算机课程设计、毕业设计
vue.js·spring boot·python·mysql·小程序·flask·课程设计
高级程序源3 小时前
springboot社区旧物回收管理系统25381-计算机课程设计、毕业设计
vue.js·spring boot·python·django·课程设计
高级程序源3 小时前
springboot大学生体测系统72170-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·python·django·课程设计
IT研究室3 小时前
最新计算机毕业设计选题推荐-基于spring boot的文学名著分享系统-网站-文档指导-Java-springboot
java·spring boot·课程设计
今年下半年3 小时前
【防重放】Spring Boot 通过自定义注解实现接口防重放
java·spring boot·自定义注解·防重放
企业数字化笔记4 小时前
多租户系统从哪里开始设计?租户身份、数据隔离、权限与套餐的整体方案
java·spring boot·后端·junit