ฉันจะติดตั้ง pdftk ใน Ubuntu 18.04 และใหม่กว่าได้อย่างไร


105

มีโอกาสในการpdftkทำงานกับ Ubuntu 18.04 หรือไม่? ฉันต้องการสิ่งนี้สำหรับการสร้างไฟล์ PDF ด้วยลายน้ำในเปลือก

หรือใครรู้ทางเลือกการทำงานpdftkเพื่อสร้าง PDF ด้วยลายน้ำในเปลือก?

ฉันได้ตรวจสอบ / ลองใช้ทั้งหมดแล้ว:

sudo apt list pdf*
Listing... Done
pdf-presenter-console/bionic 4.1-2 amd64
pdf-redact-tools/bionic,bionic 0.1.2-1 all
pdf.js-common/bionic,bionic 1.5.188+dfsg-1 all
pdf2djvu/bionic 0.9.8-0ubuntu1 amd64
pdf2svg/bionic 0.2.3-1 amd64
pdfcrack/bionic 0.16-1 amd64
pdfcube/bionic 0.0.5-2build6 amd64
pdfcube-dbg/bionic 0.0.5-2build6 amd64
pdfgrep/bionic 2.0.1-1 amd64
pdfminer-data/bionic,bionic 20140328+dfsg-1 all
pdfmod/bionic,bionic 0.9.1-8 all
pdfmod-dbg/bionic,bionic 0.9.1-8 all
pdfposter/bionic,bionic 0.6.0-2 all
pdfresurrect/bionic 0.14-1 amd64
pdfsam/bionic,bionic 3.3.5-1 all
pdfsandwich/bionic 0.1.6-1 amd64
pdfshuffler/bionic,bionic 0.6.0-8 all
pdftoipe/bionic 1:7.2.7-1build1 amd64

แต่ไม่พบเครื่องมือที่ใช้งานได้


3
และ PDF เชนด้วย! เครื่องมือทั้งสองนี้มีค่าสำหรับฉันมาก!
Joshp.23

3
อย่าเพิ่งเขียน "คุณสามารถลอง ... " อธิบายว่าคุณทำได้อย่างไรและขั้นตอนที่คุณต้องทำตามเพื่อให้คำตอบมีประโยชน์มากขึ้น
ADDB

1
หากคุณแก้ไขปัญหาด้วยตัวเองโปรดตอบคำถามของคุณเองและยอมรับคำตอบของคุณ อย่าใส่คำตอบในคำถามหรือความคิดเห็นของคุณ! :-) ฉันใช้เสรีภาพในการเปลี่ยนกลับการเปลี่ยนแปลงที่เพิ่มคำตอบ แต่คุณสามารถตรวจสอบประวัติของโพสต์ผ่านลิงก์ด้านล่าง
David Foerster


2
มันเป็นความอัปยศที่เครื่องมือที่ดีเช่นนี้ถูกลบออกเพียงเพราะนักพัฒนาไม่พบวิธีการแก้ปัญหาที่ยอมรับ
Daniel Alder

คำตอบ:


92

แพคเกจ pdftk ในอูบุนตู (และต้นน้ำแพคเกจ Debian ) คือการลดลงเนื่องจากการพึ่งพาเลิกตอนนี้รันไทม์ GCJ ฉันพบทางแยกที่ขึ้นอยู่กับ OpenJDK หรือคล้ายกันแทน

ติดตั้งจากรุ่น Ubuntu ในอนาคต (แนะนำ)

เริ่มต้นด้วย Cosmic (Ubuntu 18.10) Ubuntu มาpdftk-javaจากซอร์สโค้ดเดียวกันด้านล่างแทน ความพยายามในการติดตั้งpdftkจะติดตั้งแพ็คเกจนี้แทน ผู้ใช้รุ่นก่อนหน้าสามารถดาวน์โหลดได้ด้วยตนเองจากที่เก็บแพคเกจและติดตั้งด้วยตัวจัดการแพ็คเกจที่ชื่นชอบ

