インストール - 差分ツール
ナビゲーションに移動
検索に移動
概要
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