Posso fazer com que o gerenciador de pacotes resolva o conflito, renomeando o binário ( por exemplo, paralelo → gparallel ) ou instalando em um local diferente ( por exemplo, / usr / → / usr / local / )?
fonte
Posso fazer com que o gerenciador de pacotes resolva o conflito, renomeando o binário ( por exemplo, paralelo → gparallel ) ou instalando em um local diferente ( por exemplo, / usr / → / usr / local / )?
Para Ubuntu v17.04 ("Zesty Zapus") e Debian v9 ("Stretch") , ( 2017 ou mais recente) ou distribuições baseadas nessas versões, leia a resposta de Bryan Larsen primeiro , o que deve ser suficiente.
Para versões anteriores a 2017 , continue lendo ...
Use dpkg
para forçar a instalação; O paralelo se dá muito bem com o moreutils - renomeia o utilitário do moreutilsparallel
para parallel.moreutils
. Quando a instalação é concluída, ambos os programas ( GNU e moreutils ) estão disponíveis.
Nota: se algum script de usuário chamar o antigo moreutils parallel
, altere-o para usar o nome mais longo.
Detalhes: Busque o pacote paralelo (sem instalar ou remover nada). Em seguida compgen
, usando (um bash
comando interno), encontre o pacote paralelo no arquivo morto. Se houver mais de um, use o mais recente. Forçar a instalação desse pacote, apesar dos conflitos.
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
Como visualizar os desvios resultantes:
dpkg-divert --list 'par*'
Saída:
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
Veja como os dois executáveis binários estão disponíveis:
compgen -c parallel | xargs which | xargs ls -l
Saída:
-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
continua reclamando do conflito, como você escreveu anteriormente./var/lib/dpkg/status
para remover o conflito. Pesquisou por "Conflitos: moreutils", excluiu esta linha. Fonte: superuser.com/a/815371/99136 . Parece funcionar agora, mas temo que uma atualização do pacote "paralelo" interrompa as coisas novamente.apt-get install
avisa que oparallel
pacote não será atualizado, masapt-cache policy
não mostra versões diferentes e nemapt-get dist-upgrade
toca noparallel
pacote. Portanto, a atualizaçãoparallel
parece ser um processo que precisa ser iniciado conscientemente. Tudo bem por mim.Este conflito foi resolvido no Ubuntu 17.04 e Debian Stretch .
Se você instala o paralelo & moreutils, obtém o GNU
parallel
as/usr/bin/parallel
e moreutil 'sparallel
como/usr/bin/parallel.moreutils
. Se você instalar apenas o moreutils , ele fornece/usr/bin/parallel
.Se você estiver usando uma versão mais antiga do Ubuntu ou Debian , poderá baixar e instalar o .deb a partir de uma versão mais recente: eles instalam e funcionam perfeitamente.
fonte
Eu acho que a rota mais fácil seria instalar um dos pacotes normalmente (por exemplo
parallel
) e apenas extrair outro para o caminho personalizado:fonte
Paralelos GNU é apenas um script perl, então você pode copiá-lo em algum lugar útil (por exemplo, / usr / local / bin / gnu-parallel).
(Apenas verifique as dependências do perl).
fonte