同じシステムで「apt-get install ...」とは異なるバージョンのソースコードを使用してパッケージをビルドすると、どのような問題が発生する可能性がありますか?

同じシステムで「apt-get install ...」とは異なるバージョンのソースコードを使用してパッケージをビルドすると、どのような問題が発生する可能性がありますか?

「私」と仮定しましょう。apt-get install somepkg'を選択して、「somepkg」に依存する別のパッケージ(「abc」と「def」)を追加でインストールします。後でパッケージの最近公開されたソースコードに望ましいアップデートがあるという内容を読むことになりますが、パッケージマネージャを通じて提供されるプリビルドバージョンは非常に古いバージョンに付いていることが見られ、最新バージョンから始まります。リリースされたソースコードから取得、ビルド、インストールします。

ただし、さまざまなビルド/インストールパッケージの2つのバージョン/コレクションがあることがわかります。例えば/bin/somepkg-ツール(v 1.0),/usr/bin/sompkg-ツール(v1.0)および最新のsrcで構築された最新バージョン/usr/local/bin/somepkg-ツール(v4.1)、これはいくつかの質問を提起します。

  1. 異なるバージョンの複数のバイナリセット(事前にビルドされたパッケージマネージャの1セット、ローカルビルドの最新のsrcの1セット)をインストールするのに問題がある可能性がありますか?これは避けることが最善の問題の潜在的な原因のように感じます。
  2. 'を使用して事前に構築された古いホスティングパッケージを削除するにはsudo apt-get purge somepkg'、プロンプトは依存関係パッケージ「abc」と「def」も削除します。これは、これが絶対に必要かどうか、またはパスで最新のビルドバイナリを見つけて作業を続けることができるかどうかわからないため、不便です。以前にインストールされたパッケージを削除/クリーンアップすると、必然的に後続の依存パッケージも削除されますか?また、依存パッケージの削除を受け入れると、パッケージマネージャは、「abc」と「def」の後続の(再)インストールから以前の「somepkg」をインポートしてインストールする必要がないことを確認できますか?すでにローカルで、srcでビルドしているからです。必要な「somepkg」バイナリがインストールされていますか?
  3. それとも、パッケージマネージャを介して "somepkg"の以前のインストールをクリーンアップする方法はありますか?いいえ2つの依存パッケージを削除してもよろしいですか?
  4. この状況に対処するための一般的な最善の方法はありますか、それとも一般的にケースごとに処理するのが最善ですか?

同様の答えがない質問を見つけました。ここしかし、レビューは多くのことに根本的に依存しているため、かなり問題のある特定のケースに焦点を当てています。

問題の一般的な性格を気を散らすことなく特定のケースを説明することが役に立つかもしれません。

  • 私は 'apt-get install git'(v2.30.2)
  • 後で「apt-get install gitolite3」と「... git-lfs」を実行します。
  • 後でリリースノートで多くの修正/更新を見て、Debianパッケージマネージャは、最新のgitパッケージが以前のバージョン(apt-get update、apt show git)で停止していると言ったので、「wget ... git -2.37」.3 .tar.gz 'は、最新バージョンのソースから作成してインストールしました。

これで、次のバイナリ(およびgitパッケージに付属の他のすべてのバイナリ)があることがわかります。

  • /bin/git (v2.30.2古い)
  • /usr/bin/git (v2.30.2古い)
  • /usr/local/bin/git (v2.37.3新しい)

そして、誤って古いgitバイナリを使用してgitoliteストレージサーバーとLFSサーバーに依存する問題を回避したいと思います。したがって、これらの質問が発生します。

ベストアンサー1

  1. PATH常に設定方法を知ることで制御できますが、これが問題の原因になる可能性があります。

  2. パッケージマネージャはパッケージについてのみ知っており、手動でインストールしたバイナリについては知りません。

  3. equivs依存関係を満たすためにダミーパッケージを作成できます。バラよりインストールされたパッケージの実装されていない依存関係を無視するにはどうすればよいですか?

  4. バラよりDebianが提供するよりも新しいバージョンのソフトウェアをどのようにインストールしますか?より良いアプローチのために、特に以下のgit最新バージョンのパッケージについてすでに梱包されています。- バックポート(現在のDebian 11の場合2.34.1)で利用できない場合は、最新のソースパッケージを使用して実際のパッケージを再構築できます。

おすすめ記事