Как установить GNU Parallel вместе с Moreutils на Ubuntu/Debian?

Как установить GNU Parallel вместе с Moreutils на Ubuntu/Debian?

Могу ли я заставить менеджер пакетов разрешить конфликт, например, переименовав двоичный файл (например, параллельный → gparallel) или установка в другое место (например /usr/ → /usr/local/)?

решение1

ДляUbuntu v17.04 («Пикантный Запус»)иDebian v9 («Растянуть»), (2017или новее), или дистрибутивы, основанные на этих версиях, пожалуйста, прочтитеОтвет Брайана Ларсена первый, чего должно быть достаточно.

Для версий, выпущенных ранее2017, читай дальше...


Использовать dpkgдлясилаустановка;параллельныйхорошо ладит сmoreutils-- он переименовываетmoreutils' parallelutil to parallel.moreutils. Когда установка будет завершена, обе программы (ГНУи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

решение2

Этот конфликт решен вУбунту 17.04иРастяжка Debian.

Если вы установитепараллельный&moreutilsвы получаетеГНУ parallelкак /usr/bin/parallelиmoreutil's parallelкак /usr/bin/parallel.moreutils. Если вы только установитеmoreutils, это обеспечивает /usr/bin/parallel.

Если вы используете старую версиюУбунтуилиДебиан, вы можете загрузить и установить .deb-файлы из более новой версии: они устанавливаются и работают просто отлично.

решение3

Полагаю, самым простым способом будет установить один из пакетов обычным образом (например, 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/

решение4

GNU Parallels — это всего лишь скрипт на Perl, поэтому вы можете просто скопировать его в удобное место (например, /usr/local/bin/gnu-parallel).

(Просто проверьте зависимости Perl).

Связанный контент