【问题标题】:How to install pdftk on Amazon Linux AMI release 2012.03如何在 Amazon Linux AMI 版本 2012.03 上安装 pdftk
【发布时间】:2012-09-12 04:12:17
【问题描述】:

我无法在 Amazon Linux AMI 版本 2012.03 上安装 pdftk。 pdftk 需要 gcj2.14,amazon ami 提供 gcj2.12 包。如果我尝试安装 gcj2.14,则会与现有 gcj 包发生冲突。请建议一种无需升级 amazon ami linux 即可安装 pdftk 的方法,因为我的应用程序已经在那里设置并运行。

您的帮助将不胜感激

【问题讨论】:

    标签: amazon pdftk


    【解决方案1】:

    受到@marcus 和他的github repo 的启发,我这样做了:

    sudo wget -O /usr/lib64/libgcj.so.10 https://github.com/lob/lambda-pdftk-example/raw/master/bin/libgcj.so.10
    sudo wget -O /usr/bin/pdftk https://github.com/lob/lambda-pdftk-example/raw/master/bin/pdftk
    chmod a+x /usr/bin/pdftk
    

    像魅力一样工作。

    【讨论】:

    • 为我工作。但我必须手动在 /usr/bin/pdftk 中设置权限
    • 适用于我的 amazon linux AMI
    • 这几天一直在搞这个。感谢您的解决方案!
    • 使用这些第三方二进制文件不如直接从源代码使用源代码或二进制文件安全。
    【解决方案2】:

    因为您可能不想用 pdftk 所需的所有依赖项污染您的生产映像 - 一种方法是在其他地方构建 pdftk 并将其部署到例如通过 S3。

    以下步骤应该可以帮助您入门。从历史记录中复制和粘贴,因此应该显示所需的步骤。

    从 AWS(或本地 Centos 6)获取 RedHat 实例

    sudo su -
    
    yum install gcc
    yum install gcc-java
    yum install gcc-c++
    
    cd /tmp/
    wget http://pkgs.repoforge.org/pdftk/pdftk-1.44-2.rf.src.rpm
    rpm2cpio pdftk-1.44-2.rf.src.rpm | cpio -idmv
    unzip pdftk-1.44-src.zip 
    
    cd pdftk-1.44-dist/
    cd pdftk
    make -f Makefile.Redhat 
    find / -iname libgcj.so.10.0.0
    mkdir -p /tmp/pdftk
    cp pdftk /tmp/pdftk
    find / -iname libgcj.so.10.0.0
    cp /usr/lib64/libgcj.so.10.0.0 /tmp/pdftk
    cd /tmp/
    tar cvzf pdftk.tar.gz pdftk
    

    确保在目标机器(Linux AMI)中复制 tar 包内容,如下所示

    libgcj.so.10.0.0 install to /usr/lib64
    
    ls -alh /usr/lib64/libgcj.so.*
    
    lrwxrwxrwx 1 root root  27 Sep  6 06:39 /usr/lib64/libgcj.so.10 -> /usr/lib64/libgcj.so.10.0.0
    
    -rwxr-xr-x 1 root root 47M Sep  6 06:38 /usr/lib64/libgcj.so.10.0.0
    

    我只是用 S3 bucket 来传输文件:

    /usr/bin/s3cmd --force get s3://<your-bucket>/rpm/pdftk.tar.gz  /tmp/
    
    pushd /tmp
    
    /bin/tar xzf pdftk.tar.gz  
    
    /bin/cp pdftk/pdftk /usr/bin/
    
    /bin/cp pdftk/libgcj.so.10.0.0 /usr/lib64/libgcj.so.10.0.0
    
    /bin/ln -s /usr/lib64/libgcj.so.10.0.0 /usr/lib64/libgcj.so.10.0
    
    /sbin/ldconfig
    
    popd
    

    【讨论】:

    • 嗨,我已经格式化了你的帖子。请再次查看以检查是否存在差异。谢谢。
    • 这很有效。我用它来让 PDFtk 在运行在 Amazon Linux 上的 AWS Lambda 上工作。我在这里写过:lob.com/blog/aws-lambda-pdftk。我提供了 PDFtk 二进制和 GCJ 共享库,因此您可以在此处跳过编译步骤:github.com/lob/lambda-pdftk-example
    【解决方案3】:

    非常老的帖子,但我一直在寻找在亚马逊发行版上安装 pdftk 的方法(这是 OP 正在使用的)。以下是亚马逊代表的回复:

    Amazon Linux AMI 不支持 GCJ,这就是为什么 遇到这个问题。

    为了让您尽快前进 在基于 RPM 的 EC2 实例上,我建议您提供 试试 Fedora,因为 pdftk 打包在他们的仓库中。

    感谢您使用 EC2,希望此建议对您有所帮助。

    https://forums.aws.amazon.com/thread.jspa?threadID=96919

    【讨论】:

    • 这是什么意思?我们无法在 EC2 RHEL 实例上安装 pdftk(即使 PDF Labs 有 RHEL 的二进制 RPM)?
    • 您应该可以在 RHEL 实例上正常使用它 - 我试图让它在 Amazon Linux 发行版上运行。
    • 好的,谢谢。怎么做这样的事情? stackoverflow.com/questions/27969411/…
    猜你喜欢
    • 2017-01-14
    • 1970-01-01
    • 2014-11-07
    • 2018-04-11
    • 2014-06-03
    • 1970-01-01
    • 2018-12-12
    • 2016-04-21
    • 2015-05-05
    相关资源
    最近更新 更多