Как собрать Meld на Ubuntu?
Я пытаюсь собрать последнюю версию Meld на Ubuntu 20.10.
Я следовал инструкциям на 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
Все идет хорошо, но когда я пытаюсь запустить meld, я получаю следующую ошибку
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
. который объединяет /usr/local/bin/meld
Что я делаю не так?
1 ответ
Анализ
Есть некоторые проблемы с методом из официального README.
Более того, после PKGBUILD из ArchLinux на Ubuntu с шагами ниже
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