【发布时间】: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 Linux AMI 版本 2012.03 上安装 pdftk。 pdftk 需要 gcj2.14,amazon ami 提供 gcj2.12 包。如果我尝试安装 gcj2.14,则会与现有 gcj 包发生冲突。请建议一种无需升级 amazon ami linux 即可安装 pdftk 的方法,因为我的应用程序已经在那里设置并运行。
您的帮助将不胜感激
【问题讨论】:
受到@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
像魅力一样工作。
【讨论】:
因为您可能不想用 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 的方法(这是 OP 正在使用的)。以下是亚马逊代表的回复:
Amazon Linux AMI 不支持 GCJ,这就是为什么 遇到这个问题。
为了让您尽快前进 在基于 RPM 的 EC2 实例上,我建议您提供 试试 Fedora,因为 pdftk 打包在他们的仓库中。
感谢您使用 EC2,希望此建议对您有所帮助。
【讨论】: