如何在Amazon Linux AMI release 2012.03上安装pdftk

3

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

感谢您的帮助。

3个回答

15

受 @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

运作得非常好。


1
对我有用。但是我必须手动设置 /usr/bin/pdftk 的权限。 - Janak Bhatta
1
对我来说,在亚马逊 Linux AMI 上运行正常。 - Calvin Froedge
1
我已经折腾了几天了。感谢您的解决方案! - Ervi B
使用这些第三方二进制文件并不像直接从源代码或二进制文件中获取那么安全。 - Mark Stosberg

4

由于您可能不希望在生产镜像中添加所有 pdftk 所需的依赖项,因此一种方法是在其他地方构建 pdftk 并通过 S3 部署到目标环境。

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

选择来自 AWS 的 RedHat 实例(或本地 Centos 6)

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

请确保您按照以下方式将tar包内容复制到目标机器(Linux AMI)中:
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存储桶来传输文件:

/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

嗨,我已经格式化了您的帖子。请再次查看以检查是否有差异。谢谢。 - nhahtdh
这基本上是有效的。我已经在运行在Amazon Linux上的AWS Lambda上使用了它来让PDFtk正常工作。我在这里写了一篇文章:https://lob.com/blog/aws-lambda-pdftk/。我提供了PDFtk二进制文件和GCJ共享库,因此您可以跳过编译步骤,链接在这里:https://github.com/lob/lambda-pdftk-example。 - Marcus

1

这是一篇很旧的文章,但我一直在寻找在亚马逊发行版上安装pdftk的方法(这是该帖子的原作者正在使用的)。以下是来自亚马逊代表的回复:

亚马逊Linux AMI不支持GCJ,这就是你遇到问题的原因。

为了让你尽快在基于RPM的EC2实例上前进,我建议你尝试使用Fedora,因为他们的存储库中打包了pdftk。

感谢您使用EC2,我希望这个建议能对您有所帮助。

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


这是什么意思?即使PDF Labs为RHEL提供了二进制RPM,但我们无法在EC2 RHEL实例上安装pdftk吗? - Aaron
您应该可以在RHEL实例上正常使用它——我试图在Amazon Linux发行版上运行它。 - Alec Sanger
好的,谢谢。我该如何做类似这样的事情?http://stackoverflow.com/questions/27969411/installing-pdftk-on-amazon-ec2-rhel-instance - Aaron

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接