ติดตั้งจาก PPA (ล้าสมัย)

ฉันสร้างแพ็คเกจ Deb (สำหรับไบโอนิคเท่านั้น) โดยมีการอ้างอิงที่เหมาะสม:

sudo add-apt-repository ppa:malteworld/ppa
sudo apt update
sudo apt install pdftk

แพ็คเกจนี้มีสคริปต์ตัวห่อหุ้มอยู่/usr/binดังนั้นคุณจึงสามารถเรียกใช้งานได้ตามปกติ:

pdftk <arguments> ...

ติดตั้งจากแหล่งที่มา

  1. ติดตั้งเครื่องมือบิลด์และการขึ้นต่อกัน:

    sudo apt install git default-jdk-headless ant \
        libcommons-lang3-java libbcprov-java
    

    แน่นอนคุณสามารถใช้ JDK ที่สนับสนุนแตกต่างจากที่ให้default-jdk-headlessมา

  2. ดาวน์โหลดMarc Vinyal's pdftk fork :

    git clone https://gitlab.com/pdftk-java/pdftk.git
    cd pdftk
    
  3. วางลิงก์สัญลักษณ์ไปยังไลบรารีที่ต้องการลงในlibโฟลเดอร์:

    mkdir lib
    ln -st lib /usr/share/java/{commons-lang3,bcprov}.jar
    
  4. สร้างแพ็คเกจ JAR:

    ant jar
    
  5. รันแพ็คเกจ JAR:

    java -jar build/jar/pdftk.jar --help
    
  6. (ไม่บังคับ) หากต้องการเรียกใช้แพคเกจ JAR เช่นเมื่อคุณแจกจ่ายไปยังระบบอื่นคุณต้องมี JRE (หัวขาด) ที่ใช้งานได้เช่นจากdefault-jre-headlessแพ็คเกจรวมถึงไลบรารี Java libcommons-lang3-javaและlibbcprov-java:

    sudo apt install default-jre-headless libcommons-lang3-java libbcprov-java
    

    คุณสามารถใช้ JRE default-jre-headlessอื่นได้อีก pdftk fork นี้ยังรองรับบิลด์สำหรับรุ่น JRE ที่เก่ากว่า (≥ 7 ตามเอกสารประกอบ)

  7. (อุปกรณ์เสริม) คุณสามารถสอนลินุกซ์ที่จะดำเนินการ JAR (จาวาคลังข้อมูล) update-binfmts(8)ไฟล์ผ่านทาง JREs ส่วนใหญ่จัดส่งในแพ็คเกจ Deb รวมถึงที่อยู่ในที่เก็บแพคเกจของ Canonical ดูแลในระหว่างการติดตั้งแม้ว่าจะดูเหมือนจะเป็นรถในแพคเกจ OpenJDK บาง

PS: ฉันลองสิ่งนี้กับ OpenJDK ที่ไม่ใช่หัวขาดใน Ubuntu Trusty แต่ฉันเห็นเหตุผลเล็กน้อยว่าทำไมมันไม่ควรทำงานกับ OpenJDK 10 แบบไร้หัวใน Bionic

แอพพลิเคชั่น

นักวิจารณ์ตั้งคำถามที่ถูกต้องว่าแอปพลิเคชันPDF เชนที่เกี่ยวข้องนั้นได้รับผลกระทบจากการเปลี่ยนแปลงนี้หรือไม่:

  • ไม่มี , PDF เชนเป็นโปรแกรมภาษา C ++ และไม่ได้รับผลกระทบโดยตรงจากการเลิกของ GCJ มันต้องการไฟล์pdftk ที่ใช้งานได้ แต่ไม่สนใจว่ามันทำงานอย่างไรภายใต้ประทุน ในกรณีใด ๆรูปแบบไฟล์ PDF เชนถูกทิ้งจากไบโอนิคเช่นเดียวกับpdftk

