Odpowiedzi:
W przypadku Ubuntu v17.04 („Zesty Zapus”) i Debian v9 („Stretch”) , ( 2017 lub nowszy) lub dystrybucji opartych na tych wersjach, najpierw przeczytaj odpowiedź Bryana Larsena , która powinna wystarczyć.
W przypadku wersji sprzed 2017 r. Czytaj dalej ...
Użyj, dpkg
aby wymusić instalację; równolegle dogaduje się dobrze z moreutils - to zmienia nazwę moreutils " parallel
util do parallel.moreutils
. Po zakończeniu instalacji dostępne są oba programy ( GNU i moreutils ).
Uwaga: jeśli skrypty użytkownika wywołują stare moreutils parallel
, zmień je, aby używały dłuższej nazwy.
Szczegóły: Pobierz pakiet równoległy (bez instalowania lub usuwania czegokolwiek). Następnie za pomocą compgen
( bash
polecenie wewnętrzne) znajdź pakiet równoległy w archiwum. Jeśli jest więcej niż jeden, użyj najnowszego. Wymuś zainstalowanie tego pakietu, pomimo konfliktów.
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
Jak wyświetlić wynikowe zmiany:
dpkg-divert --list 'par*'
Wydajność:
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
Zobacz, jak dostępne są oba binarne pliki wykonywalne:
compgen -c parallel | xargs which | xargs ls -l
Wydajność:
-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
wciąż narzeka na konflikt, jak pisałeś wcześniej.
/var/lib/dpkg/status
aby usunąć konflikt. Szukano „Conflicts: moreutils”, usunąłem ten wiersz. Źródło: superuser.com/a/815371/99136 . Wygląda na to, że teraz działa, ale obawiam się, że aktualizacja pakietu „równoległego” znowu wszystko zepsuje.
apt-get install
ostrzega, że parallel
pakiet nie zostanie zaktualizowany, ale apt-cache policy
nie pokazuje różnych wersji, a nawet apt-get dist-upgrade
nie dotknie parallel
pakietu. Tak więc aktualizacja parallel
wydaje się być procesem, który musi być inicjowany świadomie. Nie mam nic przeciwko.
W przypadku zainstalowania równolegle & moreutils masz GNU parallel
jak /usr/bin/parallel
i moreutil „s parallel
jako /usr/bin/parallel.moreutils
. Jeśli zainstalujesz tylko moreutils , zapewni to /usr/bin/parallel
.
Jeśli używasz starszej wersji Ubuntu lub Debian , możesz pobrać i zainstalować .deb z nowszej wersji: instalują się i działają dobrze.
Sądzę, że najłatwiejszym sposobem byłoby zainstalowanie jednego z pakietów normalnie (np. parallel
) I po prostu wyodrębnienie innego do niestandardowej ścieżki:
$ 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/
Paralele GNU to po prostu skrypt perla, więc możesz po prostu skopiować go w jakiś użyteczny sposób (np. / Usr / local / bin / gnu -allel).
(Po prostu sprawdź zależności Perla).