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

提供:MochiuWiki - SUSE, Electronic Circuit, PCB
2022年1月24日 (月) 06:01時点におけるWiki (トーク | 投稿記録)による版 (→‎KDiff3)
ナビゲーションに移動 検索に移動

概要



KDiff3

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

KDiff3をインストールする。

sudo zypper install kdiff3


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

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

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


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

sudo zypper install cmake gcc 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のインストールディレクトリ> ..
make -j $(nproc)
make install



Meld

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

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


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

./setup.py build -b ./build -j $(nproc)
./setup.py install --prefix=<Meldのインストールディレクトリ>


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"
 
 # Run Meld binary
 "$dirname/$appname" "$@"


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

vi ~/.profile


# ~/.profileファイル

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


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

vi /home/suse/.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を追加する。

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