Конфликт версий пакетов при сборке пакета network-manager-applet ubuntu из исходного кода

Конфликт версий пакетов при сборке пакета network-manager-applet ubuntu из исходного кода

Я использую xubuntu 18.04, в котором есть пользовательский интерфейс XFCE, использующий несколько виджетов GNOME, в частности network-manager. У network-manager есть некоторые ограничения, такие как отсутствие способа приоритизировать сети с помощью перетаскивания. Я знаю о способах CLI сделать это, но хотел бы добавить эту функцию в GUI, поэтому я пытаюсь скомпилировать network-manager-appletиз исходников, готовясь добавить код.

Мои системные пакеты были обновлены с помощью apt-get updateи apt-get upgrade.

Если я наберу:

apt-get source network-manager-applet --compile

Я получил:

dpkg-checkbuilddeps: error: Unmet build dependencies: dh-translations gnome-common libnm-util-dev (>= 1.8) libnm-glib-dev (>= 1.8) libnm-glib-vpn-dev (>= 1.8) network-manager-dev (>= 1.8) libnm-dev (>= 1.8) libmm-glib-dev libjansson-dev (>= 2.7) libselinux-dev libappindicator3-dev libdbusmenu-gtk3-dev (>= 16.04) libgcr-3-dev (>= 3.14) libgck-1-dev (>= 3.14) libgirepository1.0-dev gobject-introspection gtk-doc-tools libgtk-3-doc libglib2.0-doc
dpkg-buildpackage: warning: build dependencies/conflicts unsatisfied; aborting
dpkg-buildpackage: warning: (Use -d flag to override.)
E: Build command 'cd network-manager-applet-1.8.10 && dpkg-buildpackage -b -uc' failed.

Ладно, все справедливо, поэтому я посмотрел, как получить зависимости:

sudo apt-get build-dep network-manager-applet
Reading package lists... Done
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 builddeps:network-manager-applet : Depends: libnm-dev (>= 1.8) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

Хорошо, давайте попробуем установить libnm-dev:

boutell@roxnsox:~/xubuntu$ sudo apt-get install libnm-dev
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 libnm-dev : Depends: libnm0 (= 1.10.6-2ubuntu1.1) but 1.10.14-0ubuntu2 is to be installed
E: Unable to correct problems, you have held broken packages.

Обратите внимание, что у меня нет задержанных пакетов:

boutell@roxnsox:~/xubuntu$ dpkg --get-selections | grep hold
boutell@roxnsox:~/xubuntu$ 

Как мне разрешить конфликт, libnm0чтобы двигаться вперед?

(Я знаю, что в конечном итоге мне придется остановиться --compileи перейти в исходную папку, чтобы собрать себя для работы над кодом, но в этом случае я окажусь в том же самом месте. Вышеуказанная последовательность шагов должна быть хороша для решения этой проблемы.)

Спасибо за вашу помощь!

решение1

Эта строка:

libnm-dev : Depends: libnm0 (= 1.10.6-2ubuntu1.1) but 1.10.14-0ubuntu2 is to be installed

Предполагается, что у вас более новая версия libnm0, чем та, которая совместима с имеющейся у вас libnm-dev; я думаю, это немного неправильно сформулировано.

sudo apt purge libnm0 && sudo apt install libnm-dev

Удалим вашу версию libnm0 и выполним установку, указав libnm-dev, которая подтянет необходимые зависимости.

Если ошибки зависимостей все еще возникают, сообщите об этом.

FWIWaptitudeбудет искать альтернативные решения проблем зависимости. Итак, в вашем случае, в интерактивном режиме ( sudo aptitude), когда вы указываете «установить libnm-dev» (щелкнув +по соответствующей записи; поиск заключается в /том, чтобы ввести ключевое слово), он сообщит, что что-то сломано, и предложит вам нажать, eа затем вы можете использовать ,/ .для работы со списком решений.

Ты можешьиспользуйте aptitudeтакже aptв терминале: sudo aptitude install libnm-dev

и опять же, он должен предлагать различные решения для устранения проблемы зависимости.

Другая альтернатива —напрямую указать версию libnm0что libnm-dev хочет:

sudo apt install libnm0=1.10.6-2ubuntu1.1

но это работает только в том случае, если эта версия есть в ваших репозиториях (указана в /etc/apt/sources.list и т. д.).

Связанный контент