So behalten Sie den Überblick über installierte Software

8

Hin und wieder muss ich eine Software aktualisieren, die auf einem unserer Testserver bei der Arbeit ausgeführt wird (meistens Debian). Was mich fast jedes Mal wirklich verwirrt, ist die Tatsache, dass es nicht nur einen Weg gibt, Software zu installieren. Heute musste ich Coffeescript aktualisieren. Ich wusste nicht, wie es ursprünglich installiert wurde und daher nicht, wie ich es am besten aktualisieren kann.

Es könnte mit apt oder manuell installiert worden sein, indem das github-Projekt geklont und alleine oder über den Paketmanager npm von nodejs erstellt wurde. Nachdem ich damit zu kämpfen hatte und alle Coffeescript-bezogenen Dateien und Verzeichnisse manuell weggeworfen hatte, gelang es mir, eine Neuinstallation durchzuführen. Aber dann wollte ich einen Coffeescript-Befehl verwenden, der die NodeJS 0.6 und 0.4 benötigt.

Also, lass die Spiele wieder beginnen!

Wurde nodejs manuell installiert? Oder als Paket? Oder wurde es von Gott dorthin gebracht? Ich weiß es nicht.

Ich frage mich also, ob es eine einfache Strategie gibt, installierte Software zu aktualisieren, wenn Sie nicht wirklich wissen, wie sie ursprünglich installiert wurde. Was sind hier die besten Ansätze?

Gipfel
quelle
2
Imho, der beste Ansatz ist, überhaupt nicht in diesen Zustand zu gelangen. Geben Sie an, dass die gesamte Software gepackt werden muss oder nicht installiert wird. Erstellen Sie das Paket bei Bedarf selbst. Dann legen Sie diese auf Ihren internen Paketserver.
Sirex

Antworten:

7

Es gibt eine einfache Regel, die Sie befolgen sollten, um die meisten Fälle zu lösen:

Niemals eine Datei unter /bin, /lib, /sbinoder /usr, es sei denn /usr/local, ohne die Paketmanager durchlaufen.

Wenn sich eine Datei in dem vom Paketmanager verwalteten Bereich befindet, wissen Sie auf diese Weise, dass sie aus einem Paket stammt. Wenn nicht, wissen Sie, dass Sie es manuell installiert haben.

Sie sollten sich nach Möglichkeit an die von Ihrer Distribution bereitgestellten Pakete halten. Installieren Sie Pakete von Drittanbietern nur, wenn Sie einen dokumentierten Bedarf an Funktionen haben, die nicht von der Distribution bereitgestellt werden. "Ich möchte die neueste Version haben" ist keine gültige Begründung. Wenn Sie Pakete von Drittanbietern installieren, notieren Sie sich, woher Sie sie haben, und archivieren Sie die Pakete ( .rpmoder .debDateien) irgendwo. Privilegierte oder leckere Quellen für zufällige Web-Downloads.

Verwenden Sie stow oder xstow für die Programme, die Sie manuell installieren.

Verwenden Sie etckeeper , um die /etcVersionskontrolle zu behalten . Übernehmen Sie bei jeder Änderung eine aussagekräftige Nachricht.


Wenn Sie in eine Situation geraten sind, in der Sie Dinge auf schmutzige Weise getan haben und den Überblick verloren haben, woher eine Software stammt:

  • Installieren Sie eine saubere Version dieser Software an der richtigen Stelle gemäß den obigen Hinweisen.
  • Testen Sie, ob die neue Installation für Ihre beabsichtigten Zwecke funktioniert.
  • Schalten Sie Ihre Dienste um, um die neue Installation zu verwenden.
  • Bereinigen Sie die alte Installation so gut Sie können.
Gilles 'SO - hör auf böse zu sein'
quelle
1

Ich kann Ihnen vorschlagen, die puppetzum Verfolgen der installierten Software unter Linux zu verwenden.

Puppet, eine automatisierte Verwaltungs-Engine für Ihre * nix-Systeme, führt Verwaltungsaufgaben (z. B. Hinzufügen von Benutzern, Installieren von Paketen und Aktualisieren von Serverkonfigurationen) basierend auf einer zentralisierten Spezifikation aus.

Sie können auf den Link verweisen

Mughil
quelle
Danke für den Link! Aber ich brauche etwas in der Kommandozeile. Auf den ersten Blick funktioniert Puppet nur auf einem Desktop-System.
Acme
1

Wenn Sie ein Paket mit apt-get installieren, werden alle abhängigen Pakete von selbst installiert, da apt-get alle Abhängigkeiten auflöst.

In meinem Fall versuche ich, jedes Paket über die Befehlszeile mit apt-get zu installieren, sofern sich das Paket in den Ubuntu-Repositorys befindet. Wenn es nicht in ihrem Repository vorhanden ist, müssen Sie das Installationshandbuch dieses Dienstprogramms lesen und es basierend darauf installieren, ob das Dienstprogramm Makefile oder etwas anderes verwendet.

pradeepchhetri
quelle