Wie verwalte ich Software, die von der Quelle aus installiert wurde?

14

Von Zeit zu Zeit müssen wir aus verschiedenen Gründen möglicherweise etwas von der Quelle installieren. Zwar ist die Installation von Software bei entsprechenden Abhängigkeiten ein Standard, für mich ist jedoch nicht klar, wie eine solche Installation für die Zukunft zu verwalten ist.

Genauer:

  1. Was können wir tun, um eine einfache und saubere Deinstallation zu gewährleisten (einschließlich der Abhängigkeiten, die direkt vor und nur für die von der Quelle installierte Software installiert wurden)?

  2. Was können wir tun, um ein einfaches und sauberes Upgrade derselben Software zu gewährleisten, die wahrscheinlich erneut von der Quelle installiert wird?

  3. Was können wir tun, um potenzielle Konflikte zu minimieren, wenn ein Standardpaket (mit apt-get installiert) sowie die (neuere) Version des Pakets (von der Quelle installiert) vorhanden sind?

skyork
quelle

Antworten:

8

Mit checkinstall make installwird ein temporäres Paket erstellt und installiert. Dies bedeutet, dass es im Paketmanager aufgezeichnet wird und deinstalliert werden kann.

user54114
quelle
7

Das Beste wäre, Debian-Pakete der neueren Versionen selbst zu erstellen. dpkgund die aptTools erledigen alle drei Dinge, die Sie erwähnen und die für diesen Zweck vorgesehen sind. Verwenden Sie sie, anstatt das Rad neu zu erfinden. Auf der Verpackung gibt es viele Anleitungen. Wenn die Software bereits in den Repositorys vorhanden ist, können Sie wahrscheinlich das Quellpaket ( apt-get src) erhalten, mit dem Sie Ihr eigenes Paket untersuchen und starten können.

Diese Antwort auf /ubuntu//a/485230/158442 kann als allgemeine Richtlinie hilfreich sein.

Obwohl dies checkinstalleine schnelle und schmutzige Lösung ist, sollten Sie auf lange Sicht die richtige Verpackung verwenden.

muru
quelle
danke für die vorschläge. Wenn Sie sagten, dass die Software bereits in den Repositorys vorhanden ist, gehe ich davon aus, dass Sie die offiziellen Repositorys meinen, die von Ubuntu verwaltet werden. Wenn ja, bieten diese Repositories in vielen Fällen keine neueren Versionen, insbesondere nicht in älteren Ubuntu-Versionen. So apt-get srckönnen sich wahrscheinlich nicht in solchen Fällen helfen.
Skyork
@skyork vielleicht nicht. Sie können jedoch Pakete älterer Versionen zum Lernen verwenden. Möglicherweise haben die Packager einige Anpassungen vorgenommen, einige benutzerdefinierte Wartungsskripte. Es gibt keinen Grund, das alles zu ignorieren und von vorne zu beginnen. Das Rad neu zu erfinden scheint hier ein Thema zu sein.
muru
4

Zunächst hängt viel davon ab, wie Sie Ihre Quellcodes verwalten. Ich ~/sourceserstelle ein Verzeichnis wie und füge jedes Programm in seine Unterverzeichnisse ein, während andere für jedes Programm ein neues Verzeichnis erstellen.

In ähnlicher Weise erstellen einige wie ich ein neues Unterverzeichnis für jede neue Version und entfernen ältere Versionen nur, wenn sichergestellt ist, dass in der neuen Version keine wesentlichen Fehler vorhanden sind, die meine Arbeit beeinträchtigen könnten.

Es gibt keine einzige Möglichkeit, dies zu tun. Wählen Sie jedoch eine für Sie am einfachsten zu handhabende Methode .

  1. Saubere Deinstallation

    • Ich würde vorschlagen, ein rem_dep.shSkript zu erstellen, das so aussieht.

      #! /bin/bash
      sudo apt-get remove dep1 dep2 ... depn
      

      Wo dep1, dep2, depnsind Abhängigkeiten?

  2. Sauber und einfach zu aktualisieren

    • Wenn Sie Quellcode von einem automatisierten Versionssystem wie gitoder erhalten bazaaroder wenn die Verknüpfungen vorhersehbar sind, können Sie ein Shell-Skript erstellen, das dies ermöglicht

      #1 make a backup of earlier version
      #2 get new source
      #3 configure, build/make the source
      #5 if make went correctly, remove earlier version.
      #6 make install new version, update dependencies if required.
      
    • Auch in anderen Fällen können Sie solche Skripte teilweise manuell erstellen.

  3. Konfliktverwaltung

    • Der beste Weg ist, die --prefixOption während der Installation von Software und deren Abhängigkeiten zu verwenden.
    • Eine weitere wichtige Aufgabe ist es, Ihr System auf dem neuesten Stand zu halten, um Konflikte zu minimieren.

HINWEIS: Wenn Sie feststellen, dass Sie mehr Software kompilieren, als Sie sollten (setzen Sie einen max_limitfür sich selbst, wie 5 oder 10 oder 100), verlassen Sie am besten Ubuntu und wechseln Sie zu Arch Linux.

registrierter Nutzer
quelle
3

Abhängigkeiten aufbauen:

  • AFAIK sollten sie manuell aufgezeichnet werden. Sie können eine Datei wie README erstellen, um eine Liste der manuell installierten Abhängigkeiten zu speichern.

  • Wenn diese Software bereits eine Binärdatei in Ubuntu- oder PPA-Repositorys enthält. Das Verfolgen von Abhängigkeiten während der Installation sollte einfacher sein:

    sudo apt-get build-dep target_package
    

Saubere Deinstallation:

Behalten Sie den konfigurierten und installierten Quellordner. Besser, wenn Sie alle Quellen in einem bestimmten Ordner mit der Datei der installierten Abhängigkeiten sammeln.

Bereinigen Sie das Upgrade und die Isolierung der installierten Dateien:

Installieren Sie sie in bestimmten --prefix(vorzugsweise --prefix=/opt/software_name-version/).

Dies wird viele Probleme lösen: gleichzeitige Versionen mit denen aus dem Repository; sauberes Upgrade; einfacher für die schmutzige Deinstallation, falls die Quelle gelöscht wurde.

Anspruchsvoller oder der beste Weg, wie @muru antwortet: Ein Debian-Paket erstellen (Für Pakete, die in Ubuntu / PPA-Repositories verfügbar sind)

user.dz
quelle