Відповіді:
Для Ubuntu v17.04 ( «Zesty Zapus») і Debian v9 ( «Stretch») , ( 2017 р або новіше) або дистрибутивів , заснованих на ці версії, будь ласка , прочитайте відповідь Брайана Ларсена першим , який повинен бути достатнім.
Про версії до 2017 року читайте далі ...
Використовувати dpkg
для примусового встановлення; паралельно ладнає добре з moreutils - перейменовує moreutils ' parallel
Util до parallel.moreutils
. Коли встановлення завершено , доступні обидві програми ( GNU та moreutils ).
Примітка: якщо будь-які сценарії користувачів викликають старі moreutils parallel
, змініть ці сценарії, щоб використовувати довше ім'я.
Деталі: Виберіть паралельний пакет (не встановлюючи і не видаляючи нічого). Потім за допомогою compgen
( bash
внутрішньої команди) знайдіть паралельний пакет в архіві. Якщо їх більше, використовуйте останні. Примушуйте цей пакет встановлювати, незважаючи на конфлікти.
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
Як переглянути отримані відхилення:
dpkg-divert --list 'par*'
Вихід:
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
Подивіться, як доступні обидва бінарні виконавчі файли:
compgen -c parallel | xargs which | xargs ls -l
Вихід:
-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
, як і раніше, скаржиться на конфлікт, як ви писали раніше.
/var/lib/dpkg/status
щоб усунути конфлікт. Шукали "Конфлікти: moreutils", видалили цей рядок. Джерело: superuser.com/a/815371/99136 . Здається, зараз це працює, але я боюся, що оновлення "паралельного" пакета знову розіб'є справи.
apt-get install
попереджає, що parallel
пакет не буде оновлено, але apt-cache policy
не містить різних версій і навіть apt-get dist-upgrade
не торкнеться його parallel
. Отже, модернізація, parallel
здається, є процесом, який слід починати свідомо. Добре зі мною.
Якщо встановити паралельні та moreutil, ви отримаєте GNU parallel
як /usr/bin/parallel
і moreutil 's parallel
як /usr/bin/parallel.moreutils
. Якщо ви встановлюєте лише більшеутилітів , це забезпечує /usr/bin/parallel
.
Якщо ви використовуєте старішу версію Ubuntu або Debian , ви можете завантажити та встановити .deb з нової версії: вони встановлюють і працюють просто чудово.
Напевно, найпростішим маршрутом було б встановити один із пакунків зазвичай (наприклад parallel
) та просто витягнути ще один на спеціальний шлях:
$ sudo apt-get install libio-pty-perl libipc-run-perl
$ sudo apt-get download moreutils
$ dpkg -x moreutils_0.54-1_amd64.deb /tmp/moreutils
$ cd /tmp/moreutils/usr/bin/
Паралелі GNU - це просто сценарій perl, тому ви можете просто скопіювати його кудись корисно (наприклад, / usr / local / bin / gnu-паралельний).
(Просто перевірте залежності perl).