Я использую 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 и т. д.).