在使用ocrmypdf的時候,需要Ghostscript9.55及以上的版本,但是ubuntu自帶為9.50
然后使用ocrmypdf報錯了
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 包內部也可能被限制。
下載源碼,下面是具體命令:
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
貼一張安裝成功的圖片: