如何在 Ubuntu 上构建 Meld?

如何在 Ubuntu 上构建 Meld?

我正在尝试在 Ubuntu 20.10 上构建最新版本的 Meld。

我已按照以下说明进行操作https://github.com/GNOME/meld,确保我的系统拥有必要的软件包。

# Enabled "source code" in Sources & Updates.
sudo apt install git build-essential meson ninja-build gettext libgtk-3-dev python-gi-dev python3-cairo-dev appstream-util libgtksourceview-4-dev
sudo apt-get build-dep meld

git clone https://github.com/GNOME/meld.git
cd meld
meson _build
cd _build
ninja
ninja install

一切顺利,但当我尝试运行 mel 时,出现以下错误

cd ~
meld
Traceback (most recent call last):
  File "/usr/local/bin/meld", line 97, in <module>
    import meld.conf  # noqa: E402
ModuleNotFoundError: No module named 'meld'

我怀疑这与在哪里这些文件已安装在我的系统上。

我可以看到 meld 已安装到 ,/usr/local/lib/python3.8/site-packages/而我原本期望它安装到/usr/share

此外,我期望将可执行文件放在其中,/usr/bin但它在/usr/local/bin. which meld /usr/local/bin/meld

我究竟做错了什么?

答案1

分析

官方 README 中的方法存在一些问题。

此外 -软件包构建使用 Ubuntu 上的 ArchLinux 按照以下步骤操作

cd /tmp
git clone https://github.com/GNOME/meld.git
cd meld
python3 setup.py build
sudo python3 setup.py --no-update-icon-cache --no-compile-schemas install --prefix=/usr/local --optimize=1

也不会导致积极的结果。它以已经看到的错误结束:

$ meld
Traceback (most recent call last):
 File "/usr/local/bin/meld", line 97, in <module>
   import meld.conf  # noqa: E402
ModuleNotFoundError: No module named 'meld'

解决方案

我们需要利用deb-src 软件包从 git 存储库构建最新源代码的过程。

按照一步一步的方式它将如下所示:

sudo apt-get install git build-essential gettext libgtk-3-dev python-gi-dev python3-cairo-dev appstream-util libgtksourceview-4-dev dpkg-dev python3-pytest
sudo apt-get build-dep meld

cd ~/Downloads
git clone https://github.com/GNOME/meld.git
cd meld

wget http://archive.ubuntu.com/ubuntu/pool/universe/m/meld/meld_3.20.2-2.debian.tar.xz
tar -xf meld_3.20.2-2.debian.tar.xz
mv meld_3.20.2-2.debian.tar.xz ../

sed -i "s|meld.1|data/meld.1|" debian/meld.manpages
sed -i "s|3.20.2-2|$(git describe --tags | sed 's/-/+/g')|" debian/changelog

dpkg-buildpackage -b -uc -us

然后最后使用以下命令安装该包:

sudo apt-get install ../meld_3*_all.deb

并检查其版本:

$ meld --version
meld 3.21.1

相关内容