コンパイルせずにImageMagickの最新のアップストリームバージョンをインストールするにはどうすればよいですか?


15

ImageMagickにいくつかの問題があり、UbuntuのデフォルトのImageMagickパッケージは古いバージョンであり、問題を解決するにはアップグレードする必要があると言われました。

どうやってやるの?最新のUbuntuバージョン(12.10)を持っています。Synapticは、私8:6.7.7.10-2ubuntu4をIMの最新バージョンとして示しています。これは、IMバージョンが6.7.7.10convert --version同じものを出力する)ことを意味します。IM は、debバイナリ自体を提供しません。Debianには新しいものがありますが、いくつかのテスト/実験ブランチでは、よく理解していれば。LaunchpadIMを見つけましたが、これをソースに追加する方法はありません。最新/ベータソフトウェアを検索するときに出会う通常のPPAの1つではないようです。私はこれをどのように扱うかわかりません。

パッケージをいくつかの最新のソースから取得するようにマークし、システムの残りを標準ソースから取得するままにする方法はありますか?IM(6.8)の最後の安定バージョンにアップグレードするのがおそらく最善ですが、Debianにはないのでおそらくそれはsci-fiです。ただし、少なくとも必要6.7.9です。


注:ソースからのコンパイルは避けたいです。何かをインストールしapt-get、Synaptic で簡単に操作できないことが嫌です。さらに、コンパイルされたプログラムの更新はありません。接着剤、ワイヤー、アヒルテープを使用するなど、常にシステムに逆らうようにコンパイルします。いいえ、確かにコンパイルしたくありません。


新しいバージョンを入手する最も簡単な方法は、実際に新しいバージョンをパッケージ化し、メンテナーにアップロードすることです。launchpad.net/imagemagickチームに参加するか、できればアップストリームで作業することをお勧めします。
fossfreedom

それはいいことですが、私はPython開発者であり、Ubuntu / Debianのパッケージ化に関する知識がまったくないので、DevOps / packaging / UNIXの管理に近い人々にとってはむしろタスクです。オープンソースのPythonライブラリを書くことで世界を支援します:)
Honza Javorek

私が見る限り、コンパイルとパッケージング以外の提案はありません。
fossfreedom

コンパイルしたくないと言ったのは知っていますが、これは興味深いかもしれません。既存のimagemagickパッケージとその依存関係をこのメソッドで維持できます。configure withを実行し--prefix=/opt、プログラムをコンパイルしてから/optwith checkinstallにインストールできるため、を介してコンパイル済みバージョンをパッケージとして管理できますapt-get。新しいバージョンを使用する/opt/bin/convert場合はconvert、いくつかのシンボリックリンクを作成しない限り、を実行するタイミングを指定する必要があります 。いずれにしても、標準パッケージバージョンとコンパイル済みバージョンの両方を保持できます

1
まあ、私は知りませんでしたcheckinstall。正しく理解できれば、プログラムのコンパイル済みバージョンをシステムにインストールし、それをSynapticなどでパッケージとして表す必要があります。つまり、後で安全に簡単に削除できます。それは素晴らしいことです!
ホンザジャボレク

回答:


18

ご注意:にもかかわらずHonzaは当初、彼はコンパイルしたくなかったことを、私たちが使用して議論したcheckinstall上記のコメントでコンパイルされたパッケージをインストールします。一緒にインストールされたプログラムは、パッケージマネージャーを使用して他のパッケージと同様に削除できるため、Honzaがまさに望んでいたものcheckinstallでした。


ビルド後に/opt使用するためにインストールしているcheckinstallので、元のimagemagickパッケージをそのままにしておくことができます。(実際には、まだインストールされていない場合はリポジトリバージョンをインストールします。)依存関係はインストールされたままにすることができ、最新バージョンのでも違いはありませんimagemagick。まず、ビルドの依存関係と他のいくつかのツールをインストールします。

sudo apt-get install build-essential checkinstall && sudo apt-get build-dep imagemagick

公式サイトからソースコードをダウンロードし、ターミナルを使用cdして、ソースパッケージがある場所に解凍します。

tar -xzvf ImageMagick-6.8.3-9.tar.gz

今、そのフォルダに移動します

cd Imagemagick-6.8.3-9

ビルドに使用可能なオプションを確認したい場合は、実行します

./configure --help

ただし、ほとんどすべてがすでにに設定されているenabledため、必要なものを除き、さらに何かを指定する必要はほとんどありません--prefix。他の場所を使用することもできますが、/optここで使用します。今実行configureしてmake

./configure --prefix=/opt/imagemagick-6.8 && make

次に、最後に行うことはcheckinstall、パッケージのインストールに使用することです。Imagemagick-6.8.3-9フォルダー内にいることを確認して実行します

sudo checkinstall

もちろんcheckinstall、などのパラメーターを使用し--pkgversion=て実行することも、実行後に選択することもできますがsudo checkinstall、ここではすべてのデフォルトが問題ありません。作成されるパッケージ名が呼び出されimagemagick-6.8.3-9、にインストールされ/opt/imagemagick-6.8ます。

またSynaptic、他のパッケージと同じようにパッケージを表示および管理できるようになり、パッケージを削除しても他のパッケージで問題が発生することはありません。

新しいバージョンを実行する場合/opt/imagemagick-6.8/convertは、たとえばを使用する必要があります。これ/optはにないため$PATH、実行convertするだけでレポバージョンが呼び出されます。常に/optプログラムのバージョンを実行したい場合、いくつかのシンボリックリンクを作成できます。

議論されるまで、彼は最初はコンパイルを嫌っていましたが、これがホンザが望んでいたことに注意しくださいcheckinstall


ありがとうございました!実際、私の質問はもともと「ImageMagickの最新のアップストリームバージョンをどのようにインストールできますか」、「コンパイルなし」の部分はfossfreedomモデレーターによって追加されました。
ホンザジャボレク

1
への適切なパスconvert/opt/imagemagick-6.x/bin/convertです。少なくとも、私が今インストールした6.9.1バージョンではそうです。パスがありません/bin/
ラファル

ビルドの依存関係をインストールしようとすると、次のエラーが表示されましたUnable to find a source package for imagemagick。この方法で依存関係をインストールできました:sudo apt-get install imagemagick libmagick++-dev詳細はこちら
bwroga

あなたが見るかもしれない別の理由Unable to find a source package for imagemagickは、パッケージが見つかるように/etc/apt/source.listのdeb-srcソースのコメントを外す必要があることです。
マイケル

注、私がしなければならなかったldconfig後のcheckinstallバインディングが更新されますし。
ジョシュアピンター
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.