OPはGillesの回答へのコメントでコマンドのリスト(パッケージの関連するメタデータを変更するためのもの)を要求したので、ここにあります:
# download .deb
apt download parallel
# alternatively: aptitude download parallel
# unpack
dpkg-deb -R parallel_*.deb tmp/
# make changes to the package metadata
sed -i \
-e '/^Version:/s/$/~nomoreutconfl/' \
-e '/^Conflicts: moreutils/d' \
tmp/DEBIAN/control
# pack anew
dpkg-deb -b tmp parallel_custom.deb
# install
dpkg -i parallel_custom.deb
これは、競合行に moreutils
しかないという仮定の下にあります 私のインストールの場合と同様に、エントリとして(バージョンの制限なしで)。それ以外の場合は、'/^Conflicts:/s/\(, \)\?moreutils\( [^,]\+\)\?//'
を使用します 2 番目の sed
として 行の関連部分のみを削除し、バージョン制限をサポートするスクリプト。
インストールされたパッケージは、リポジトリの新しいバージョンによって上書きされることはありません。このパッケージを最新の状態に保ちたい場合は、GNU 並列パッケージを更新するたびに、この手順を手動で繰り返す必要があります。
パッケージ間の競合は、それ自体が有害です。 dpkg
を強制すると 競合するパッケージをインストールするため、これによりその他が発生しない可能性があります 正当な理由なく競合が宣言された場合に害を及ぼすが、パッケージはまだ競合している。 APT は、パッケージのインストール時に競合を解決するために懸命に働きますが、無視する競合のリストはありません。 dpkg
に別のオプションを渡すようにしても、これを解決することはできません :問題は、競合によって APT 自身の仕事が不可能になることです。
APT が機能しなくなった状況から抜け出すための一時的な状態でない限り、競合するパッケージをインストールしないでください。 dpkg
で作業するまで APT を実行しないでください 対立する状況から抜け出すために。
競合するパッケージをインストールする場合は、最初にそれらを変更して Conflict:
を削除します 紛争宣言の動機となったあらゆる問題を解決することに加えて、宣言。