パッケージマネージャーに競合を解決させることはできますか?バイナリの名前を変更する(例:parallel→gparallel)か、別の場所にインストールする(例:/ usr /→/ usr/local /)?
Ubuntu v17.04( "Zesty Zapus")およびDebian v9( "Stretch")の場合、(2017以降)、またはそれらのバージョンに基づくディストリビューションについては、 Bryan Larsenの回答firstをお読みください。 、これで十分です。
以前のバージョン2017については、以下をお読みください...
dpkg
を使用してforceインストールします。 parallelはmoreutilsとうまく調和します-名前を変更しますmoreutils 'parallel
util to parallel.moreutils
。インストールが完了すると、両方のプログラム([〜#〜] gnu [〜#〜]とmoreutils)が使用可能になります。
注意:userスクリプトが古いmoreutilsparallel
を呼び出す場合、それらのスクリプトを変更します長い名前を使用します。
詳細:parallelパッケージをフェッチします(何もインストールまたは削除せずに)。次に、compgen
、(bash
内部コマンド)を使用して、アーカイブ内のparallelパッケージを見つけます。複数ある場合は、最新のものを使用してください。競合があるにもかかわらず、そのパッケージを強制的にインストールします。
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
parallel&moreutilsをインストールすると、[〜#〜] gnu [〜#〜]parallel
as /usr/bin/parallel
およびmoreutilのparallel
as /usr/bin/parallel.moreutils
。 moreutilsのみをインストールすると、/usr/bin/parallel
が提供されます。
古いバージョンのbuntまたは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/
GNU parallelsは単なるPerlスクリプトなので、どこか便利な場所(/ usr/local/bin/gnu-parallelなど)にコピーすることができます。
(Perlの依存関係を確認するだけです)。