ฉันกำลังอ่านคำถามอื่นเกี่ยวกับการติดตั้งแพ็กเกจอื่นที่ตกจาก repos สำหรับ 18.04 และผู้ใช้คนหนึ่งแนะนำให้ติดตั้งแพ็คเกจ. deb โดยใช้ gdebi ซึ่งควรจัดการการพึ่งพา คุณคิดว่ามันจะใช้งานได้หรือมันจะสร้างปัญหาบางอย่าง? นั่นอาจเป็นคำถามที่โง่ - ฉันแค่พยายามทำความเข้าใจเพิ่มเติมเกี่ยวกับการจัดการบรรจุภัณฑ์
ฮีจิน

5
คำแนะนำทั้งสองชุดในคำตอบนี้ติดตั้งpdftk-javaส้อมของ Marc Vinyal นั่นคือ (อาจจะเป็น) การแทนที่อย่างเป็นทางการสำหรับpdftkใน Debian ( ดู ) และใน Ubuntu (พร้อมแพ็กเกจสำหรับ 18.10) ดังนั้นนี่จึงเป็นคำตอบที่ดีที่สุดเนื่องจากเป็น "หลักฐานในอนาคต": ตั้งแต่ 18.10 เป็นต้นไปคุณจะได้รับซอฟต์แวร์เดียวกันใน repos อย่างเป็นทางการ
tanius

@DavidFoerster กับมัน คำถาม: มีเหตุผลพิเศษที่แนะนำให้antติดตั้งไลบรารี่ผ่าน apt หรือไม่โดยใช้ Gradle สำหรับบิลด์?
Raphael

จากคำถามที่ตามมาเกี่ยวกับแพคเกจหุ่นจำลองนั้นมีข้อสงสัยเกิดขึ้นว่าการพึ่งพาของpdftk-javaคนที่เลือกนั้นดีหรือไม่ คุณอาจต้องการตรวจสอบว่า
Raphael

ฉันสร้างคำอธิบายแพ็คเกจสำหรับ equivsที่ให้ Java ติดตั้งโดย SDKMAN! pdftk-javaเป็นแพ็กเกจที่ตอบสนองความพึ่งพาได้
Raphael

61

สำหรับ Ubuntu 18.04 เพียงติดตั้งแพ็คเกจ pdftk snap:

sudo snap install pdftk

1
การเชื่อมโยงไม่ได้ผลสำหรับฉันเพราะsnapดูเหมือนจะต้องการชื่อสคริปต์ แต่สคริปต์ตัวห่อหุ้มขนาดเล็ก/snap/bin/pdftk-smoser.pdftk "$@"ทำงานได้ดีอย่างเท่าเทียมกัน
Boldewyn

อูบุนตูรุ่นใด คำแนะนำที่แม่นยำที่ฉันให้ไว้ข้างต้นนั้นใช้ได้สำหรับฉัน ฉันเรียก pdftk จากสคริปต์การประมวลผล perml xml และการทดสอบกรดคือสคริปต์ทำงานและสร้างไฟล์ PDF ที่ผสาน
pgoetz

3
ฉันอัปเดตคำตอบข้างต้นเพื่อใช้เพียง 'pdftk' มากกว่า 'pdftk' เนื่องจากฉัน (smoser) อัปโหลดสแน็ปชื่อ 'pdftk' ไปยังร้านค้าที่มีเนื้อหาเดียวกัน ( snapcraft.io/pdftk )
smoser

4
ดูเหมือนว่าจะติดตั้งได้ดี แต่ pdftk จะไม่เปิดหรือทำงานกับไฟล์ใด ๆ (มักจะบอกว่า 'ข้อผิดพลาด: ไม่สามารถหาไฟล์ได้ข้อผิดพลาด: ไม่สามารถเปิดไฟล์ PDF:') นอกจากนี้ยังไม่มีหน้าเว็บด้วย ในที่สุดฉันก็ลบมันออกด้วย snap snap และไปกับโซลูชัน @abu_bua ด้านบนซึ่งทำงานได้อย่างสมบูรณ์
scoobydoo

