Чтобы установить tmux 2.1, мне нужно было установить libtinfo5 версию 6, я сделал это, загрузив архив .deb, содержащий libtinfo5, и установив непосредственно с помощью команды:
sudo dpkg -i libtinfo5_6.0+20160213-1ubuntu1_amd64.deb
удовлетворенная зависимость tmux 2.1 и tmux установлены нормально. Теперь я попытался установить vnstat, используя ошибку
sudo apt-get install vnstat
apt-get, выходящую со следующим
$ sudo apt-get install vnstat
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
libncurses5 : Depends: libtinfo5 (= 5.9+20150516-2ubuntu1) but 6.0+20160213-1ubuntu1 is to be installed
libncursesw5 : Depends: libtinfo5 (= 5.9+20150516-2ubuntu1) but 6.0+20160213-1ubuntu1 is to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
. Я всегда понимал, что система управления пакетами Ubuntu способна устанавливать и управляя несколькими версиями одного и того же пакета, для ситуаций, подобных этому. Другими словами, apt / dpkg распознает
tmux требуется libtinfo5 - version 6 для работы vnstat требуется libtinfo5 - version 5 для работыТогда apt / dpkg говорит, Я установлю обе версии. Я вижу, как определенные программы, такие как системный двоичный файл, например bash или ls можно установить только один раз, так как большинство вызовов просто говорят bash -c "<command>", а не bashv.3.2 -c "<command>". Поэтому мой вопрос заключается в том, может ли менеджер пакетов устанавливать и управлять несколькими зависимостями ?, или это просто невозможно, потому что, как и в приведенном выше примере bash, большинство программ совершают вызов зависимостей по имени зависимостей без указания версии. В этом случае проблема выходит за рамки управления диспетчером пакетов (т. Е. В большей степени связана с компиляцией / конфигурацией / организацией программирования), и диспетчер пакетов отказывается в этой точке?
Нет, вы не можете одновременно устанавливать разные версии одного и того же пакета. Обычно зависимости выражаются как по меньшей мере в версии X. Однако для пакетов, которые все построены из одного источника, зависимость часто бывает точной. Это то, с чем вы столкнулись. libncurses5 и libtinfo5 создаются из исходного пакета ncurses. Если вы хотите обновить один из пакетов, созданных из этого источника, вы должны обновить их все, поэтому вам просто нужно получить и установить ту же версию других пакетов, созданных из этого источника, так что все они находятся на одной и той же версии.