圧倒的多数の.debパッケージは、公式リポジトリから提供されているかどうかに関係なく、プレフィックスを付けてインストールします/usr。
つまり、ユーザーが実行することを目的とした実行可能ファイル、/usr/binまたは/usr/sbin(または/usr/gamesゲームの場合)、共有ライブラリが入り/usr/lib、プラットフォームに依存しない共有データが入り/usr/share、ヘッダーファイルが入り/usr/include、インストールされているソースコードが自動的に入り/usr/srcます。
少数のパッケージ/が接頭辞として使用されます。たとえば、bashパッケージはbash実行可能ファイルを/binではなくに配置し/usr/binます。これは、(リカバリモードなど)シングルユーザーモードで実行すると、マルチユーザモードを起動する(しかし、多くの場合、ネットワーク共有のいくつかの種類を実装するための機能が含まれていることを、覚えて裸の必需品を提供するパッケージです...場合に/usrされてリモートファイルシステム)。
ごく一部の.debパッケージ、主にQuicklyで作成されたパッケージは、パッケージ固有のフォルダーを作成し、/optそこにすべてのファイルを配置します。それ以外は、ほとんどの/opt場合、システムのパッケージマネージャーを使用しない実行可能インストーラーからインストールされるソフトウェアが使用する場所ですが、ソースからのコンパイルは含まれません。(たとえば、MATLABのような独自のプログラムをインストールする場合は、おそらくに配置し/optます。)
これとは対照的に、ソースアーカイブをダウンロードして(またはBazaarやgitなどのリビジョン管理システムからソースコードを取得して)ビルドしてインストールすると、通常、プレフィックスにインストールされます/usr/local(指示がない限り)。さもないと)。これは、あなたの実行可能ファイルがに行くこと/usr/local/bin、/usr/local/libあるいは/usr/local/games、あなたの内のライブラリ/usr/local/lib、および等々 。
これにはいくつかの例外があります。一部のプログラムは、デフォルトで/usrプレフィックスにインストールされるため、.debパッケージから同じプログラムのインストールを上書きします。通常、ビルド時./configure --prefix=/usr/localにではなく実行することでこれを防ぐことができ./configureます。通常、これは必要ないことを再度強調します。
(このため、ビルドし、システム全体で使用するためにインストールするソースコードを配置することは/usr/local/src、その目的のために存在するため、非常に理にかなっています。)
パッケージ化されたバージョンがにインストールされて/usrおり、ソースからインストールしたバージョンがにあると仮定します/usr/local:
インストールされたパッケージのファイルは上書きされません。
通常、新しいバージョンは、コマンドラインからプログラムを手動で起動したときに実行されます(/usr/local/bin実行可能ファイルがPATH環境変数にあり、対応する/usr-prefixedディレクトリの前に表示される場合など/usr/bin)。
しかし、ランチャーが作成され、メニューや検索を介してアクセスできるようにするには、いくつかの問題があるかもしれません。さらに、複数のバージョンのライブラリをさまざまな場所にインストールした場合、どのソフトウェアがどのバージョンを使用するかを決定するのが少し複雑になる可能性があります。
プログラムまたはライブラリの両方のバージョンを実際に使用していない場合は、多くの場合、使用していないものを削除する必要がありますが、限られた状況では、依存関係を満たすためにパッケージをインストールしたままにすることもできます。
ただし、何らかの理由でファイルが上書きされた場合(たとえば、ソースコードがで/usrはなくにインストールされている場合/usr/local):
- パッケージマネージャーは、インストールされたソフトウェアがどのように変更されたかについては何も知りません。古いバージョンがインストールされていると思います。悪い問題が発生する可能性があります。これは避けてください。この状況が発生した場合は、ソースからインストールしたソフトウェア(通常
sudo make uninstallはディレクトリにある)をアンインストールしてから、上書きされたファイルを提供するパッケージをアンインストールする必要があります(インストールされているバージョンをアンインストールしても復元されないため)ソースから)。次に、必要なバージョンを再インストールします。/usr/local/src/program-or-library-name
依存関係を満たすために:
.debソースからインストールしたソフトウェアに依存するパッケージがあり、ソースからインストールしたバージョン(またはそれ以上)が必要な場合、そのパッケージは正常にインストールされません。(または、より正確には、「インストール」できるかもしれませんが、「構成」されないため、使用できなくなります。依存関係は、インストールされているパッケージのバージョンではなく、インストールされているパッケージのバージョンによって解決されます。実際に持っているソフトウェア。
同様に、インストールするソフトウェアが依存するパッケージによって提供されるファイルを手動で削除した場合でも、ソフトウェアは少なくとも完全にインストールしようとします。(通常、それを目的に利用しようとするべきではありません。誤った情報に基づいて動作するパッケージマネージャーは、ほとんどの場合悪いことです。)
したがって、必要なソフトウェアのバージョンを提供するパッケージが見つからない場合は、.debコンパイルしたソフトウェアから独自のパッケージを作成し、そのパッケージからインストールする必要があります。次に、パッケージマネージャーは何が起こっているかを認識します。自分用のパッケージを作成することは、他の人のコンピューターでうまく機能する必要がないため、実際にはそれほど難しくありません。(しかし、私はそれが現在述べられているように、あなたの質問の範囲外であるかもしれないと感じています。)