Ein großer Teil meiner täglichen Arbeit ist die Entwicklung von Software für den Einsatz auf Maschinen mit unterschiedlichen Versionen der gleichen Software, wie bash
, find
und grep
. Wenn Sie auf eine Funktion stoßen, die beispielsweise zur Vereinfachung von Code nützlich wäre, ist es wichtig zu wissen, ob diese Funktion in den ältesten installierten Tools verfügbar ist. Für kritische Dinge wäre es auch nützlich zu wissen, ob diese Funktion neu war oder seit Jahren in den ältesten installierten Tools vorhanden ist.
Was sind schnelle Möglichkeiten, dies für Linux-Tools, insbesondere die GNU Core Utils, maßgeblich zu beantworten ? Einige Möglichkeiten in der Reihenfolge abnehmender Genauigkeit:
- Die binäre binäre Suche (sic) durch Ausführen der verschiedenen Versionen ist natürlich die ultimative Antwort, aber bei weitem die zeitaufwändigste. Ältere Installationen sind aus Sicherheitsgründen häufig nicht verfügbar.
- Das Lesen des Codes ist fast genauso gut, aber es kann unerschwinglich zeitaufwändig sein, wenn die Funktion vage benannt ist, der Name nicht direkt mit Variablen- / Funktions- / Objektnamen übereinstimmt oder vor der Aktivierung implementiert wurde.
- Änderungsprotokolle, sofern verfügbar, verbinden normalerweise Funktionsänderungen mit Softwareversionen.
- Commit-Protokolle können Hinweise enthalten, wissen jedoch nicht, in welcher Version sie enthalten sein werden.
- Manpages erwähnen selten Daten.
- Gleiches gilt für das Googeln , und es fällt Ihnen auch schwer, alle nicht autorisierenden Quellen auszuschließen.