web-dev-qa-db-ja.com

同じファイルを書き込む2つのパッケージをインストールする方法

それぞれが/ usr/bin/ffprobeを作成する2つのパッケージがあります。それらの1つはDebマルチメディアリポジトリからのffmpegであり、もう1つはソースから構築されたffmbc0.7-rc5です。手巻きのものはビジネスに不可欠であり、以前は必要な場所にソースからインストールするだけでした。私はそれがffmpegファイルを壊してしまうと推測することしかできず、悪影響はありませんでした。

理論的には、ffmbcパッケージがffmpegパッケージからファイルを上書きすることは許容できるはずです。欠点は、ffmpegを更新するとffmbcバイナリが上書きされることです。これを調整する簡単な方法はありますか?

14
Joel E Salas

Debianベースのシステムでは、DPKG(aptの下)に diversions コマンドを使用してセットアップすることができます dpkg-divert

dpkg-divertは、迂回のリストを設定および更新するために使用されるユーティリティです。

ファイルの迂回は、dpkg(1)にファイルをその場所にインストールするのではなく、迂回した場所にインストールするように強制する方法です。 ...システム管理者は、これらのファイルを含むパッケージの新しいバージョンをインストールするときに、一部のパッケージの構成ファイルをオーバーライドしたり、一部のファイル(「conffiles」としてマークされていない)をdpkgで保持する必要がある場合はいつでも使用できます。 。

したがって、あなたの場合は、このようなコマンドを使用して迂回を設定できます。 (私はテストしていません。manページをチェックして、これが正しいように見えることを確認してください。)

dpkg-divert --local --divert /usr/bin/ffprobe.ffmpeg --rename /usr/bin/ffprobe
12
Zoredache

私が見つけた別の解決策は、ffmbcパッケージの作成方法を変更することでした。通常、インストールされたファイルの最終パスを変更する目的で、代替プレフィックスを渡すことができます。

./configure --prefix=/usr/local

Debianパッケージの場合、これは次のように$ {package}/debian/rulesファイルに含まれます。

override_dh_auto_configure:
    ./configure --enable-gpl --prefix=/usr/local

Ffmbcファイルを/usr/localに置くことで、ffmpegファイルを/usrに保持し、各パッケージを個別に更新できるようになります。

8
Joel E Salas

同じファイルを提供するパッケージは互いに競合するはずです-それはバグではありません(そのような場合の報告を検討してください)。ソースからソフトウェアをビルドし、make install(または同様のもの)を使用してインストールする場合は、パッケージ管理との競合を避けるために、必ず/usr/localに移動してください。

deb-multimedia.orgは、公式パッケージとの競合を引き起こすことで悪名高い非公式の非公式リポジトリであることに注意してください。

必要なソフトウェアが Debian にパッケージ化されていない場合は、パッケージ化リクエストを送信できます [〜#〜] rfp [〜#〜] ただし、 既存のリクエスト)を確認してください 最初。

0
Onlyjob