【bug】Error: /undefinedfilename in (/tmp/ocrmypdf.io.9xfn1e3b/origin.pdf)

在使用ocrmypdf的时候,需要Ghostscript9.55及以上的版本,但是ubuntu自带为9.50

然后使用ocrmypdf报错了

csharp 复制代码
sudo apt update
sudo apt install ghostscript
gs --version
9.50 #版本不够

安装的版本为9.50不够,因此去官网https://ghostscript.com/releases/gsdnld.html下载10.05.1的版本,但是不要下载snap版本,下载源码进行编译

使用 sudo snap install --devmode gs_10.05.1_amd64.snap 安装 Ghostscript 时,它会被安装在一个 高度隔离的沙盒环境 中。这意味着 Snap 包对文件系统、网络和其他系统资源的访问是受限的,除非明确授予权限。

当 ocrmypdf 尝试调用这个通过 Snap 安装的 Ghostscript 时,Ghostscript 会尝试访问 ocrmypdf 创建的临时文件(例如 /tmp/ocrmypdf.io.63kyrt7k/origin.pdf)。然而,由于 Snap 的隔离机制,你的 Ghostscript Snap 很可能没有权限读取或写入到像 /tmp 或你文件系统中其他任意位置(包括 /mnt/mydrive/item/python/tmp)的临时文件。

尽管你之前检查过 /tmp 目录的权限是正确的(drwxrwxrwt),但那是针对宿主系统而言的。Snap 环境有自己的沙盒规则,即便宿主系统允许访问,Snap 包内部也可能被限制。

下载源码,下面是具体命令:

csharp 复制代码
sudo apt remove ghostscript # 卸载自带的版本
sudo snap remove gs # 如果通过snap下载就删除
wget https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs10051/ghostscript-10.05.1.tar.gz
sudo apt install build-essential libcups2-dev libpng-dev libtiff-dev zlib1g-dev libjpeg-dev liblcms2-dev libpaper-dev libopenjp2-7-dev libjbig2dec-dev #下载依赖
tar -xf ghostscript-10.05.1.tar.gz
cd ghostscript-10.05.1/
./configure  # ./configure 会检查你的系统环境和依赖
make -j$(nproc)  # 编译代码
sudo make install #将编译好的程序安装到系统路径(通常是 /usr/local/bin 和 /usr/local/lib)
gs --version #验证安装
10.05.1

贴一张安装成功的图片:

相关推荐
AAA_自动化工程师1 小时前
TIA博途中的程序导出为PDF格式的具体方法示例
pdf·tia博途·程序导出·pdf格式·具体方法
行云流水剑2 小时前
【学习记录】如何使用 Python 提取 PDF 文件中的内容
python·学习·pdf
IDRSolutions_CN2 小时前
PDF 转 HTML5 —— HTML5 填充图形不支持 Even-Odd 奇偶规则?(第二部分)
java·经验分享·pdf·软件工程·团队开发
行云流水剑5 小时前
【学习记录】在 Ubuntu 中将新硬盘挂载到 /home 目录的完整指南
服务器·学习·ubuntu
藥瓿亭5 小时前
K8S认证|CKS题库+答案| 7. Dockerfile 检测
运维·ubuntu·docker·云原生·容器·kubernetes·cks
杨过姑父6 小时前
部署开源版禅道,修改apache端口无效解决
bug·apache·软件工程·issue
xiangyong587 小时前
ubuntu系统文件误删(/lib/x86_64-linux-gnu/libc.so.6)修复方案 [成功解决]
linux·ubuntu·gnu
沉到海底去吧Go7 小时前
【工具教程】多个条形码识别用条码内容对图片重命名,批量PDF条形码识别后用条码内容批量改名,使用教程及注意事项
pdf
摸鱼仙人~8 小时前
PDF图片和表格等信息提取开源项目
pdf