1
เนื่องจากจุดการออกแบบของ snaps, snap ไม่สามารถเข้าถึงไฟล์ทั้งหมด ข้อมูลบางอย่างเกี่ยวกับเรื่องนี้สามารถใช้ได้ที่github.com/smoser/pdftk/issues/1 ทางออกที่ง่ายที่สุดคือการวางไฟล์ในโฮมไดเร็กตอรี่ของคุณ
ทำลาย

36

การติดตั้ง pdftk บน Ubuntu 18.04 amd64

ฉันได้เขียนสคริปต์ทุบตีขนาดเล็กซึ่งทำการติดตั้งบน Ubuntu โดยอัตโนมัติ 18.04 โปรดทราบว่าฉันได้ดาวน์โหลดแพ็คเกจamd64 เท่านั้น !

#!/bin/bash
#
# author: abu
# date:   July 3 2019 (ver. 1.1)
# description: bash script to install pdftk on Ubuntu 18.04 for amd64 machines
##############################################################################
#
# change to /tmp directory
cd /tmp
# download packages
wget http://launchpadlibrarian.net/340410966/libgcj17_6.4.0-8ubuntu1_amd64.deb \
 http://launchpadlibrarian.net/337429932/libgcj-common_6.4-3ubuntu1_all.deb \
 https://launchpad.net/ubuntu/+source/pdftk/2.02-4build1/+build/10581759/+files/pdftk_2.02-4build1_amd64.deb \
 https://launchpad.net/ubuntu/+source/pdftk/2.02-4build1/+build/10581759/+files/pdftk-dbg_2.02-4build1_amd64.deb


echo -e "Packages for pdftk downloaded\n\n"
# install packages 
echo -e "\n\n Installing pdftk: \n\n"
sudo apt-get install ./libgcj17_6.4.0-8ubuntu1_amd64.deb \
    ./libgcj-common_6.4-3ubuntu1_all.deb \
    ./pdftk_2.02-4build1_amd64.deb \
    ./pdftk-dbg_2.02-4build1_amd64.deb
echo -e "\n\n pdftk installed\n"
echo -e "   try it in shell with: > pdftk \n"
# delete deb files in /tmp directory
rm ./libgcj17_6.4.0-8ubuntu1_amd64.deb
rm ./libgcj-common_6.4-3ubuntu1_all.deb
rm ./pdftk_2.02-4build1_amd64.deb
rm ./pdftk-dbg_2.02-4build1_amd64.deb

สคริปต์นี้จะดาวน์โหลดแพ็คเกจ/tmpและติดตั้งจากที่นั่นโดยใช้apt installคำสั่ง! หลังจากนั้นแพ็คเกจใน/tmpไดเรกทอรีจะถูกลบออก

เมื่อต้องการเรียกใช้สคริปต์นี้คัดลอกในการแก้ไขและบันทึกไว้เช่นpdftk_installer จากนั้นรันในเทอร์มินัลด้วย

chmod 755 pdftk_installer
./pdftk_installer

ดูเหมือนว่าpdftk-dbg_2.02-4build1_amd64.debจะเป็นตัวเลือก
Jossef Harush

นี่เป็นที่นิยมมากกว่าเวอร์ชัน snap หรือเวอร์ชันที่ใช้จาวาจาก PPA - ขอบคุณ!
ไซมอน

เพื่อให้คำอธิบายบางอย่างปรากฏขึ้นเพื่อดาวน์โหลดแพ็คเกจ Ubuntu-artful (17.10)
Randall Whitman

3
ลิงก์ทั้งหมดใช้งานไม่ได้
นักพัฒนา

1
ลิงค์อัพเดททันที!
abu_bua

10

