圧倒的多数の.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
コンパイルしたソフトウェアから独自のパッケージを作成し、そのパッケージからインストールする必要があります。次に、パッケージマネージャーは何が起こっているかを認識します。自分用のパッケージを作成することは、他の人のコンピューターでうまく機能する必要がないため、実際にはそれほど難しくありません。(しかし、私はそれが現在述べられているように、あなたの質問の範囲外であるかもしれないと感じています。)