ubuntu - 如何为 tesseract 创建 .deb 包?

标签 ubuntu makefile cmake tesseract deb

我正在尝试为 specific version 创建一个 .deb 安装程序的 tesseract .这个确切的版本没有在 ubuntu 20.04 中提供,
我在其他地方找不到它,我的项目需要它。
我们可以按照 here 给出的步骤使用 cmake 构建和安装它。这工作正常。以下是我使用 cmake 从源代码构建和安装 tesseract 的命令:

sudo apt install -y git cmake gcc g++ pkg-config libleptonica-dev
git clone --branch 4.0.0 --depth 1 https://github.com/tesseract-ocr/tesseract
cd tesseract
mkdir build
cd build
cmake .. -DBUILD_TRAINING_TOOLS=OFF
make
sudo make install
sudo ldconfig
我试过 sudo make checkinstall但目标似乎不存在。任何有经验的人都可以帮助我构建软件包安装程序,而不是直接从源代码安装它。
我想要安装程序的原因是使用 ubuntu-latest 将它与 GitHub Actions 轻松集成。图片。我们可以简单地将安装程序托管在某个地方,让 github 操作下载安装程序并安装 tesseract每次运行前。

最佳答案

正如@Tsyvarev 指出的那样,我调查了 cpack它运作良好。 cmakecpack对我来说是新的,以下是我编译 4.0.0 所遵循的步骤ubuntu 20.04 上的 tesseract 版本:
克隆 repo :

sudo apt install -y git cmake gcc g++ pkg-config libleptonica-dev
git clone --branch 4.0.0 --depth 1 https://github.com/tesseract-ocr/tesseract
编辑 CMakeLists.txt
然后我们需要在 CMakeLists.txt 的末尾添加以下行启用 cpack 功能并设置所需的变量:
set(OSNAME "ubuntu_20.04")
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "amd64")
set(CPACK_DEBIAN_PACKAGE_MAINTAINER "<your name>")
set(CPACK_DEBIAN_PACKAGE_NAME "tesseract-ocr")
set(CPACK_DEBIAN_PACKAGE_DESCRIPTION "<description>")
# set(CPACK_DEBIAN_PACKAGE_DEPENDS "liblept5") # Manually adding the dependencies 
set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) # This automatically determines required dependencies
set(CPACK_PACKAGE_VERSION ${PACKAGE_VERSION})
set(CPACK_PACKAGE_FILE_NAME ${CPACK_DEBIAN_PACKAGE_NAME}_${PACKAGE_VERSION}_${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}_${OSNAME})
set(CPACK_PACKAGING_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX})
set(CPACK_STRIP_FILES TRUE)
include(CPack)
我正在使用 OSNAME变量以将其附加到生成的文件名。了解CPACK_DEBIAN_PACKAGE_ARCHITECTURE值,你可以运行 dpkg --print-architecture ,在我的情况下是 amd64 .您还需要提供包裹的名称和描述。
创建 Debian 软件包安装程序
cd tesseract
mkdir build
cd build
cmake .. -DBUILD_TRAINING_TOOLS=OFF
make
cpack -G DEB
这将生成一个 debian 包文件:tesseract-ocr_4.0.0_amd64_ubuntu_20.04.deb安装包
运行dpkg -i tesseract-ocr_4.0.0_amd64_ubuntu_20.04.deb会给出它需要的错误liblept5我们可以按照以下顺序运行命令来正确安装
sudo apt install liblept5
sudo dpkg -i tesseract-ocr_4.0.0_amd64_ubuntu_20.04.deb
sudo ldconfig
我们可以通过运行 tesseract --help 来检查 tesseract 是否安装正确。
卸载软件包
下面将从系统中卸载包
sudo dpkg -r tesseract-ocr

关于ubuntu - 如何为 tesseract 创建 .deb 包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68829524/

相关文章:

ubuntu - Mac 包装 : proposal for a new method(suggestions please)

linux - 从 makefile 创建一个 cronjob?

gcc - fatal error : gnu/stubs-soft. h:无此类文件或目录

list - 如何在cmake中传递一个包含一个空元素的列表?

ubuntu - 如何在 Ubuntu 中安装 Guake(下拉)终端

php - 使用 php 创建 Linux 用户

linux - 如何更新make 3.81 linux

c++ - 在我的 Linux C++ 项目中使用 Bullet

cmake - 将带空格的参数传递给 CMake ExternalProject_Add BUILD_COMMAND

c - IPv6 客户端无法连接到 IPv6 服务器,无法分配请求的地址