คุณสามารถลองใช้ภาพนักเทียบท่าของ Ubuntu 16.04 ที่ติดตั้ง pdftk เพื่อเรียกใช้ pdftk:

  1. ติดตั้งนักเทียบท่า:

    sudo apt install docker.io
  2. ดึง Ubuntu 16.04 และรัน bash shell:

    sudo docker run -it ubuntu:16.04 bash
  3. อัพเดตและติดตั้ง pdftk จากพรอมต์คอนเทนเนอร์:

    apt update
    apt install pdftk
    
  4. ในการรันเทอร์มินัลใหม่:

    sudo docker ps -a
  5. ยอมรับรูปภาพโดยใช้ CONTAINER ID ของ ubuntu: 16.04 ไปยังรูปภาพใหม่ที่ติดตั้ง pdftk:

    sudo docker commit CONTAINER_ID ubuntu_pdftk

    (แทนที่CONTAINER_IDด้วย ID คอนเทนเนอร์ของคุณ)

  6. สร้างไฟล์ชื่อpdftkใน/usr/binแล้วทำให้มันปฏิบัติการใช้chmod +x /usr/bin/pdftk:

    #!/bin/sh
    set -eu
    docker run --name pdftk -it -v "$PWD:/workdir$PWD" -w "/workdir$PWD" ubuntu_pdftk pdftk "$@"
    docker rm pdftk
    

เกือบสิ่งที่ฉันทำ ยกเว้นคุณไม่มีข้อผิดพลาด-v "$PWD:/workdir$PWD" -w "/workdir$PWD"หรือไม่?
Ondra Žižka

5

ฉันสามารถติดตั้ง pdftk จากแพ็คเกจ deb (17.10) artful ดาวน์โหลดและติดตั้งตามลำดับ:

เป็นการดีที่สุดที่จะติดตั้งgcc-6-baseก่อนเพื่อหลีกเลี่ยงข้อผิดพลาดในการพึ่งพาถ้าคุณทำจาก CLI

นั่นควรทำเคล็ดลับ ... สำหรับตอนนี้


2

ฉันทำวิธีแก้ปัญหาที่รวดเร็วและสกปรกเพื่อให้ PDFTK ทำงานภายใต้ Bionic

lsb_release -a && pdftk --version
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04 LTS
Release:        18.04
Codename:       bionic

pdftk 2.02 a Handy Tool for Manipulating PDF Documents
Copyright (c) 2003-13 Steward and Lee, LLC - Please Visit: www.pdftk.com

ฉันอัพเดตsources.listและรวมบรรทัดต่อไปนี้:

deb http://no.archive.ubuntu.com/ubuntu/ artful main restricted
deb http://no.archive.ubuntu.com/ubuntu/ artful-updates main restricted
deb http://no.archive.ubuntu.com/ubuntu/ artful universe
deb http://no.archive.ubuntu.com/ubuntu/ artful-updates universe
deb http://no.archive.ubuntu.com/ubuntu/ artful multiverse
deb http://no.archive.ubuntu.com/ubuntu/ artful-updates multiverse
deb http://no.archive.ubuntu.com/ubuntu/ artful-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu artful-security main restricted
deb http://security.ubuntu.com/ubuntu artful-security universe
deb http://security.ubuntu.com/ubuntu artful-security multiverse

หลังจากนั้นฉันก็เรียกใช้ง่าย

sudo apt update

เพื่อให้การเปลี่ยนแปลงมีผล

จากนั้นติดตั้ง pdftk ผ่าน

sudo apt install pdftk

จากนั้นลบแหล่งข้อมูลที่เป็นประโยชน์ออกจาก source.list อีกครั้งและนี่คือวิธีที่ฉันทำให้ PDFTK ทำงานภายใต้ไบโอนิค

ที่มา: https://christiandietze.de/pdftk-with-ubuntu-bionic-18-04/


