Ubuntu / Debian에서 Moreutils와 함께 GNU Parallel을 어떻게 설치합니까?


22

바이너리의 이름을 바꾸거나 ( 예 : 병렬 → gparallel ) 다른 장소에 설치 ( 예 : / usr / → / usr / local / ) 하여 패키지 관리자가 충돌을 해결하도록 할 수 있습니까 ?

답변:


19

를 들어 우분투 v17.04 ( "강한 풍미를 가지는 Zapus")데비안 V9 ( "스트레치") , ( 2017 이상) 또는 해당 버전에 기반 배포판 참조하시기 바랍니다 브라이언 라슨의 답변을 첫번째 충분해야한다.

2017 년 이전의 버전은 다음 을 참조하십시오.


강제 설치에 사용 dpkg합니다 . 병렬moreutils 와 잘 어울립니다 . moreutils 의 util 이름을로 바꿉니다 . 설치가 완료되면 두 프로그램 ( GNUmoreutils )을 모두 사용할 수 있습니다.parallelparallel.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

1
아마! 이것은 사용 작업 확인을하지만, 루 분투 상자, 모든 설치 수에 있지만, apt-get은 아마 다른 재정을 필요로 ... 하나 평행선을 제거하고자 유지합니다. 더 나중에 ...
agc

... apt-get install당신이 앞에서 쓴 것처럼 갈등에 대해 계속 불평 하는 것을 제외하고 .
krlmlr

1
/var/lib/dpkg/status충돌을 제거하기 위해 편집 했습니다. "충돌 : moreutils"를 검색하여이 줄을 삭제했습니다. 출처 : superuser.com/a/815371/99136 . 지금은 작동하는 것 같지만 "병렬"패키지를 업데이트하면 문제가 다시 발생 할까 걱정됩니다.
krlmlr

1
아니요 : 패키지는 업그레이드 되지 않지만 다른 버전은 표시되지 않으며 패키지를 건드리지 않는다고 apt-get install경고 합니다. 따라서 업그레이드 는 의식적으로 시작해야하는 프로세스 인 것 같습니다. 난 괜찮아. parallelapt-cache policyapt-get dist-upgradeparallelparallel
krlmlr

@krlmlr, 그것은 저에게 새로운 것입니다 ... BTW, 위의 트릭을 게시 할 정도로 친절하다면 apt-get 옵션을 설정하여 무해한 'dpkg --force-conflicts'kludge를 견딜 수 있습니까? 나는 그것을 찬성했다.
agc

7

이 충돌은 Ubuntu 17.04Debian Stretch 에서 해결되었습니다 .

당신이 설치하는 경우 병렬moreutils 당신은 얻을 GNU parallel/usr/bin/parallel하고 moreutilparallel등을 /usr/bin/parallel.moreutils. moreutils 만 설치 하면 제공 /usr/bin/parallel됩니다.

이전 버전의 Ubuntu 또는 Debian을 사용하는 경우 최신 버전에서 .deb를 다운로드하여 설치할 수 있습니다. 제대로 설치 및 작동합니다.


1

가장 쉬운 방법은 패키지 중 하나를 정상적으로 설치하고 (예 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/

1

GNU 패러렐은 펄 스크립트 일 뿐이므로 유용한 곳 (예 : / usr / local / bin / gnu-parallel)에 복사하면됩니다.

(펄 의존성을 확인하십시오).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.