Afin d’installer tmux 2.1, j’avais besoin d’installer libtinfo5
version 6, en téléchargeant une archive .deb contenant libtinfo5
et en l’installant directement à l’aide de la commande suivante:
Sudo dpkg -i libtinfo5_6.0+20160213-1ubuntu1_AMD64.deb
La dépendance de tmux 2.1 et l'installation de tmux sont satisfaisantes.
Maintenant, j'ai essayé d'installer vnstat en utilisant
Sudo apt-get install vnstat
apt-get
erreur corrigée avec ce qui suit
$ 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).
J'ai toujours cru comprendre que le système de gestion de paquets d'Ubuntu était capable d'installer et de gérer plusieurs versions du même paquet, dans des situations exactement comme celles-ci. En d'autres termes, apt/dpkg reconnaît
tmux
requiert libtinfo5 - version 6
pour fonctionnervnstat
requiert libtinfo5 - version 5
pour fonctionnerEnsuite, apt/dpkg dit: ok, je vais installer les deux versions.
Je peux voir comment certains programmes ressemblent à un système binaire, par exemple. bash
ou ls
ne peut être installé qu'une seule fois, car la plupart des invocations disent simplement bash -c "<command>"
et non bashv.3.2 -c "<command>"
.
Ma question est la suivante: le gestionnaire de paquets peut-il installer et gérer plusieurs dépendances?, Ou est-ce simplement impossible, comme dans l'exemple de bash ci-dessus, la plupart des programmes appellent la dépendance par son nom sans spécifier de version . Dans quel cas le problème échappe au contrôle du gestionnaire de paquets (c’est-à-dire qu’il s’agit plutôt d’un problème de compilation, de configuration ou d’organisation de la programmation) et le gestionnaire de paquets abandonne à ce moment-là?
Non, il n'est pas possible d'avoir deux versions du même package , car il y aura des fichiers en conflit. Si une bibliothèque peut être installée simultanément dans deux versions différentes, le problème est différent. Si vous êtes courageux, vous pourriez obtenir le code source d'une version et voir si vous pouvez l'installer dans un autre répertoire. Cela pourrait très bien endommager votre système. Cela pourrait également ne pas fonctionner. Dpkg ne sera pas satisfait, vous devrez donc obtenir le code source de l'un des programmes et le compiler également. Mais gardez à l'esprit que ne fois que vous commencez à compiler des programmes, vous pouvez vous poser toutes sortes de problèmes.
Non, vous ne pouvez pas installer différentes versions du même package en même temps. Habituellement, les dépendances sont exprimées par au moins version X. Toutefois, pour les packages construits à partir de la même source, la dépendance est souvent exacte. C'est ce que vous avez rencontré. libncurses5 et libtinfo5 sont tous deux construits à partir du paquet source ncurses. Si vous souhaitez mettre à niveau l'un des packages générés à partir de cette source, vous devez tous les mettre à niveau. Vous devez donc simplement obtenir et installer la même version des autres packages générés à partir de cette source, afin qu'ils soient tous sur la même version.