
私は契約職で Centos 7 ボックスの管理を担当しています。私はどちらかというと開発者であり、Linux 管理者ではありませんので、どうか我慢して、5 歳児に説明するように説明してください。
私たちが取り組んでいるアプリの1つには、pdftk残念ながら、これに対する依存関係は libgcj と呼ばれるものです。libgcj は非推奨とみなされており、新しい Centos 7 には「同梱」されていないと読みました。
そこで、私は次のことを実行しました:
wget http://mirror.centos.org/centos/6/os/x86_64/Packages/libgcj-4.4.7-11.el6.x86_64.rpm
wget https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/pdftk-2.02-1.el6.x86_64.rpm
rpm -ivh --nodeps libgcj-4.4.7-11.el6.x86_64.rpm
yum install pdftk-2.02-1.el6.x86_64.rpm
やった、pdftk は動作するようになりました。しかし、いろいろ読んでみて、これはよくないアイデアだと判断しました。なぜこれが愚かなことなのか、理由は示されていません。では、なぜこれをすべきではなかったのか、誰か教えていただけませんか? あるいは、今私が取るべきアドバイスや予防策を教えていただけませんか? これが私たちのマシンを壊さないことが分かるまで、サーバーを再起動したり、アップデートをインストールしたりするのは怖いです。
よろしくお願いします。
答え1
これは完全な答えではありませんが、今まで誰もこの手順が悪い考えではない理由を述べていないので、次のようになります。
パッケージの特定のバージョンは、外部ライブラリによって提供される関数に依存しています。これらのライブラリは時間の経過とともに変更され、その過程で動作が変更されたり、関数が完全に削除されたりする可能性があります。EL6 から EL7 への移行は非常に大きなステップであるため、パッケージ/ライブラリ XYZ の新しいバージョンが存在する可能性があります。これは、通常、インストールされているパッケージのバージョンで動作しますが、完全に動作するわけではありません。
あなたの場合、pdftk は一般的に期待どおりに動作するかもしれませんが、特別な場合には、インストールされている他のパッケージでは動作しない関数呼び出しがあり、その結果クラッシュしたり、予期しない動作をする可能性があります。その場合、この誤動作の原因がどこにあるかを評価するのは非常に困難になります。
これを行わない理由は他にもたくさんあるかもしれませんが、これが私が最初に思いつくことです。また、実稼働システムでは安定性が重要です。したがって、バージョンを混同したり、特定の OS リリース向けに設計したりすることはしません。少なくとも、徹底的なテストを行わない限りは。
答え2
主な問題は次のとおりです。
サポートされていません
いくつかのコマンド ラインを使用してgcc-java
、、libgcj
をlibgcj-devel
システムに導入できます。ただし、このソフトウェアは CentOS 7 ではサポートされていません。サポートされていない構成を使用すると、問題が発生する可能性が高くなります。そこで、次のことに注意します。
Rackspace ではサポートされません。Ubuntu よりも CentOS を使用する利点は、もちろん、エンタープライズ サポートが優れていることです。このようにサポートされていない構成を使用すると、そのすべてが失われます。したがって、Rackspace に「pdftk を含む XYZ ソフトウェアを搭載したサーバーを作成してください」と依頼しても、Rackspace は「いいえ」と答えるでしょう。
pdftk を CentOS 7 でサポートされた構成で動作させる必要がある場合は、Java 部分を書き直して CentOS 7 に受け入れられるようにするフォークが存在します。私の会社ではこれが必要ですが、私にはそれを行う時間がないので、この作業に対して賞金を出します。この賞金とフォークを次の場所でチェックしてみてください。https://github.com/fulldecent/pdftk