5
สวัสดีคริสเตียนคุณคิดจะอัพเดตคำตอบของคุณเพื่อรวมวิธีแก้ปัญหาของคุณหรือไม่ เราต้องการถ้าคุณรวมส่วนสำคัญของคำตอบไว้ที่นี่จากนั้นให้ลิงก์สำหรับการอ้างอิง ขอบคุณ!
CalvT

1
ใช่โดยเฉพาะอย่างยิ่งเนื่องจากไซต์ที่คุณเชื่อมโยงดูเหมือนจะไม่ทำงาน
terdon

สวัสดี CalvT วิธีแก้ปัญหาที่ฉันใช้คือเพียงเพิ่มแพ็กเกจ artfull ไปยัง apt ติดตั้ง pdftk และลบออก และ terdon เว็บไซต์ของฉันก็ไม่ได้ลงภายใน 30 วันที่ผ่านมาดังนั้นฉันไม่ทราบว่าทำไมคุณไม่ควรเข้าถึงเว็บไซต์
WiKrIe

@WiKrIe เกิดปัญหากับไซต์ของคุณ ฉันสามารถเข้าถึง URL พื้นฐานได้แต่ไม่ใช่หน้าเว็บที่คุณเชื่อมโยง เครื่อง Wayback ไม่สามารถทำได้ Google แคชจะไม่โหลดมัน แต่จะโหลดแหล่งที่มา จะต้องมีปัญหาในหน้านั้นบางแห่ง นั่นคือเหตุผลที่ terdon ♦คิดว่าเว็บไซต์ของคุณหยุดทำงาน ฉันก็เลยตรวจสอบ หวังว่าจะช่วย
D Junv Jund

1
-1 สำหรับข้อเสนอแนะในการผสมที่เก็บข้อมูลไว้สำหรับ Ubuntu รุ่นต่าง ๆ โดยไม่มีกฎที่มีลำดับความสำคัญที่เหมาะสม
David Foerster


1

คุณสามารถรัน pdftk บน Ubuntu 18.04 ด้วย docker นั่นคือตัวแปรที่ได้รับการปรับปรุงของคำตอบของ Ademir

สมมติว่าเราต้องการเพียงส่วนประกอบ cli ของ pdftk และมี docker ติดตั้งอยู่ในเครื่อง เพียงวางสคริปต์ต่อไปนี้ไว้ที่ $ PATH พร้อมชื่อpdftkและชุดบิตที่ทำงานได้:

#!/bin/bash

