¿Puedo hacer que el administrador de paquetes resuelva el conflicto, por ejemplo, cambiando el nombre del binario ( por ejemplo, paralelo → gparallel ) o instalándolo en un lugar diferente ( por ejemplo, / usr / → / usr / local / )?
fuente
¿Puedo hacer que el administrador de paquetes resuelva el conflicto, por ejemplo, cambiando el nombre del binario ( por ejemplo, paralelo → gparallel ) o instalándolo en un lugar diferente ( por ejemplo, / usr / → / usr / local / )?
Para Ubuntu v17.04 ("Zesty Zapus") y Debian v9 ("Stretch") , ( 2017 o más reciente), o distribuciones basadas en esas versiones, lea primero la respuesta de Bryan Larsen , que debería ser suficiente.
Para versiones anteriores a 2017 , sigue leyendo ...
Use dpkg
para forzar la instalación; Paralelamente se lleva muy bien con moreutils - renombra moreutils ' parallel
util a parallel.moreutils
. Cuando se realiza la instalación, ambos programas ( GNU y moreutils ) están disponibles.
Nota: si alguna secuencia de comandos de usuario llama a moreutils anteriores parallel
, cambie esas secuencias de comandos para usar el nombre más largo.
Detalles: Obtenga el paquete paralelo (sin instalar ni quitar nada). Luego compgen
, usando (un bash
comando interno), busque el paquete paralelo en el archivo. Si hay más de uno, use el último. Fuerce la instalación de ese paquete, a pesar de los conflictos.
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
Cómo ver los desvíos resultantes:
dpkg-divert --list 'par*'
Salida:
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
Vea cómo ambos ejecutables binarios están disponibles:
compgen -c parallel | xargs which | xargs ls -l
Salida:
-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
sigue quejándose del conflicto, como escribiste anteriormente./var/lib/dpkg/status
para eliminar el conflicto. Busqué "Conflictos: moreutils", eliminó esta línea. Fuente: superuser.com/a/815371/99136 . Parece funcionar ahora, pero me temo que una actualización del paquete "paralelo" volverá a romper las cosas.apt-get install
advierte que elparallel
paquete no se actualizará, peroapt-cache policy
no muestra versiones diferentes, e inclusoapt-get dist-upgrade
no tocará elparallel
paquete. Entonces, la actualizaciónparallel
parece ser un proceso que debe iniciarse conscientemente. Bien por mi.Este conflicto se resuelve en Ubuntu 17.04 y Debian Stretch .
Si instala en paralelo y moreutils se obtiene la GNU
parallel
como/usr/bin/parallel
y moreutil 'sparallel
como/usr/bin/parallel.moreutils
. Si solo instala moreutils , proporciona/usr/bin/parallel
.Si está utilizando una versión anterior de Ubuntu o Debian , puede descargar e instalar los .deb de una versión más nueva: se instalan y funcionan bien.
fuente
Supongo que la ruta más fácil sería instalar uno de los paquetes normalmente (por ejemplo
parallel
) y simplemente extraer otro a la ruta personalizada:fuente
GNU parallels es solo un script perl, por lo que podría copiarlo en algún lugar útil (por ejemplo, / usr / local / bin / gnu-parallel).
(Solo verifique las dependencias perl).
fuente