Ist es sicher, die nach den Standards benannte .deb-Datei umzubenennen?

13

Die festgelegte Struktur des .debDateinamens lautet package_version_architecture.deb.
Nach diesem Absatz:

Einige Pakete folgen nicht der Namensstruktur package_version_architecture.deb. Von dpkg-name umbenannte Pakete folgen dieser Struktur. Im Allgemeinen hat dies keine Auswirkungen darauf, wie Pakete von dselect / dpkg installiert werden. Andere Installationstools hängen jedoch möglicherweise von dieser Namensstruktur ab.

Frage:

Allerdings gibt es keine realen Situationen , wenn die Umbenennung .debPaketdatei ist sehr un empfohlen? Ist es üblich, einen benutzerdefinierten .debDateinamen für meine Software anzugeben?

Beispiel:

  • My Program for Linux v1.0.0 (Pro).deb - die benutzerdefinierte Benennung
  • my-program_1.0.0-1_amd64.deb - die ordnungsgemäße offizielle Benennung

Hinweis:

Ich habe nicht vor, ein Repo zu erstellen. Ich hosten nur das .debPaket meiner Software auf meiner Website zum direkten Download.

kefir500
quelle
8
Bitte verwenden Sie aus Liebe zu allem Heiligen keine Leerzeichen oder Klammern in Ihren Dateinamen. Sie machen es schwierig, sie von der Kommandozeile aus zu handhaben, und sind eine potenzielle Quelle für Fehler im Umgang mit Dateien.
Austin Hemmelgarn

Antworten:

26

Im Laufe der Jahre habe ich eine große Anzahl von .debPaketen mit nicht standardmäßigen Namen gesammelt , und ich kann mich nicht erinnern, auf irgendwelche Probleme gestoßen zu sein. Zu den "berühmten" Paketen mit ungewöhnlichen Namen, auf die die Leute heutzutage stoßen, gehören google-chrome-stable_current_amd64.debund steam.deb. (In beiden Fällen stellt der feste, versionslose Name sicher, dass für Downloads eine stabile URL und für Installationsanweisungen ein stabiler Name verwendet werden kann.)

Ich erinnere mich jedoch nicht, dass ich mit Leerzeichen in ihren Namen auf jemanden gestoßen bin . Dies sollte auch keine Probleme mit Tools verursachen, kann aber zu Verwirrung bei Ihren Benutzern führen (da sie den Dateinamen in Anführungszeichen setzen oder die Leerzeichen entfernen müssen, wenn sie Shell-basierte Tools verwenden).

Ein weiterer zu beachtender Punkt ist, dass die Verwendung eines nicht standardmäßigen Namens, der nicht mit Ihrem Paketnamen übereinstimmt (wie in der controlDatei gespeichert ), ebenfalls Verwirrung stiften kann, z. B. beim Versuch, das Paket zu entfernen (da der Paketname nicht lautet) derselbe wie der Name, der für die Installation verwendet wurde).

Infolgedessen würde ich, wenn Sie sich nicht an den kanonischen Namen halten möchten, so etwas wie my-program.deboder empfehlen my-program_amd64.deb(je nachdem, ob Sie mehrere Architekturen unterstützen möchten). Sie können dies auch zu einem Symlink auf den versionierten Dateinamen machen, wenn Sie das Herunterladen älterer Versionen zulassen möchten.

Stephen Kitt
quelle
"Eine stabile URL kann für Downloads verwendet werden" - Ich wäre überrascht, wenn Google und Valve noch nie von Weiterleitungen gehört hätten.
OrangeDog
@OrangeDog würde ich auch. Ein fester Download (ohne Umleitung) vereinfacht die Dinge immer noch (da beim Umleiten der endgültige Dateiname auf der Festplatte je nach dem zum Herunterladen verwendeten Tool leider unterschiedlich ist).
Stephen Kitt
10

Die Dateinamen sind hauptsächlich zum Nutzen der Archivverwaltungssoftware und des lokalen Caches standardisiert.

In früheren Zeiten, bevor die m68kArchitektur zu Debian hinzugefügt wurde, verwendeten die Dateinamen " package _ version .deb", ohne Probleme. Die Architektur Name wurde den Dateinamen hinzugefügt , wenn die Archiv - Software zum Speichern benötigt i386und m68kPaketen aus dem gleichen Paket und Version im selben Verzeichnis. Da die Paketliste immer sowohl lange als auch 8.3-Dateinamen enthielt , konnte dies implementiert werden, ohne die Clients zu beschädigen.

Dpkg kümmert sich im Allgemeinen überhaupt nicht um die Dateinamen von Paketen. Während der Installationsläufe generiert APT ein Verzeichnis mit allen Paketdateien für diesen Installationslauf, und jeder Datei wird die Nummer des aktuellen Laufs vor dem Dateinamen vorangestellt (dh, wenn Sie Paketversion foo1 und Paketversion bar2 installieren , was foodavon abhängt) wird apt übergeben 0-bar_2_all.debund 1-foo_1_amd64.deban dpkg).

APT geht im Allgemeinen davon aus, dass Namen für Caching-Zwecke eindeutig sind. Wenn Sie einen Namen wiederverwenden, versuchen Benutzer, die diese Datei bereits im Cache haben, den Download fortzusetzen, wenn die neue Datei größer ist. Dies führt zu einer ungültigen Datei, die anschließend verworfen wird, wenn der Prüfsummentest fehlschlägt. Dieser Fehler wird dem Benutzer jedoch angezeigt und er muss den Installationslauf neu starten.

Simon Richter
quelle