Ответы:
Для Ubuntu v17.04 («Zesty Zapus») и Debian v9 («Stretch») , ( 2017 или новее) или дистрибутивов, основанных на этих версиях, сначала прочтите ответ Брайана Ларсена , чего должно быть достаточно.
Для версий до 2017 года читайте дальше ...
Используйте dpkg
для принудительной установки; параллельно ладит хорошо с moreutils - переименовывает moreutils ' parallel
Util к parallel.moreutils
. Когда установка завершена , доступны обе программы ( GNU и moreutils ).
NB: если какие-либо пользовательские сценарии вызывают старые 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
чтобы удалить конфликт. Искал "Conflicts: moreutils", удалил эту строку. Источник: superuser.com/a/815371/99136 . Кажется, сейчас работает, но я боюсь, что обновление «параллельного» пакета снова сломает вещи.
apt-get install
предупреждает, что parallel
пакет не будет обновлен, но apt-cache policy
не показывает разные версии и даже apt-get dist-upgrade
не будет касаться parallel
пакета. Таким образом, модернизация parallel
представляется процессом, который должен начинаться сознательно. Я согласен.
Если вы устанавливаете параллельный & moreutils, вы получаете GNU parallel
as /usr/bin/parallel
и moreutil 's parallel
as /usr/bin/parallel.moreutils
. Если вы только устанавливаете 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 Parallels - это всего лишь Perl-скрипт, поэтому вы можете просто скопировать его куда-нибудь полезное (например, / usr / local / bin / gnu -rallel).
(Просто проверьте зависимости perl).