![如何在 Ubuntu/Debian 上安裝 GNU Parallel 和 Moreutils?](https://rvso.com/image/1451229/%E5%A6%82%E4%BD%95%E5%9C%A8%20Ubuntu%2FDebian%20%E4%B8%8A%E5%AE%89%E8%A3%9D%20GNU%20Parallel%20%E5%92%8C%20Moreutils%EF%BC%9F.png)
我可以讓套件管理器解決衝突,例如透過重命名二進位檔案(例如並行 → gparallel)或安裝到不同的地方(例如 /usr/ → /usr/local/)?
答案1
為了Ubuntu v17.04(「Zesty Zapus」)和Debian v9(“拉伸”), (2017年或更新版本),或基於這些版本的發行版,請閱讀布萊恩·拉森的回答 第一的,這應該夠了。
對於先前的版本2017年,繼續閱讀...
dpkg
用於力量安裝;平行線相處得很好更多實用程式——它重命名了更多實用程式'parallel
實用程式到parallel.moreutils
.安裝完成後,兩個程式(GNU和更多實用程式)可用。
註:如果有的話使用者腳本呼叫舊的更多實用程式 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 拉伸。
如果你安裝平行線&更多實用程式你得到GNU parallel
作為/usr/bin/parallel
和更多實用程式是parallel
作為/usr/bin/parallel.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 parallel 只是一個 perl 腳本,因此您可以將其複製到有用的地方(例如 /usr/local/bin/gnu-parallel)。
(只需檢查 perl 依賴項)。