インストール - 差分ツール

提供:MochiuWiki - SUSE, Electronic Circuit, PCB
ナビゲーションに移動 検索に移動

概要



KDiff3

パッケージ管理システムからインストール

KDiff3をインストールする。

sudo zypper install kdiff3


ソースコードからインストール

KDiff3のGithubにアクセスして、KDiff3のソースコードをダウンロードする。
ダウンロードしたファイルを解凍する。

tar xf kdiff3-<バージョン>.tar.gz
cd kdiff3-<バージョン>


KDiff3のビルドに必要なライブラリをインストールする。

  • Qt 5.12以降
  • KDE Framework 5.50以降
  • GCC 8.0以降またはClang 7以降
  • CMake 3.1以降
  • ECM 1.8以降
  • Boost 1.66以降
sudo zypper install cmake gcc11 gettext-runtime gettext-tools extra-cmake-modules libboost_system1_66_0 libboost_headers1_66_0-devel \
                    ki18n-devel kcoreaddons-devel kiconthemes-devel kparts-devel kdoctools-devel kcrash-devel \
                    libqt5-qtbase-devel


KDiff3のビルドディレクトリを作成する。

mkdir build && cd build


KDiff3をビルドおよびインストールする。

cmake -DCMAKE_INSTALL_PREFIX=<KDiff3のインストールディレクトリ> -DCMAKE_BUILD_TYPE=Release ..
make -j $(nproc)
make install



Meld

パッケージ管理システムからインストール

sudo zypper install meld


インストールせずにソースコードから直接実行

MeldのGithubにアクセスして、Meldのソースコードをダウンロードする。
ダウンロードしたファイルを解凍する。

tar xf meld-<バージョン>.tar.gz
mv meld-<バージョン> meld
mv Meld  <Meldのインストールディレクトリ>


Meldを任意のディレクトリ(ホームディレクトリ等)にした場合は、~/.profileファイル等に環境変数PATHの設定を追記する。

vi ~/.profile


# ~/.profileファイル

export PATH="/<Meldのインストールディレクトリ>/bin:$PATH"


デスクトップエントリファイルを作成する。

vi ~/.local/share/applications/Meld.desktop


# ~/.local/share/applications/Meld.desktopファイル

[Desktop Entry]
Type=Application
Name=Meld
GenericName=Diff Viewer
Comment=Compare and merge your files
Exec=/<Meldのインストールディレクトリ>/bin/meld %F
Icon=org.gnome.Meld
Terminal=false
MimeType=application/x-meld-comparison;
Categories=GTK;Development;
Keywords=diff;merge;
StartupNotify=true


ソースコードからインストール

Meldのビルドに必要な依存関係のライブラリをインストールする。

sudo zypper install glib2-devel gtk3 gtk3-devel python3 python3-devel python3-pycairo python3-pycairo-devel python3-gobject-cairo \
                    python3-gobject python3-gobject-devel python3-gobject-Gdk libgtksourceview-4-0 gtksourceview4-devel \
                    meson ninja gettext itstool libpango-1_0-0 wayland-devel wayland-protocols-devel


MeldのGithubにアクセスして、Meldのソースコードをダウンロードする。
ダウンロードしたファイルを解凍する。

tar xf meld-<バージョン>.tar.gz
cd meld-<バージョン>


Meldをビルドおよびインストールする。

meson build --prefix=<Meldのインストールディレクトリ>
ninja -C build
ninja -C build install

ninja -C build install update-po
# または
ninja -C build install meld-update-po


Meldを任意のディレクトリ(ホームディレクトリ等)にインストールした場合は、Meldの実行ファイルをラッピングするためのシェルを作成する。
これは、Meldの実行に必要なPythonモジュールのパスを指定する必要があるためである。

vi /<Meldのインストールディレクトリ>/bin/meld.sh


 # /<Meldのインストールディレクトリ>/bin/meld.shファイル
 
 #!/usr/bin/env sh
 
 appname="meld"
 
 # use -f to make the readlink path absolute
 dirname="$(dirname -- "$(readlink -f -- "${0}")" )"
 
 if [ "$dirname" = "." ]; then
    dirname="$PWD/$dirname"
 fi
 
 # Initialize interpreter path
 export PYTHONPATH="$dirname/../lib/python3.6/site-packages"
 export XDG_DATA_DIRS="$dirname/../share:$XDG_DATA_DIRS"
 
 # Run Meld binary
 "$dirname/$appname" "$@"


