Linux/jp: Difference between revisions

From RawPedia
Jump to navigation Jump to search
Line 144: Line 144:
 一般的には2つの方法でRawTherapeeをコンパイルします:Bashスクリプトを使った自動で行うコンパイル(推奨)と手動によるコンパイルです。
 一般的には2つの方法でRawTherapeeをコンパイルします:Bashスクリプトを使った自動で行うコンパイル(推奨)と手動によるコンパイルです。


== 自動コンパイリング ==
=== 自動コンパイリング ===
 まず、次のリンクから自動スクリプトを入手します。http://rawtherapee.googlecode.com/hg/tools/buildRT
 RawTherapeeのコンパイルには、速くて単純、しかもフールプルーフな自動コンパイルを奨めます。最新のRawTherapeeのソースコードをダウンロードし、CPUにとって最適なコンパイルを行うため、Bashスクリプトを使います。コンパイルされたビルドは直ぐに利用できます。但し、スクリプトがビルド時点のディペンデンシーを確認することはないので、スクリプトを使用する前にディペンデンシーの項の説明を読んで下さい。コンパイルされたビルドは独立しているので、ビルドフォルダーの名前を変更すれば、RawTherapeeの複数のバージョンを同時に維持出来るので、デフォルトで前のビルドが新しいビルドで上書きされることはありません。


 これはBashスクリプトで、RawTherapeeのソースコードレポジトリーを自動的に複製し、ユーザーに入手可能なブランチ(例 ”default”)とビルドの種類(”release”と”debug”)を提示し、選択されたブランチと種類に合わせたビルドを自動的にコンパイルします。そして、構築されたビルド全てにZipアーカイブを作成します。コンパイルされたビルドは直ぐにでも使えます。但し、buildRTはディペンデンシーのチェックは行いませんので、このスクリプトを使用する場合はディペンデンシーの項目を前もって読んで下さい。
 ルートユーザーではなく、普通のユーザーとしてスクリプトを実行して下さい。


 端末を開き、スクリプトを手に入れ、実行可能にして起動します:
 ターミナルを開いてスクリプトを手に入れ、実行可能ファイルを作り、起動します:
<pre style="white-space: pre-wrap">cd ~
<pre style="white-space: pre-wrap">cd ~
wget http://rawtherapee.googlecode.com/hg/tools/buildRT
wget https://raw.githubusercontent.com/Beep6581/RawTherapee/dev/tools/build-rawtherapee -O build-rawtherapee
chmod +x ~/buildRT
chmod +x build-rawtherapee
./buildRT</pre>
./build-rawtherapee</pre>
 
 殆どの人が”release”タイプを使う”default”ブランチをコンパイルしますが、動作時間を犠牲にしても、エラーの原因を突き止めるためにデバッグをしたい人は”debug”ビルドを選びます。
 
 コンパイルしたRawTherapeeの正確な所在と作動方法がスクリプトに表示されますので注意して下さい。
 
 <code>../buildRT-h</code>を使うと、buildRTがサポートする全てのオプションを説明したリストを見ることが出来ます。
 
 初めの数行に、buildRTのバージョンと日付が表示されています。約2ヶ月に1度の割合でbuildRTがアップデートされますので、時折チェックして下さい。また、コンパイリングに失敗した際は、バージョンが最新のものであるかチェックして下さい。最新版ではその問題が解決されていると思います。最新版であるかどうかのチェックは<code>../buildRT-u</code>で出来ます。


== 手動コンパイリング ==
== 手動コンパイリング ==

Revision as of 01:50, 30 January 2019

Linux

 本ページは、GNU/LinuxシステムでRawTherapeeをコンパイルするためのインストラクションが詳述されています。WindowsMacOSのインストラクションは別項にあります。

 不明な点があれば、 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スクリプトを使った自動で行うコンパイル(推奨)と手動によるコンパイルです。

自動コンパイリング

 RawTherapeeのコンパイルには、速くて単純、しかもフールプルーフな自動コンパイルを奨めます。最新のRawTherapeeのソースコードをダウンロードし、CPUにとって最適なコンパイルを行うため、Bashスクリプトを使います。コンパイルされたビルドは直ぐに利用できます。但し、スクリプトがビルド時点のディペンデンシーを確認することはないので、スクリプトを使用する前にディペンデンシーの項の説明を読んで下さい。コンパイルされたビルドは独立しているので、ビルドフォルダーの名前を変更すれば、RawTherapeeの複数のバージョンを同時に維持出来るので、デフォルトで前のビルドが新しいビルドで上書きされることはありません。

 ルートユーザーではなく、普通のユーザーとしてスクリプトを実行して下さい。

 ターミナルを開いてスクリプトを手に入れ、実行可能ファイルを作り、起動します:

cd ~
wget https://raw.githubusercontent.com/Beep6581/RawTherapee/dev/tools/build-rawtherapee -O build-rawtherapee
chmod +x build-rawtherapee
./build-rawtherapee

手動コンパイリング

 ここでは、上記で説明したような自動スクリプトを使わないで、手動で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/