web-dev-qa-db-ja.com

apt依存関係をだます方法は?

可能性のある複製:
他のパッケージを自動的にインストールするメタパッケージの作成方法

Frescobaldi(Lilypondのエディター)を使用したいのですが、公式リポジトリのlilypondのパッケージリリース(2.12.3。lilypondはスコアシートのTeXに似ています)は、新しい機能を使用したいので少し古いです。だから私は彼らのgitリポジトリをクローンし、そこからインストールしました。

さて、私の質問は、どのようにしてaptに、lilypondの依存関係を手動で満たして、別のコピーをインストールしないようにしたかということです。

7
FUZxxl

実際に依存関係を提供している場所については、checkinstallを使用してインストールを行います。 checkinstallは基本的にmake installを置き換え、適切な.debパッケージを生成してインストールします。それにより、パッケージをより良い方法で削除またはアップグレードできるようになるだけでなく(時間が来たら)、他のアプリケーションからの依存関係も満たします。

別の方法は、ファイルを提供しないが、あなたが望むものを提供すると主張する小さなダミーパッケージを書くことです。最も簡単な方法は、equivsというアプリケーションを使用することです。

Sudo apt-get install equivs
equivs-control lilypond

# edit your fake package so it has the right versions, names, description, etc
nano lilypond

equivs-build lilypond
Sudo dpkg -i lilypond-dummy*.deb

簡単ですが、潜在的に有害な3番目のルートがあります。標準のリポジトリからインストールして、生成したファイルでファイルを置き換えてください。パッケージのバージョンをロックして、アップグレードされないようにします。これには間違ったスコープがありますので、checkinstallができないか、最初にパッケージを偽造できない場合にのみ、それを行ってください。

11
Oli

Sudo check installの代わりにdhmakeまたはSudo make installを使用する必要があります。そうすることで、後のlilypondバージョンのdeb(インストールをチェックするとdebもインストールされます)を作成できます^^。

ソース(およびコンパイル後のオブジェクトファイル/メイクファイルなど)がまだある場合は、再度ダウンロードしなくてもそれを行うことができます。

0
RolandiXor