Meldの実行に必要な依存関係のパッケージをインストールする。

sudo zypper install python3 python3-pycairo python3-gobject python3-gobject-cairo  python3-gobject-Gdk \
                    libgtksourceview-4-0 typelib-1_0-GtkSource-4 gettext itstool libpango-1_0-0 


Meldを任意のディレクトリ(ホームディレクトリ等)にした場合は、~/.profileファイル等に環境変数PATHの設定を追記する。

vi ~/.profile


# ~/.profileファイル

export PATH="/<Meldのインストールディレクトリ>/bin:$PATH"


デスクトップエントリファイルを作成する。

vi ~/.local/share/applications/Meld.desktop


# ~/.local/share/applications/Meld.desktopファイル

[Desktop Entry]
Type=Application
Name=Meld
GenericName=Diff Viewer
Comment=Compare and merge your files
Exec=meld %F                                   # /usr/binディレクトリや/usr/local/binディレクトリにインストールした場合
Exec=/<Meldのインストールディレクトリ>/bin/meld.sh %F  # 任意のディレクトリ(ホームディレクトリ等)にインストールした場合
Icon=org.gnome.Meld
Terminal=false
MimeType=application/x-meld-comparison;
Categories=GTK;Development;
Keywords=diff;merge;
StartupNotify=true


DolphinとMeldの連携

DolphinのコンテキストメニューにMeldを追加する。

vi ~/.local/share/kservices5/CompareMeld.desktop


# ~/.local/share/kservices5/CompareMeld.desktopファイル

[Desktop Entry]
Type=Service
ServiceTypes=KonqPopupMenu/Plugin
Name=Compare using Meld
TryExec=meld
MimeType=inode/directory;application/octet-stream;
Icon=/<Meldのアイコンがあるディレクトリ>/meld
X-KDE-StartupNotify=false
X-KDE-Priority=TopLevel
X-KDE-Submenu=Compare using Meld
Actions=setArg1;diff;diffsudo;_SEPARATOR_;selected;selectedsudo;

[Desktop Action setArg1]
Icon=/<Meldのアイコンがあるディレクトリ>/document-compareleft
Exec=echo "%U" > /tmp/meld-menu-arg1
Name=Mark for use in left column

[Desktop Action diff]
Icon=/<Meldのアイコンがあるディレクトリ>/document-compareright
Exec=ARG1=$(cat /tmp/meld-menu-arg1);meld "$ARG1" %U; rm /tmp/meld-menu-arg1;
Name=Use in right column and compare

[Desktop Action diffsudo]
Icon=/<Meldのアイコンがあるディレクトリ>/document-compareright
Exec=ARG1=$(cat /tmp/meld-menu-arg1); rm /tmp/meld-menu-arg1; if [ "$XDG_SESSION_TYPE" = "wayland" ]; then xhost +si:localuser:root && pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY KDE_SESSION_VERSION=5 
KDE_FULL_SESSION=true dbus-launch meld "$ARG1" %U && xhost -si:localuser:root; else pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY KDE_SESSION_VERSION=5 KDE_FULL_SESSION=true /<Meldのインストールディレクトリ>/meld "$ARG1" %U; fi;
Name=Use in right column and compare as root

[Desktop Action selected]
Icon=/<Meldのアイコンがあるディレクトリ>/kr_comparedirs
Exec=/<Meldのインストールディレクトリ>/meld %U; rm /tmp/meld-menu-arg1;
Name=Compare selected (highlighted) files/folders

[Desktop Action selectedsudo]
Icon=/<Meldのアイコンがあるディレクトリ>/kr_comparedirs
# Exec=sudo meld %U; rm /tmp/meld-menu-arg1;
Exec=if [ "$XDG_SESSION_TYPE" = "wayland" ]; then xhost +si:localuser:root && pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY KDE_SESSION_VERSION=5 KDE_FULL_SESSION=true dbus-launch meld %U && \
     xhost -si:localuser:root; else pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY KDE_SESSION_VERSION=5 KDE_FULL_SESSION=true /<Meldのインストールディレクトリ>/meld %U; fi;
Name=Compare selected (highlighted) files/folders as root