Làm cách nào tôi có thể cài đặt GNU Parallel cùng với Moreutils trên Ubuntu / Debian?


21

Tôi có thể làm cho trình quản lý gói giải quyết xung đột hay không, ví dụ bằng cách đổi tên nhị phân ( ví dụ: song song → gabul ) hoặc cài đặt đến một nơi khác ( ví dụ / usr / → / usr / local / )?

Câu trả lời:


18

Đối với Ubuntu v17.04 ("Zesty Zapus")Debian v9 ("Kéo dài") , ( 2017 hoặc mới hơn) hoặc phân phối dựa trên các phiên bản đó, vui lòng đọc câu trả lời của Bryan Larsen trước .

Đối với các phiên bản từ trước năm 2017 , hãy đọc trên ...


Sử dụng dpkgđể buộc cài đặt; song song được cùng độc đáo với moreutils - nó đổi tên moreutils ' parallelutil để parallel.moreutils. Khi cài đặt xong, cả hai chương trình ( GNUmoreutils ) đều khả dụng.

NB: nếu có sử dụng kịch bản gọi cũ moreutils parallel , thay đổi những kịch bản để sử dụng tên dài hơn.

Chi tiết: Tìm nạp gói song song (không cài đặt hoặc gỡ bỏ bất cứ thứ gì). Sau đó, sử dụng compgen, (một bashlệnh nội bộ), tìm gói song song trong kho lưu trữ. Nếu có nhiều hơn một, sử dụng mới nhất. Buộc gói đó để cài đặt, mặc dù có xung đột.

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

Làm thế nào để xem các chuyển hướng kết quả:

dpkg-divert --list 'par*'

Đầu ra:

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

Xem cách cả hai thực thi nhị phân có sẵn:

compgen -c parallel | xargs which | xargs ls -l

Đầu ra:

-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
Có thể không! Điều này được sử dụng để hoạt động tốt, nhưng trên hộp LubFi, mọi thứ đều được cài đặt, nhưng apt-get cứ muốn thoát khỏi một điểm tương đồng ... có lẽ cần một ghi đè khác. Nhiều hơn sau ...
agc

... Ngoại trừ việc apt-get installtiếp tục phàn nàn về xung đột, như bạn đã viết trước đó.
krlmlr

1
Tôi chỉnh sửa /var/lib/dpkg/statusđể loại bỏ xung đột. Tìm kiếm "Xung đột: moreutils", đã xóa dòng này. Nguồn: superuser.com/a/815371/99136 . Có vẻ như bây giờ hoạt động, nhưng tôi sợ một bản cập nhật của gói "song song" sẽ phá vỡ mọi thứ một lần nữa.
krlmlr

1
Không: apt-get installcảnh báo rằng parallelgói sẽ không được nâng cấp, nhưng apt-cache policykhông hiển thị các phiên bản khác nhau và thậm chí apt-get dist-upgradesẽ không chạm vào parallelgói. Vì vậy, nâng cấp paralleldường như là một quá trình phải được bắt đầu một cách có ý thức. Tốt với tôi.
krlmlr

@krlmlr, đó là một cái mới vào tôi ... BTW, nếu bạn muốn được loại như vậy để gửi các trick trên đây Đặt apt-get tùy chọn để chịu đựng vô hại 'dpkg --force-xung đột' kludge? Tôi muốn nâng cấp nó.
agc

7

Xung đột này được giải quyết trong Ubuntu 17.04Debian Stretch .

Nếu bạn cài đặt song song & moreutils bạn sẽ có được GNU parallel như /usr/bin/parallelmoreutil 's parallelnhư /usr/bin/parallel.moreutils. Nếu bạn chỉ cài đặt thêmututils , nó cung cấp /usr/bin/parallel.

Nếu bạn đang sử dụng phiên bản Ubuntu hoặc Debian cũ hơn , bạn có thể tải xuống và cài đặt .deb từ phiên bản mới hơn: chúng cài đặt và hoạt động tốt.


1

Tôi đoán, cách dễ nhất sẽ là cài đặt một trong các gói thông thường (ví dụ parallel) và chỉ trích xuất một gói khác vào đường dẫn tùy chỉnh:

$ 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 song song chỉ là một tập lệnh perl, vì vậy bạn có thể sao chép nó ở đâu đó hữu ích (ví dụ / usr / local / bin / gnu -allel).

(Chỉ cần kiểm tra các phụ thuộc perl).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.