Ich möchte in der Lage sein, ein Programm in Linux zu verteilen, ohne die Quelle damit zu verteilen. Die aktuelle Lösung verteilt ein tar.gz mit einer vorkompilierten Binärdatei. Was ist der einfachste Weg, diese Binärdatei im Anwendungsmenü zu platzieren? Gibt es eine Möglichkeit, dies zu tun, die in den meisten Linux-Distributionen üblich ist, aber Ubuntu, Fedora und OpenSUSE wäre die Priorität.Verteilen eines Programms in Linux ohne die Quelle
Antwort
Sie wollen eine .deb und .rpm erstellen. Die erste deckt Ubuntu (Debian-Varianten) und die letzteren Red Hat-Varianten ab. Sie können auch eine eigenständige ausführbare Datei für andere Benutzer bereitstellen, die beispielsweise mit Menüs selbst arbeiten können.
Sie müssen sich mit Gnome und KDE-Menüverwaltung beschäftigen, und auch verschiedene Distributionen legen ihre Menüs anders aus. Es gibt auch das Problem von Netbook-Varianten wie Moblin, die eine Netbook-Schnittstelle haben, die wahrscheinlich ihren eigenen "Anwendung hinzufügen" -Mechanismus hat. Ich weiß nicht, ob es möglich ist, dass ein einziges .deb sowohl Gnome- als auch KDE-Menüsysteme (für Ubuntu bzw. Kubuntu) verarbeitet, aber ich stelle mir vor, dass die Fähigkeit vorhanden ist, Doppelarbeit für Ubuntu zu reduzieren.
Ich habe mich in letzter Zeit nicht damit befasst ... aber damals, als ich noch Linux benutzte, war RPM der einfachste Weg, vorkombinierte Binärdateien zu verteilen (die meisten Distributionen) hatte und hat noch eine Art Unterstützung für RPM-Pakete).
Hier ist ein alter how-to auf ein RPM-Paket Aufbau:
Versuchen Sie Autopackage oder andere Lösungen in einem anderen question.
Sie könnten BitRock intaller betrachten.
Ja, BitRock InstallBuilder ermöglicht es Ihnen auch, sowohl Binärdateien als auch RPM- und DEB-Pakete zu generieren. –
Tun Sie tar.gz und geben Sie dann Community-Rechte, um geänderte Pakete neu zu verteilen. Sie werden RPMs, DEBs und andere Pakete für ihre geliebten Distributionen erstellen ... die wahrscheinlich ihren Distributionen viel besser passen, als Sie jemals machen könnten.
Es gibt wirklich zu viele Unterschiede zwischen Distributionen, um ein Paket zu machen, das für alle passt, oft auch subtile. Zum Beispiel haben einige Verteilungen "Anwendung" Abschnitt, andere "Anwendung s" ... und diese gemachte Menüpunkte verschwinden auf einigen Distributionen. Bibliotheken können unterschiedlich sein, Standardeinstellungen können unterschiedlich sein, und so weiter ...
RPMs und DEBs sind nicht so tragbar, wie man glaubt. Bei einem Paket kann es sogar Probleme mit verschiedenen Versionen einer einzelnen Distribution geben, und es gibt nichts Schlimmeres, als zu versuchen, schlecht vorbereitete Pakete korrekt zu installieren.
Alle neuen Distributionen solltexdg-utils
installiert haben, welche Skripte wie
- xdg-desktop-icon
- xdg-desktop-menu
das, was zu sein scheinen, bietet Ihnen Ich suche nach.
Ich würde Ihnen +2 geben, wenn ich direkt auf die Frage antworten könnte und nicht auf die Verpackungstangente, die alle anderen haben. – camh
JeeBee ist richtig, dass Sie mit .deb oder .rpm gehen möchten.
Für Ubuntu/Debian (die.deb) Ich würde hinzufügen, dass Sie es nicht an Leute senden, aber Sie erstellen ein "Repository" und lassen Sie die Benutzer diese URL zu ihrer /etc/apt/sources.list hinzufügen, dann erhalten Sie eine einfache Möglichkeit, die Software zu aktualisieren .
Auf diese Weise lösen Sie die Verteilung und aktualisierten Problem zur gleichen Zeit.
Und hier ist ein Beispiel dafür, wie diese aussehen könnte:
Und wie ein Repository könnte wie folgt aussehen:
Aber nicht wiederhole den Fehler von Atmels und tue nur i386, weil es im Moment viele andere gebräuchliche Architekturen gibt, wie die amd64.
/Johan
Für RPM Dieses dreiteilige Tutorial von IBM ist Handbuch für den besten Anfänger bis hin zur Verpackung weiß ich:
http://www.ibm.com/developerworks/library/l-rpm1/
http://www.ibm.com/developerworks/library/l-rpm2/
http://www.ibm.com/developerworks/library/l-rpm3.html
- 1. Installieren eines Python-Programms unter Linux
- 2. Verteilen von Software unter Linux?
- 3. Erweiterungsmodul als Quelle mit setuptools verteilen
- 4. dquote> Ergebnis einer Ausführung eines Programms in Linux-Shell
- 5. Speicher außerhalb eines Programms ohne Segmentfehler lesen
- 6. Python: Öffnen eines Programms in einem neuen Terminal [Linux]
- 7. Ausführen eines C-Programms zum Sichern von Linux-Dateien
- 8. Verteilen Sie eine Anwendung an die Öffentlichkeit, so dass sie kompilieren können, ohne die Quelle zu offenbaren
- 9. Wie liest man die Eingabe eines Fortran-Programms in einer Zeile (ohne den Quellcode zu ändern)?
- 10. Linux sendfile Quelle
- 11. Verteilen einer Python-Software für Linux
- 12. Arbeitsverzeichnis eines anderen Programms ermitteln
- 13. Töten eines Programms mit Multiprocessing
- 14. Ausführen eines Programms in Java-Code
- 15. Beenden eines Programms in Python
- 16. Erstellen eines Programms in R
- 17. Schlechter Look eines gtkmm Programms
- 18. Gibt es ein Linux-Tool kann die Prozessablaufverfolgung eines Python-Programms finden?
- 19. Wie erhalten Sie die Prozess-ID eines Programms in Unix oder Linux mit Python?
- 20. Die Funktionen eines anderen Programms aufrufen?
- 21. Halten eines Batch-Programms
- 22. Schreiben eines modularen Programms
- 23. Stoppen eines Python-Programms
- 24. Ausführen eines Clojure-Programms
- 25. Ausgabe eines Multithread-Programms
- 26. Ausgabe eines C-Programms
- 27. Verteilen eines plattformübergreifenden python3-Skripts
- 28. Wie Debuggen eines Programms, wenn es ohne Ausnahme abstürzt?
- 29. Linux/X11 Eingabebibliothek ohne Erstellen eines Fensters
- 30. Wie Debuggen eines Java-Programms ohne Verwendung einer IDE?
+1 ... I vergaß alles über die Debian-Welt. Schande über mich. –