Puis-je demander au gestionnaire de paquets de résoudre le conflit, par exemple en renommant le binaire ( par exemple parallèle → gparallel ) ou en l'installant à un autre endroit ( par exemple / usr / → / usr / local / )?
la source
Puis-je demander au gestionnaire de paquets de résoudre le conflit, par exemple en renommant le binaire ( par exemple parallèle → gparallel ) ou en l'installant à un autre endroit ( par exemple / usr / → / usr / local / )?
Pour Ubuntu v17.04 ( "Zesty Zapus") et Debian v9 ( "Stretch") , ( 2017 ou plus récent), ou distros basées sur ces versions, s'il vous plaît lire la réponse de Bryan Larsen premier , qui devrait être suffisant.
Pour les versions antérieures à 2017 , lisez la suite ...
Utilisez dpkg
pour forcer l'installation; parallèle s'entend bien avec moreutils - il renomme l' utilité de moreutilsparallel
en parallel.moreutils
. Une fois l'installation terminée, les deux programmes ( GNU et moreutils ) sont disponibles.
NB: si des scripts utilisateur appellent les anciens moreutils parallel
, changez ces scripts pour utiliser le nom plus long.
Détails: récupérer le package parallèle (sans rien installer ni supprimer). Ensuite, à l'aide de compgen
(une bash
commande interne), recherchez le package parallèle dans l'archive. S'il y en a plusieurs, utilisez la dernière. Forcer l'installation de ce package, malgré les conflits.
apt-get --assume-yes --download-only install parallel &&
ls --sort=version $(compgen -f /var/cache/apt/archives/parallel) |
tail -n 1 | xargs dpkg --force-conflicts -i
Comment afficher les détournements résultants:
dpkg-divert --list 'par*'
Sortie:
diversion of /usr/share/man/man1/parallel.1.gz to /usr/share/man/man1/parallel.moreutils.1.gz by parallel
diversion of /usr/bin/parallel to /usr/bin/parallel.moreutils by parallel
Découvrez comment les deux exécutables binaires sont disponibles:
compgen -c parallel | xargs which | xargs ls -l
Sortie:
-rwxr-xr-x 1 root root 240814 Oct 31 2014 /usr/bin/parallel
-rwxr-xr-x 1 root root 10592 Jul 21 2015 /usr/bin/parallel.moreutils
apt-get install
continue de se plaindre du conflit, comme vous l'avez écrit plus tôt./var/lib/dpkg/status
pour supprimer le conflit. Vous avez recherché "Conflicts: moreutils", supprimé cette ligne. Source: superuser.com/a/815371/99136 . Semble fonctionner maintenant, mais je crains qu'une mise à jour du package "parallèle" ne brise à nouveau les choses.apt-get install
prévient que leparallel
package ne sera pas mis à niveau, maisapt-cache policy
n'affiche pas de versions différentes etapt-get dist-upgrade
ne touchera même pas leparallel
package. La miseparallel
à niveau semble donc être un processus qui doit être initié consciemment. Ça va pour moi.Ce conflit est résolu dans Ubuntu 17.04 et Debian Stretch .
Si vous installez parallel & moreutils vous obtenez le GNU
parallel
as/usr/bin/parallel
et moreutil 'sparallel
as/usr/bin/parallel.moreutils
. Si vous installez uniquement moreutils , il fournit/usr/bin/parallel
.Si vous utilisez une ancienne version d' Ubuntu ou de Debian , vous pouvez télécharger et installer les .deb à partir d'une version plus récente: ils s'installent et fonctionnent très bien.
la source
Je suppose que la voie la plus simple serait d'installer normalement l'un des packages (par exemple
parallel
) et d'en extraire un autre sur le chemin personnalisé:la source
GNU parallels n'est qu'un script perl, vous pouvez donc simplement le copier dans un endroit utile (par exemple / usr / local / bin / gnu-parallel).
(Il suffit de vérifier les dépendances perl).
la source