Die überwiegende Mehrheit der .deb
Pakete, unabhängig davon, ob sie von offiziellen Repositorys bereitgestellt werden oder nicht, wird mit dem Präfix installiert /usr
.
Dies bedeutet, dass ausführbare Dateien, die vom Benutzer ausgeführt werden sollen, /usr/bin
oder /usr/sbin
(oder /usr/games
wenn es sich um ein Spiel handelt), gemeinsam genutzte Bibliotheken /usr/lib
, plattformunabhängige gemeinsam genutzte Daten /usr/share
, Header-Dateien /usr/include
und automatisch installierter Quellcode eingegeben werden /usr/src
.
Ein kleiner Prozentsatz der Pakete wird /
als Präfix verwendet. Zum Beispiel bash
fügt das Paket die bash
ausführbare Datei ein /bin
, nicht /usr/bin
. Dies gilt für Pakete, die das Nötigste bieten, um im Einzelbenutzermodus (z. B. im Wiederherstellungsmodus) ausgeführt und im Mehrbenutzermodus gestartet zu werden (denken Sie jedoch daran, dass dies häufig Funktionen zum Mounten einiger Arten von Netzwerkfreigaben enthält ... falls dies der Fall /usr
ist ein entferntes Dateisystem).
Ein kleiner Prozentsatz der .deb
Pakete, hauptsächlich der mit Quickly erstellten , erstellt einen paketspezifischen Ordner /opt
und legt alle ihre Dateien dort ab. Abgesehen davon wird meistens /opt
der Speicherort von Software verwendet, die von einem ausführbaren Installationsprogramm installiert wird, das den Paketmanager des Systems nicht verwendet, jedoch kein Kompilieren aus dem Quellcode umfasst. (Wenn Sie beispielsweise ein proprietäres Programm wie MATLAB installieren, werden Sie es wahrscheinlich einfügen /opt
.)
Wenn Sie im Gegensatz dazu ein Quellarchiv herunterladen (oder Quellcode von einem Revisionskontrollsystem wie Bazaar oder git abrufen), erstellen und installieren, wird es normalerweise mit dem Präfix installiert /usr/local
(es sei denn, Sie weisen es an, dies zu tun) Andernfalls). Dies bedeutet , dass Ihre ausführbaren Dateien gehen in /usr/local/bin
, /usr/local/lib
oder /usr/local/games
, Ihre Bibliotheken in /usr/local/lib
und so weiter.
Hiervon gibt es einige Ausnahmen - einige Programme werden standardmäßig mit dem /usr
Präfix installiert und überschreiben daher Installationen derselben Programme aus .deb
Paketen. In der Regel können Sie dies verhindern, indem Sie sie ausführen, ./configure --prefix=/usr/local
anstatt ./configure
sie zu erstellen. Ich betone noch einmal, dass dies normalerweise nicht notwendig ist.
(Aus diesem Grund ist es für Sie sehr sinnvoll, den von Ihnen erstellten Quellcode einzufügen /usr/local/src
, der für die systemweite Verwendung in dem zu diesem Zweck vorhandenen Code installiert wird .)
Angenommen, die gepackte Version ist installiert in /usr
und die Version, die Sie von der Quelle installiert haben, ist in /usr/local
:
Dateien aus dem installierten Paket werden nicht überschrieben.
In der Regel wird die neuere Version ausgeführt, wenn Sie das Programm manuell über die Befehlszeile aufrufen (vorausgesetzt, /usr/local/bin
oder wo immer die ausführbaren Dateien installiert sind, befindet sie sich in Ihrer PATH
Umgebungsvariablen und wird vor dem entsprechenden /usr
Verzeichnis mit Präfix angezeigt, z /usr/bin
.
Es kann jedoch einige Probleme geben, welche Starter durch Menüs oder Suchen erstellt und zugänglich gemacht werden. Wenn Sie mehr als eine Version einer Bibliothek an verschiedenen Orten installiert haben, kann es außerdem etwas komplizierter werden, zu bestimmen, welche von welcher Software verwendet wird.
Wenn Sie sich eigentlich nicht verwenden beide Versionen des Programms oder der Bibliothek, dann oft sollten Sie die man entfernen , dass Sie nicht verwenden, obwohl in bestimmten Situationen , die Sie möglicherweise eine Paketabhängigkeiten erfüllen installiert bleiben soll.
Wenn jedoch aus irgendeinem Grund Dateien überschrieben werden (z. B. wenn der Quellcode nicht installiert ist, /usr
sondern /usr/local
):
- Der Paketmanager weiß nichts darüber, wie die installierte Software geändert wurde. Es wird denken, dass die alte Version installiert ist. Dies kann zu schlimmen Problemen führen. Sie sollten dies vermeiden. Wenn Sie diese Situation erstellt haben, sollten Sie die von der Quelle installierte Software (normalerweise mit
sudo make uninstall
im Verzeichnis) deinstallieren und dann das Paket oder die Pakete deinstallieren, die die überschriebenen Dateien enthalten (da sie durch Deinstallation der installierten Version nicht wiederhergestellt werden) von der Quelle). Installieren Sie dann die gewünschte Version neu./usr/local/src/program-or-library-name
Wie zur Erfüllung von Abhängigkeiten:
Wenn es ein .deb
Paket gibt, das von der von der Quelle installierten Software abhängt und die von der Quelle (oder höher) installierte Version erfordert, wird dieses Paket nicht erfolgreich installiert. (Genauer gesagt, Sie können es möglicherweise "installieren", es wird jedoch nie "konfiguriert", sodass Sie es nicht verwenden können.) Abhängigkeiten werden durch die installierten Paketversionen gelöst, nicht durch Welche Software hast du eigentlich?
Ebenso wird die Software zumindest versuchen, vollständig zu installieren, selbst wenn Sie die von Paketen bereitgestellten Dateien, von denen die zu installierende Software abhängt, manuell gelöscht haben. (Sie sollten im Allgemeinen nicht versuchen, dies für irgendeinen Zweck zu nutzen. Der auf falschen Informationen basierende Paketmanager ist fast immer eine schlechte Sache.)
Wenn Sie daher kein Paket finden, das die Version der benötigten Software enthält, müssen Sie möglicherweise .deb
aus der von Ihnen kompilierten Software ein eigenes Paket erstellen und aus diesem Paket installieren. Dann weiß der Paketmanager, was los ist. Das Erstellen eines Pakets für den eigenen Gebrauch, das auf den Computern anderer Benutzer nicht gut funktioniert, ist eigentlich nicht sehr schwierig. (Aber ich bin der Meinung, dass dies möglicherweise außerhalb des Rahmens Ihrer Frage liegt, wie sie derzeit formuliert ist.)