Linux/jp: Difference between revisions
(→2つの方法) |
|||
| Line 141: | Line 141: | ||
== | == コンパイル == | ||
一般的には2つの方法でRawTherapeeをコンパイルします:Bashスクリプトを使った自動で行うコンパイル(推奨)と手動によるコンパイルです。 | |||
== 自動コンパイリング == | == 自動コンパイリング == | ||
Revision as of 01:46, 30 January 2019
本ページは、GNU/LinuxシステムでRawTherapeeをコンパイルするためのインストラクションが詳述されています。WindowsとMacOSのインストラクションは別項にあります。
不明な点があれば、 IRC或いは或いはフォーラムに参加して他の参加者に聞いてみて下さい。
ディペンデンシー
RawTherapeeをコンパイルするためには一連のツールと他のプログラムからのコードライブラリーが必要で、それらはディペンデンシーと呼ばれています。以下で最新のRawTherapeeのコンパイルに必要なディペンデンシーを一覧にしてあります:
| パッケージ | バージョン | URL |
|---|---|---|
| CMake | cmake>=2.8.8 | https://cmake.org/ |
| EXIV2 | exiv2>=0.19 | http://www.exiv2.org/ |
| EXPAT | expat>=2.1.0 | https://libexpat.github.io/ |
| FFTW3 | fftw>=3.2.2 | http://fftw.org/ |
| GCC | gcc>=4.9 | https://gcc.gnu.org/ |
| GLIB2 | glib-2.0>=2.24 | https://www.gtk.org/ |
| GLIBMM | glibmm-2.4>=2.24 | https://www.gtkmm.org/ |
| GTK+ | gtk+-3.16 < 3.24.0 | https://www.gtk.org/ |
| GTKMM | gtkmm-3.16 | https://www.gtkmm.org/ |
| JPEG | libjpeg>=6b | https://libjpeg-turbo.org/ https://jpegclub.org/ https://www.ijg.org/ |
| LCMS2 | lcms>=2.6 | http://www.littlecms.com/ |
| LENSFUN | lensfun>=0.2 | http://lensfun.sourceforge.net/ |
| LIBCANBERRA | libcanberra>=0.29 | http://0pointer.de/lennart/projects/libcanberra/ (Linux only) |
| LIBIPTCDATA | libiptcdata>=1.0.2 | http://libiptcdata.sourceforge.net |
| PNG | libpng>=1.2.44 | http://www.libpng.org/ |
| SIGC | sigc++-2.0 | https://github.com/libsigcplusplus/libsigcplusplus |
| TIFF | libtiff>=4.0.4 | http://libtiff.org/ |
| ZLIB | zlib>=1.2.3 | http://www.zlib.net/ |
これらディペンデンシー全てをインストールするには、コンソールを開いて該当セクションからそれらコードをコンソールにコピーします。
これらコードはGTK3を必要とする最新のRawTherapeeに関するディペンデンシーです。2017年2月にリリースした"5.0-r1-gtk2"を最後に、私たちはGTK2のサポートを公式に終了しました。最近のディストリビューションを使っていれば、そのままコードをコピーして貼り付けるだけです。もし、GTK3をサポートしていない古いディストリビューションを使っている場合は、GTK2のアーカーブを参考にしながら、古い5.0-r1-gtk2タグをコンパイルします。
Arch/Manjaro
Arch及びManjaroの現在のバージョンは特別な設定無しにコンパイルできます。17.1.2より古いバージョンをコンパイルする場合はGTK2のアーカイブを参考にします。
sudo pacman -S --needed cmake exiv2 expat fftw glib2 glibmm gtk3 gtkmm3 lcms2 lensfun libcanberra libiptcdata libjpeg-turbo libpng libsigc++ libtiff zlib
コンパイルの項に進みます。
CentOS
CentOSは非常に古いパッケージで、現在のGCC、git、lensfun、libtiffをインストールするためには更なるステップが必要です。以下に記したステップはCentOS7.4.1708では確認されていますが、このパッケージでコンパイルするのは常に失敗のリスクが伴うでしょう。
GCC >=4.9.3:
sudo yum update sudo yum install cmake git sudo yum install centos-release-scl sudo yum install devtoolset-7-gcc* scl enable devtoolset-7 bash source /opt/rh/devtoolset-7/enable
git >=2.7:
sudo yum install http://opensource.wandisco.com/centos/7/git/x86_64/wandisco-git-release-7-2.noarch.rpm
lensfun:
wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm sudo rpm -ivh epel-release-latest-7.noarch.rpm
libtiff >=4.0.4:
sudo yum install ninja-build mkdir ~/programs && cd ~/programs wget http://download.osgeo.org/libtiff/tiff-4.0.9.tar.gz tar zxvf tiff-4.0.9.tar.gz mkdir tiff-4.0.9/libtiff-build && cd tiff-4.0.9/libtiff-build cmake -DCMAKE_INSTALL_DOCDIR=/usr/share/doc/libtiff-4.0.9 -DCMAKE_INSTALL_PREFIX=/usr -G Ninja .. ninja-build sudo ninja-build install
他のディペンデンシーをインストールします。:
sudo yum install curl expat-devel fftw-devel gtk3-devel gtkmm30-devel lcms2-devel lensfun-devel libcanberra-devel libiptcdata-devel libjpeg-turbo-devel libpng-devel zlib-devel
シンボリックリンク:
sudo ln -s /usr/lib64/libatomic.so.1 /usr/lib64/libatomic.so
次のステップ、コンパイルに進むにあたって、build-rawtherapeeのスクリプトを編集する必要があり、ファイルの最後の方にあるCMakeセクションに以下の3ステップを追加します。例えば、"$HOME"ラインの前にある"-DWITH_BENCHMARK"ラインの後に:
-DTIFF_INCLUDE_DIR="$HOME/programs/tiff-4.0.9/libtiff" \
-DTIFF_LIBRARY="$HOME/programs/tiff-4.0.9/libtiff-build/libtiff/libtiff.so" \
-DCMAKE_CXX_FLAGS="-Wno-deprecated -Wno-parentheses" \
コンパイルの項に進みます。
Debian/Ubuntu/Mint/elementary OS
現在のバージョンであればこれらは特別な設定無しにコンパイルできます。Ubuntuはバージョンが16.04より古い場合、GTK2のアーカイブを参考にします。
Ubuntu >=16.10, Mint >=18.3, elementary OS >=0.4.1
sudo apt update sudo apt install build-essential cmake curl git libcanberra-gtk3-dev libexiv2-dev libexpat-dev libfftw3-dev libglibmm-2.4-dev libgtk-3-dev libgtkmm-3.0-dev libiptcdata0-dev libjpeg-dev liblcms2-dev liblensfun-dev libpng-dev libsigc++-2.0-dev libtiff5-dev zlib1g-dev
コンパイルの項に進みます。
Ubuntu 16.04 LTS
sudo apt-get update sudo apt-get install build-essential cmake curl git libcanberra-gtk3-dev libexiv2-dev libexpat-dev libfftw3-dev libglibmm-2.4-dev libgtk-3-dev libgtkmm-3.0-dev libiptcdata0-dev libjpeg8-dev liblcms2-dev liblensfun-dev libpng12-dev libsigc++-2.0-dev libtiff5-dev zlib1g-dev
コンパイルの項に進みます。
Fedora
現在のバージョンであれば特別な設定無しにコンパイルできます。バージョンが22より古い場合はGTK2のアーカイブを参考にします。
sudo yum install bzip2-devel cmake exiv2-devel expat-devel fftw-devel gcc-c++ glib2-devel glibmm24-devel gtk+-devel gtkmm24-devel lcms2-devel libcanberra-devel libiptcdata-devel libjpeg-turbo-devel libpng-devel libsigc++20-devel libtiff-devel zlib-devel
コンパイルの項に進みます。
Gentoo/Sabayon
SabayonのユーザーはGentooと同じディペンデンシーを使います。但し、sudo emerge -uvaの代わりにsudo equo installを使います。
sudo emerge -uva dev-cpp/gtkmm:3.0 dev-libs/expat dev-util/cmake media-gfx/exiv2 media-libs/lcms media-libs/lensfun media-libs/libcanberra media-libs/libiptcdata media-libs/libjpeg-turbo media-libs/libpng media-libs/tiff net-misc/curl sci-libs/fftw sys-libs/zlib x11-libs/gtk+:3
コンパイルの項に進みます。
openSUSE
openSUSEのバージョンでサポートされているのはLeaf 15.0とTumbleweedだけです。古いバージョンではコンパイルにあたって重大な問題発生の可能性があります。バージョンが42.1より古い場合はGTK2のアーカイブを参考にします。
sudo zypper cmake gcc gcc-c++ gtk3-devel gtkmm3-devel liblcms2-devel fftw3-devel libitpcdata-devel libtiff-devel libjpeg-devel libcanberra-gtk3-devel
この後、lensfunを手動でインストールします:
wget https://sourceforge.net/projects/lensfun/files/0.3.2/lensfun-0.3.2.tar.gz tar xvf lensfun-0.3.2.tar.gz cd lensfun-0.3.2.tar.gz mkdir build cd build cmake ../ make sudo make install
コンパイルの項に進みます。
コンパイル
一般的には2つの方法でRawTherapeeをコンパイルします:Bashスクリプトを使った自動で行うコンパイル(推奨)と手動によるコンパイルです。
自動コンパイリング
まず、次のリンクから自動スクリプトを入手します。http://rawtherapee.googlecode.com/hg/tools/buildRT
これはBashスクリプトで、RawTherapeeのソースコードレポジトリーを自動的に複製し、ユーザーに入手可能なブランチ(例 ”default”)とビルドの種類(”release”と”debug”)を提示し、選択されたブランチと種類に合わせたビルドを自動的にコンパイルします。そして、構築されたビルド全てにZipアーカイブを作成します。コンパイルされたビルドは直ぐにでも使えます。但し、buildRTはディペンデンシーのチェックは行いませんので、このスクリプトを使用する場合はディペンデンシーの項目を前もって読んで下さい。
端末を開き、スクリプトを手に入れ、実行可能にして起動します:
cd ~ wget http://rawtherapee.googlecode.com/hg/tools/buildRT chmod +x ~/buildRT ./buildRT
殆どの人が”release”タイプを使う”default”ブランチをコンパイルしますが、動作時間を犠牲にしても、エラーの原因を突き止めるためにデバッグをしたい人は”debug”ビルドを選びます。
コンパイルしたRawTherapeeの正確な所在と作動方法がスクリプトに表示されますので注意して下さい。
../buildRT-hを使うと、buildRTがサポートする全てのオプションを説明したリストを見ることが出来ます。
初めの数行に、buildRTのバージョンと日付が表示されています。約2ヶ月に1度の割合でbuildRTがアップデートされますので、時折チェックして下さい。また、コンパイリングに失敗した際は、バージョンが最新のものであるかチェックして下さい。最新版ではその問題が解決されていると思います。最新版であるかどうかのチェックは../buildRT-uで出来ます。
手動コンパイリング
ここでは、上記で説明したような自動スクリプトを使わないで、手動でRawTherapeeをコンパイルする方法を説明します。
ソースを複製する
初めに、RawTherapeeのソースコードレポジトリーの複製を作る必要があります。コンソールから以下を入力します:
cd ~ hg clone https://rawtherapee.googlecode.com/hg/ rt_repo cd ~/rt_repo
ブランチを選択する
ここで2つの選択肢があります:“default”と呼ばれるメインブランチの最新コードを選ぶか、開発者等がXMPのサポートのために使っている“xmp”ブランチなど、他のブランチのソースを選びますが、私達は、“default”ブランチの選択を奨めます。
選択可能な全てのオープンブランチを見るためには、次をタイプします:
hg branches
クローズドブランチを含めた全てのブランチを見る場合は、次をタイプします:
hg branches -c
デフォルトブランチは、当たり前ですが、”default”という名前で、推奨されるブランチです。ソースコードを複製しようとすると、”default”ブランチが自動的に選択されるので、他のブランチが必要な場合は特定する必要があります。しかし、異なるブランチのコンパイルを行いたい場合、例えば”xmp”ブランチ、は以下を入力してスイッチすることが出来ます:
hg update -C xmp
注意:最近のシステムをご利用の場合、昔のディペンデンシーが欠けているため、RawTherapeeのバージョン3(或いはそれより以前のバージョン)のコンパイルは失敗することが多いと思います。
RawTherapeeをコンパイルする
RawTherapeeを構築する際は、BUILD_TYPEを特定する必要があります。” debug”或いは” release”タイプの設定が可能です。”debug”ビルドは、RawTherapeeがクラッシュするような場合、GDBを通じて、有効なスタックバックトレースを手に入れられますので、それを私達に提出頂ければ、クラッシュの原因を突き止め、修復することが可能です。但し、その分スピードを犠牲にしますので、プログラムの動作が遅くなります。”release”タイプはクラッシュした際に有用な情報を提供してくれませんが、その分スピードを重視した工夫がされていますので、”debug”バージョンより何倍も速く動作します。通常的に使用する場合は、”release”タイプをビルドした方がいいと思います。バグによるクラッシュが度々発生するような場合に、”debug”タイプを構築し、私達にスタックバックトレース送って下さい(或いは、ご自身で修正し、そのパッチを送って頂けると幸いです)。
タイプを指定するには、下に示したように"-DCMAKE_BUILD_TYPE="の後に“debug”或いは“release”と入力して下さい。
ここまでで、貴方が最新コードの複製と、“default”ブランチの選択を終えているとします。次は、昔のファイルやその他を削除してから、RawTherapeeをコンパイルします。“-j8”というオプションは、幾つのスレッドを使うか設定するものです、下に示したケースでは8が入力されています(Intel i7 quad-coreには4つの物理的コアがあり、ハイパースレッドと合わせて8となるからです)。この数字はコンパイルするスピードに影響しますが、コンパイルされたRawTherapeeの動作時間には影響しません。どの数値を入力すれば良いか不明な場合は:
grep -c 'processor' /proc/cpuinfo
-DCACHE_NAME_SUFFIXというオプションは、コンパイルされたRawTherapeeが使うキャッシュとコンフィギュレーションフォルダーの名前に付けられた接尾辞を書き取らせるものです-ファイルパスの説明を参照して下さい。 -DPROC_TARGET_NUMBERというオプションは最適なCPUタイプを指定するもので、“2”が安全な設定です。2は“ネイティブ”を意味し、最適であるタイプを自動的に設定します。更なる情報が、複製されたレポジトリーの中の"ProcessorTargets.cmake"にあります。
cd ~/rt_repo hg pull && hg update rm -rv rawtherapee; ./clean.sh cmake -DCMAKE_BUILD_TYPE=release -DPROC_TARGET_NUMBER:STRING=2 -DCMAKE_INSTALL_PREFIX=rawtherapee -DBUILD_BUNDLE=ON -DBINDIR=. -DDATADIR=. -DCACHE_NAME_SUFFIX=4 make -j8 install mv -v rawtherapee ~/
RawTherapeeを起動する
RawTherapeeを起動するには:
~/rawtherapee/rawtherapee
ソースコードリポジトリ―は~/rt_repoの中にあり、コンパイルされたプログラムは~/rawtherapeeの中にあります。
~/rt_repoは、問題なく消去することも可能です。コンパイルされたプログラムはまだ作動しますが、アップデートするには、上で説明したステップを繰り返す必要があります。寧ろ、リポジトリ-はそのままで、アップデートは後で行うことも出来ます。
RawTherapeeのアップデート
RawTherapeeを最新のコードでアップデートしたい場合は、コンソールからホームディレクトリーに行き、上で説明した”RawTherapeeをコンパイルする”セクションのラインをコピー/貼り付けします。最新のコードがダウンロードされて、コンパイルされ、~/rawtherapeeに移動します。
更なる情報
コードの入手と提示についての更なる情報は以下を参照して下さい: http://code.google.com/p/rawtherapee/