# Build or use cached image and tag with "local/local/ubuntu_pdftk", suppress 
# output to maintain compatibility in case you are parsing the pdftk output.
# It will build the image if it's absent or use the cached one.
echo "FROM ubuntu:16.04
RUN apt-get update && \
    apt-get install -y pdftk && \
    rm -rf /var/lib/apt/lists/*" | docker build -t local/local/ubuntu_pdftk - 2>&1 > /dev/null

# Run the pdftk as current user
set -eu
docker run --name pdftk -it --user $(id -u):$(id -g) --rm -v "$PWD:/workdir$PWD" -w "/workdir$PWD" local/local/ubuntu_pdftk pdftk "$@"

การเรียกใช้ครั้งแรกจะใช้เวลาประมาณ 2 นาทีในการสร้างภาพหากภาพที่สร้างไว้จะยังคงอยู่ในเครื่องที่ทำงานครั้งต่อไปจะเร็วขึ้น คุณสามารถล้างรูปภาพได้อย่างอิสระรูปภาพจะถูกสร้างขึ้นเมื่อคุณต้องการในครั้งต่อไป


1

ลิงก์ดาวน์โหลดในสคริปต์ที่โพสต์โดย @abu_bua ดูเหมือนจะไม่ทำงานอีกต่อไป (อาจเป็นเพราะการสิ้นสุดการสนับสนุนสำหรับ 17.10?) ดังนั้นนี่คือเวอร์ชันที่แก้ไขแล้วของสคริปต์เดียวกันที่ใช้แพ็คเกจที่สอดคล้องกันจากการสร้าง 16.04 พยายามและทดสอบบนเครื่องที่รัน 18.04

#!/bin/bash
#
# author: abu
# date:   May 12 2018
# description: bash script to install pdftk on Ubuntu 18.04 for amd64 machines
##############################################################################
#
# change to /tmp directory
cd /tmp
# download packages
wget http://mirrors.edge.kernel.org/ubuntu/pool/main/g/gcc-5/libgcj16_5.4.0-6ubuntu1~16.04.10_amd64.deb \
    http://mirrors.edge.kernel.org/ubuntu/pool/main/g/gcc-defaults/libgcj-common_4.9.3-9ubuntu1_all.deb \
    http://mirrors.edge.kernel.org/ubuntu/pool/universe/p/pdftk/pdftk_2.02-4_amd64.deb \
    http://mirrors.edge.kernel.org/ubuntu/pool/universe/p/pdftk/pdftk-dbg_2.02-4_amd64.deb

echo -e "Packages for pdftk downloaded\n\n"
# install packages 
echo -e "\n\n Installing pdftk: \n\n"
sudo apt-get install ./libgcj16_5.4.0-6ubuntu1~16.04.10_amd64.deb \
    ./libgcj-common_4.9.3-9ubuntu1_all.deb \
    ./pdftk_2.02-4_amd64.deb \
    ./pdftk-dbg_2.02-4_amd64.deb
echo -e "\n\n pdftk installed\n"
echo -e "   try it in shell with: > pdftk \n"
# delete deb files in /tmp directory
rm ./libgcj16_5.4.0-6ubuntu1~16.04.10_amd64.deb
rm ./libgcj-common_4.9.3-9ubuntu1_all.deb
rm ./pdftk_2.02-4_amd64.deb
rm ./pdftk-dbg_2.02-4_amd64.deb

1

ฉันชอบคำตอบนักเทียบท่าของ Ademirแต่มีปัญหาทั่วไปเกี่ยวกับความปลอดภัยและการอนุญาตเพราะนักเทียบท่าต้องทำงานเป็น root หากที่รบกวนจิตใจคุณลองใช้เอกพจน์ คุณต้องสร้างภาพเป็นรูท แต่ผู้ใช้สามารถเรียกใช้ได้

นี่คือSingularityไฟล์ที่ฉันใช้:

# Generate the Singularity container to run pdftk from Ubuntu 16.04.
Bootstrap: docker
From: ubuntu:16.04

%help
    pdftk was removed from Ubuntu 18.04, so this container packages up the old
    version.

%post
    apt-get update -qq
    apt-get install -qq pdftk

%runscript
    pdftk "$@"

จากนั้นฉันสร้างภาพ

sudo singularity build pdftk.simg Singularity

เมื่อทำงานแล้วฉันติดตั้งลงในโฟลเดอร์บนพา ธ พร้อมกับสคริปต์ตัวตัดคำที่ตั้งค่าโฮมโฟลเดอร์เป็นไดเรกทอรีปัจจุบัน

sudo mv pdftk.simg /usr/bin/
echo 'singularity run --home $PWD /usr/bin/pdftk.simg "$@"' > pdftk
sudo chown root:root pdftk
sudo chmod +x pdftk
sudo mv pdftk /usr/bin

และตอนนี้ฉันสามารถวิ่งpdftkได้

$ pdftk --version

pdftk 2.02 a Handy Tool for Manipulating PDF Documents
Copyright (c) 2003-13 Steward and Lee, LLC - Please Visit: www.pdftk.com
This is free software; see the source code for copying conditions. There is
NO warranty, not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

ข้อเสียเพียงอย่างเดียวก็คือมันสามารถเรียกใช้งานได้ค่อนข้างใหญ่เนื่องจากมี Ubuntu 16.04 ที่สมบูรณ์ คุณอาจมีปัญหาหากคุณพยายามจัดการไฟล์ PDF ที่ไม่ได้อยู่ในไดเรกทอรีปัจจุบัน

$ ls -lh /usr/bin/pdftk*
-rwxr-xr-x 1 root root  53 Jul 23 12:32 /usr/bin/pdftk
-rwxr-xr-x 1 root root 88M Jul 23 12:06 /usr/bin/pdftk.simg

0

ช่างเป็นโอกาสที่ดีที่จะใช้เวทย์มนตร์นักเทียบท่า!

สิ่งที่ฉันทำคือการใช้คอนเทนเนอร์นักเทียบท่าที่ใช้อูบุนตู 16.04, ติดตั้ง pdftk ข้างในและเรียกใช้ที่นั่น

นี่คือขั้นตอนที่แน่นอนหากคุณต้องการทำสิ่งเดียวกัน:

  1. ติดตั้งนักเทียบท่าหากคุณยังไม่มี ( https://docs.docker.com/install/ )
  2. สร้างไดเรกทอรีที่เรียกว่า pdftk
  3. สร้างไดเรกทอรีที่เรียกว่าdockerภายในpdftkไดเรกทอรี
  4. คัดลอก Dockerfile นี้ลงในpdftk/dockerไดเรกทอรี: https://github.com/gkotian/gautam_linux/blob/master/docker/pdftk/Dockerfile
  5. คัดลอกสคริปต์นี้ไปยังpdftk/dockerไดเรกทอรี: https://github.com/gkotian/gautam_linux/blob/master/scripts/dockershell
  6. ตรวจสอบให้แน่ใจว่าdockershellสคริปต์นั้นทำงานได้
  7. ลงในpdftkไดเรกทอรีคัดลอกไฟล์ pdf ทั้งหมดที่คุณต้องการใช้งาน
  8. cd /path/to/pdftk
  9. รันสคริปต์ dockershell ด้วยพา ธ ของ Dockerfile: docker/dockershell docker/Dockerfile(ขั้นตอนนี้จะใช้เวลาพอสมควรในการเรียกใช้ครั้งแรก)

ตอนนี้คุณควรมีพรอมต์ภายในคอนเทนเนอร์นักเทียบท่าซึ่งคุณสามารถเรียกใช้ pdftk ได้ เมื่อเสร็จแล้วให้พิมพ์exitเพื่อออกจากคอนเทนเนอร์แล้วกลับไปที่เครื่องโฮสต์ ไฟล์ที่สร้างขึ้นใหม่จะปรากฏในpdftkไดเรกทอรี (แต่จะเป็นของ root ดังนั้นคุณอาจจำเป็นต้องเปลี่ยนความเป็นเจ้าของตามความจำเป็น)


0

ใน 18.04 ที่ทำงานใน WSL ฉันทำสิ่งต่อไปนี้

รับการอ้างอิงจาก (ไฟล์. deb):

wget http://hr.archive.ubuntu.com/ubuntu/pool/main/g/gcc-6/libgcj17_6.4.0-8ubuntu1_amd64.deb

wget http://mirrors.edge.kernel.org/ubuntu/pool/main/g/gcc-defaults/libgcj-common_6.4-3ubuntu1_all.deb

sudo apt install gcc-6-base

จากนั้นติดตั้งการอ้างอิงข้างต้น

sudo dpkg -i libgcj*

จากนั้นฉันก็ไป.debจากhttps://packages.debian.org/search?keywords=pdftk

wget http://ftp.us.debian.org/debian/pool/main/p/pdftk/pdftk_2.02-4+b2_amd64.deb
sudo dpkg -i pdftk_2.02-4+b2_amd64.deb

1
ลิงก์สำหรับ libgcj และ libgcj17 นั้นใช้งานไม่ได้
HJLebbink

1
@HJLebbink Ubuntu ไม่เก็บงานศิลป์อีกต่อไป :( ลิงก์ห้องสมุด
Eduard Florinescu
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.