無害な「dpkg --force-contributes」パッチワークを許可するようにapt-getオプションを設定しますか?

無害な「dpkg --force-contributes」パッチワークを許可するようにapt-getオプションを設定しますか?

マイナークラッシュパッケージ金持ちとともにバー、実行してdpkg --force-conflicts -i foo。しかし、最終的にオブジェクトをアップグレードして「apt-get」する時間です。

% apt-get upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
You might want to run 'apt-get -f install' to correct these.
The following packages have unmet dependencies:
 foo : Conflicts: bar but 0.2-1 is installed
E: Unmet dependencies. Try using -f.

できる適切(ほぼ固定された)紛争を容認し拡大するように調整/強制されていますか?

(迅速な存在証明:削除金持ちを押してアップグレードして再インストールします。金持ち以前のように。したがって、はい問題は、可能であれば最も面倒なメカニズムを見つけることです。 )


しかし、例えば、質問は次のようになります。いいえ二つくらい特別なバッグ。

数年間牛に似た一種の栄養平行線誰かとマイナーな紛争を経験したモルトール;それぞれ提供/usr/bin/パラレル包装袋強制的に共存できます。

# assume 'moreutils' is already installed, and 'parallel' is in
# apt's cache directory.
dpkg --force-conflicts -i /var/cache/apt/archives/parallel_20141022+ds1-1_all.deb

転送が生成され、名前が変更されます。その他のユーティリティバージョンは/usr/bin/parallel.moreutils。どちらのプログラムもユーザーがアップグレードするまで機能します。

私は試した- モールド選択、しかしそれは平和をもたらさなかった。

apt-get -o Dpkg::Options::="--force-conflicts" install parallel moreutils

可能- モールド何百ものオプションがありますが…

ベストアンサー1

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、私のインストールの場合のように、競合する行が1つのエントリとしてのみ存在し、バージョン制限がないと仮定します。それ以外の場合は、'/^Conflicts:/s/\(, \)\?moreutils\( [^,]\+\)\?//'2番目のスクリプトとして使用すると、その行sedの関連部分のみが削除され、バージョン制限がサポートされます。

インストールしたパッケージはリポジトリの最新バージョンで上書きされず、パッケージを最新の状態に保つには、GNUパラレルパッケージを更新するたびにこのプロセスを手動で繰り返す必要があります。

おすすめ記事