ImageMagick 6.5.4-7 を yum インストール / ImageMagick 6.8.8-9 を make インストール

ソフトウェアスイートImageMagick

目次一覧

 状態:暗礁  閲覧数:2,277  投稿日:2014-03-05  更新日:2019-07-19
ImageMagick 6.5.4-7 インストール / imagick 3.1.2 インストール / アップデート方法が不明 / ImageMagick 6.5.4-7 アンインストール

ImageMagick-6.8.8-9 … make install

ImageMagick is Dead.

トラブル履歴

感想


ImageMagick 6.5.4-7 インストール / imagick 3.1.2 インストール / アップデート方法が不明 / ImageMagick 6.5.4-7 アンインストール

 閲覧数:1,065 投稿日:2014-03-05 更新日:2019-07-19 

ImageMagick 6.5.4-7 インストール


事前確認
インストールされていない
identify -version

ImageMagickを-develでインストール
・下記コマンドでImageMagickも一緒にインストールされる
yum -y install ImageMagick-devel


インストール確認
・バージョン確認
convert -version
convert -v
identify -version
Version: ImageMagick 6.5.4-7 2014-02-10 Q16 OpenMP http://www.imagemagick.org
Copyright: Copyright (C) 1999-2009 ImageMagick Studio LLC


・インストール先確認(ファイル検索)
$ find ~/ -name "*agick*"

・yumでインストールしたパッケージのインストール場所を調べる
rpm -ql パッケージ名

rpm -ql ImageMagick
/usr/lib64/ImageMagick-6.5.4
/usr/share/ImageMagick-6.5.4


imagick 3.1.2 インストール


peardevを使ってPECLのimagickをインストール
peardev install pecl/imagick
PECL :: Package :: imagick
$ sudo pecl install imagick
・下記は失敗
$ sudo pecl install imagick-3.2.0RC1
「Please provide the prefix of Imagemagick installation [autodetect]」と聞かれるので、Enterで自動検出
Build process completed successfully
Installing '/usr/include/php/ext/imagick/php_imagick.h'
Installing '/usr/include/php/ext/imagick/php_imagick_defs.h'
Installing '/usr/include/php/ext/imagick/php_imagick_shared.h'
Installing '/usr/lib64/php/modules/imagick.so'
install ok: channel://pecl.php.net/imagick-3.1.2
configuration option "php_ini" is not set to php.ini location
You should add "extension=imagick.so" to php.ini


php.dに設定ファイルを追加
・php.iniに、extension=imagick.soを追加する
・今回は、「extensionを/etc/php.d/内にiniファイルを追加することでphp.iniに反映させる方法」を選択
・echoコマンドでファイル作成
echo extension=imagick.so > /etc/php.d/imagick.ini

apacheを再起動して反映
service httpd restart

確認
・「PHP information」を検索
・php -iの出力をパイプでgrepへ渡すことで、imagick文字列が存在する行だけ抜き出す
php -i | grep imagick
/etc/php.d/imagick.ini,
imagick
imagick module => enabled
imagick module version => 3.1.2
imagick classes => Imagick, ImagickDraw, ImagickPixel, ImagickPixelIterator
imagick.locale_fix => 0 => 0
imagick.progress_monitor => 0 => 0


アップデート方法が不明


バージョンアップする方法を探るも見つからない
・仕方がないので、以前のメモを参考に、make installで新規インストールすることを決定

ImageMagick 6.5.4-7 アンインストール


sudo yum remove ImageMagick


ImageMagick-6.8.8-9 インストール

 閲覧数:538 投稿日:2014-03-24 更新日:2019-07-19 

インストール先


・CentOS では、 /usr/local/lib がデフォルトでは認識されない
・yum でインストールすると /usr/lib にインストールされるが、自分でビルドしてインストールすると、デフォルトでは /usr/local/lib に入ってしまう
・rootでコマンドが見つからない羽目に陥る
・設定が必要

永続的に追加
・共有ライブラリの検索場所を指定するファイル「/etc/ld.so.conf」へ追記
vi /etc/ld.so.conf
include ld.so.conf.d/*.conf
/usr/local/lib


・「/etc/ld.so.conf」 に設定しても良いのが、「/etc/ld.so.conf.d/ に設定ファイルを置くこともできる
・新規ファイル作成する方法
vim /etc/ld.so.conf.d/ImageMagick.conf
/usr/local/lib

・反映
/sbin/ldconfig
・確認
・「現在のキャッシュに保存されているディレクトリのリスト」と「ライブラリの候補」を検索
$ /sbin/ldconfig -p | grep Magick
       libMagickWand.so.5 (libc6,x86-64) => /usr/lib64/libMagickWand.so.5
       libMagickWand.so (libc6,x86-64) => /usr/lib64/libMagickWand.so
       libMagickCore.so.5 (libc6,x86-64) => /usr/lib64/libMagickCore.so.5
       libMagickCore.so (libc6,x86-64) => /usr/lib64/libMagickCore.so


# convert -version
bash: convert: コマンドが見つかりません


# cd /usr/local/lib
# ls
ImageMagick-6.8.8           libMagickCore-6.Q16.so.2.0.0
libMagick++-6.Q16.a         libMagickWand-6.Q16.a
libMagick++-6.Q16.la        libMagickWand-6.Q16.la
libMagick++-6.Q16.so        libMagickWand-6.Q16.so
libMagick++-6.Q16.so.3      libMagickWand-6.Q16.so.2
libMagick++-6.Q16.so.3.0.0  libMagickWand-6.Q16.so.2.0.0
libMagickCore-6.Q16.a       libpython2.7.a
libMagickCore-6.Q16.la      pkgconfig
libMagickCore-6.Q16.so      python2.7
libMagickCore-6.Q16.so.2


環境変数 LD_LIBRARY_PATH に指定
# LD_LIBRARY_PATH=/usr/local/lib
# echo $LD_LIBRARY_PATH
/usr/local/lib


# convert -version
bash: convert: コマンドが見つかりません



依存ライブラリ


事前インストール
・入れてなければJPEGやPNGが変換できない
$ sudo yum install libjpeg-devel libpng-devel

・libpng-develを実行しておかないと、png画像を取り扱う際、下記エラーが表示される
Fatal error: Uncaught exception 'ImagickException' with message 'NoDecodeDelegateForThisImageFormat

確認
$ convert -list format # JPEG,PNG があればOK


ダウンロード


cd /usr/local/src/
wget ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick.tar.gz
--2014-03-24 21:36:11--  ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick.tar.gz
          => `ImageMagick.tar.gz'
ftp.imagemagick.org をDNSに問いあわせています... 209.191.186.187
ftp.imagemagick.org|209.191.186.187|:21 に接続しています... 接続しました。
anonymous としてログインしています... ログインしました!
==> SYST ... 完了しました。    ==> PWD ... 完了しました。
==> TYPE I ... 完了しました。  ==> CWD (1) /pub/ImageMagick ... 完了しました。
==> SIZE ImageMagick.tar.gz ... 11853704
==> PASV ... 完了しました。    ==> RETR ImageMagick.tar.gz ... 完了しました。
長さ: 11853704 (11M) (確証はありません)

100%[==============================================================>] 11,853,704  2.97M/s 時間 3.8s    

2014-03-24 21:36:17 (2.97 MB/s) - `ImageMagick.tar.gz' へ保存終了 [11853704]


確認
# ls
ImageMagick.tar.gz  ls.txt  myapp


解凍
# tar xvfz ImageMagick.tar.gz
ImageMagick-6.8.8-9/


確認
# ls
ImageMagick-6.8.8-9  ImageMagick.tar.gz  ls.txt  myapp


移動
cd ImageMagick-6.8.8-9/

設定
./configure
make
make install


# cd /usr/local/lib
# ls
ImageMagick-6.8.8           libMagickCore-6.Q16.la        libMagickWand-6.Q16.so.2
libMagick++-6.Q16.a         libMagickCore-6.Q16.so        libMagickWand-6.Q16.so.2.0.0
libMagick++-6.Q16.la        libMagickCore-6.Q16.so.2      libpython2.7.a
libMagick++-6.Q16.so        libMagickCore-6.Q16.so.2.0.0  pkgconfig
libMagick++-6.Q16.so.3      libMagickWand-6.Q16.a         python2.7
libMagick++-6.Q16.so.3.0.0  libMagickWand-6.Q16.la
libMagickCore-6.Q16.a       libMagickWand-6.Q16.so


ImageMagick is Dead.

 閲覧数:420 投稿日:2014-03-26 更新日:2014-03-26 

ImageMagick-6.5.4


yum -y install ImageMagick-devel

インストール先
・/usr/lib64/
・/usr/share/

問題点
・バージョンが低い


ImageMagick-6.8.8-9


make install

インストール先
・/usr/local/lib

問題点
・一部のデモがうまく動作しない


バージョン


以前 … レンタルサーバ
・ImageMagick-6.8.5-3

現在 … さくらVPS
・ImageMagick 6.5.4-7
・ImageMagick 6.8.8-9
・同じスクリプトを試しているのに、明らかに出来が違う
・以前の方が出来が良いって、どういうこと?

トラブル履歴

 閲覧数:465 投稿日:2014-03-26 更新日:2019-07-19 

imagick


peclのimagickを元々使ってたので、一度削除して、再インストール

$ sudo pecl uninstall imagick
で、再インストール。
$ sudo pecl install imagick
これでOK。

そしてhttpdを再起動
$ sudo /etc/init.d/httpd restart

rootユーザ


「su」でスーパーユーザーになったのに、コマンドを実行すると「command not found」と表示されてしまう
・一般ユーザではコマンドは生きている

現在のパスを確認
・rootユーザ
# echo $PATH
・「:」で区切っている
・「/usr/local/bin」なし
/sbin:/bin:/usr/sbin:/usr/bin


・一般ユーザ
$ echo $PATH
・「/usr/local/bin」あり
/home/★★/.rvm/gems/ruby-1.9.3-p392/bin:/home/★★/.rvm/gems/ruby-1.9.3-p392@global/bin:/home/★★/.rvm/rubies/ruby-1.9.3-p392/bin:/home/★★/.rvm/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/★★/.rvm/bin:/home/★★/bin


PATH=$PATH:追加するディレクトリ名
# PATH=$PATH:/usr/local/bin
# echo $PATH
/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin


/usr/local/binにPATHがあたっていない
環境変数PATHには/usr/local/binに対してパスが通っていないため、コマンドが見つからずエラーになる
環境変数PATHに設定されていないディレクトリ内のファイルを実行したい場合はパスを指定するか、PATHの値を変更

/sbin
・システム起動停止に関わるシステム管理コマンド配置

/usr/sbin
・システム起動停止に関わらないシステム管理コマンド配置

/usr/local/sbin/
・自前で作成 or ネットからDLしてきたようなシステム管理コマンド配置
・自前で作成したシェルも入れる

usr
・User Services and Routines の略


extension_dir


vi /etc/php.ini
下方向に、[検索文字列]の検索を行う
・/extension

/や?で検索を行った後に、順方向に次の検索結果にジャンプ
・n

/や?で検索を行った後に、逆方向に次の検索結果にジャンプ
・N

・追加するも効果なし
; extension_dir = "./"
extension=imagick.so


・元へ戻す
; extension_dir = "./"



共有ライブラリ


・ld.so.confを更新した場合は、「# ldconfig」コマンドで「 /etc/ld.so.conf.cache 」を更新する
・プログラム実行時は、ライブラリ検索速度向上のため「/etc/ld.so.conf.cache」から検索される
 
/etc/ld.so.cacheとは?
・ライブラリ名とライブラリが格納されているディレクトリ名の対応がキャッシュされているファイル
・ここに情報がキャッシュされることで、共有ライブラリを使用してプログラムを実行できるようになる
・現在キャッシュされている内容を表示するには、オプション-pを付けてldconfigコマンドを実行
# ldconfig -p
        libMagickWand-6.Q16.so.2 (libc6,x86-64) => /usr/local/lib/libMagickWand-6.Q16.so.2
       libMagickWand-6.Q16.so (libc6,x86-64) => /usr/local/lib/libMagickWand-6.Q16.so
       libMagickCore-6.Q16.so.2 (libc6,x86-64) => /usr/local/lib/libMagickCore-6.Q16.so.2
       libMagickCore-6.Q16.so (libc6,x86-64) => /usr/local/lib/libMagickCore-6.Q16.so
       libMagick++-6.Q16.so.3 (libc6,x86-64) => /usr/local/lib/libMagick++-6.Q16.so.3
       libMagick++-6.Q16.so (libc6,x86-64) => /usr/local/lib/libMagick++-6.Q16.so

# convert -v
bash: convert: コマンドが見つかりません

Linuxのライブラリ

secure_path


$ sudo visudo
# Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin
Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin


png画像


Fatal error: Uncaught exception 'ImagickException' with message 'no decode delegate for this image format `/var/www/xxxx/imagemagick/watermark-image.png' @ error/constitute.c/ReadImage/501' in /var/www/xxxx/demo/imagemagick/5-watermark/index.php:10 Stack trace: #0 /var/www/xxxx/imagemagick/5-watermark/index.php(10): Imagick->readimage('/var/www/trust_...') #1 {main} thrown in /var/www/xxxx/imagemagick/5-watermark/index.php on line 10

原因不明エラー


・6.8.8-9で原因不明エラーが2件
・ノーリアクション、かつ、画面真っ白
・エラーメッセージすら出ない(指定しているのに)


感想

 閲覧数:376 投稿日:2014-03-26 更新日:2014-03-26 
心が折れそうだわ
・丸三日ぐらいかけて取り組んだのに、結局、yumでインストールことしかできなかった
・今日は天気も良かったけど、これ終わってから出かけようと思っている内に、もう夜の21:40
・昨日も、予定していた内容を全てキャンセルして取り組んだというのに

失敗も必要
・確かにその通りなのかもしれないが、これだけ調べ倒したというのに、最終的には10秒で終わるyumコマンドを採用せざるを得ないという…

最終的には?
・/usr/local/libには、makeでインストールしたImageMagick-6.8.8-9
・「/etc/ld.so.conf」 にも「/etc/ld.so.conf.d/」 にも共有ライブラリ設定「usr/local/lib」を追加
・「sudo visudo」で「secure_path」に「/usr/local/bin」を追記したところで、ようやくrootユーザでも、convertが通るようになる
・しかし、動作しないデモは2件
・ほっとけないので、「/usr/share/」へyumでImageMagick-6.5.4をインストールすることにする
・もうこれで何度目だろう…


imagick 3.1.2 を imagick 3.2.0RC1 へ pecl アップデート



週間人気ページランキング / 9-18 → 9-24
順位 ページタイトル抜粋 アクセス数
1 Nginx設定。エラーログレベル | Nginx(Webサーバ) 17
2 PHP実行ユーザ設定 / CentOS6 / Apache | PHP(プログラミング言語) 14
3 9回目-13.MySQL5.7.21設定 | CentOS 7 2週間無料のお試し期間 9回目(さくらVPS) 12
4 PHPのmb_send_mail関数でメール送信できない | メール処理システム 10
5 ImageMagick と imagick の違い | ImageMagick(ソフトウェアスイート) 9
6 さくらVPS0 8
6 tar: これは tar アーカイブではないようです 8
7 manページ日本語表示 | CentOS 7 (CentOS) 7
7 Reached target Shutdown メッセージが表示されたあと、シャットダウンまたは再起動プロセスがハングアップする | CentOS 7 (CentOS) 7
8 ABRT により 問題が検出されました | CentOS 7 (CentOS) 6
8 PHPファイルでchmodエラー | PHP(プログラミング言語) 6
8 「設定ファイルに、暗号化 (blowfish_secret) 用の非公開パスフレーズの設定を必要とするようになりました。」対応 6
8 Python 3.5 アンインストール / yum remove | Python(プログラミング言語) 6
9 FFmpeg 2.8.15 を yum インストール | ソフトウェアスイート 5
9 echo と cat の違い 5
10 phpMyAdmin 4.4.3(phpMyAdmin) カテゴリー 4
10 6回目-10.Nginxでバーチャルホスト設定確認 | CentOS 7 2週間無料のお試し期間 6回目(さくらVPS) 4
10 「さくらVPS」で、「CentOS6」を「CentOS7」へ変更するためには? | CentOS 7 2週間無料のお試し期間 Link(さくらVPS) 4
10 cronで定期実行しているphpファイルを、コマンドライン経由で即時実行する | cron(Linuxコマンド) 4
10 MySQL 5.5 から 5.6 へのアップグレード | MySQL(データベース) 4
2021/9/25 1:01 更新