Was sind *-devel-Pakete?

Lesezeit: 2 Minuten

Benutzeravatar von Variance
Varianz

Welchen Nutzen haben Entwicklungspakete wie “libgtk+-devel” oder “python-devel” usw.? Enthalten sie Quelle der Bibliothek? Wie unterscheidet es sich von Nicht-Entwicklungspaketen wie libgtk+?

  • Es lohnt sich nicht, eine weitere Antwort zu öffnen, aber zusätzlich zu den vorhandenen Antworten sollte ich betonen, dass Paketierer versuchen, ein Nicht-Entwicklungspaket wie z libgtk+ der minimale Footprint, der zum Ausführen (im Gegensatz zum „Entwickeln“) von gtk+-Programmen erforderlich ist. Das bedeutet nur dynamische Bibliotheken und Konfigurationsdateien. Alles andere geht in die Ergänzung -devel Paket.

    – Pascal Cuoq

    2. März 2010 um 4:33 Uhr

Benutzeravatar von Joachim Sauer
Joachim Sauer

Das *-devel Pakete (normalerweise als *-dev in Debian-basierten Distributionen) sind normalerweise alle Dateien, die zum Kompilieren von Code für eine bestimmte Bibliothek erforderlich sind.

Zum Ausführen einer Anwendung unter Verwendung der Bibliothek libfoo nur die tatsächlich gemeinsam genutzte Bibliotheksdatei (*.so.*zum Beispiel libfoo.so.1.0) werden benötigt (plus möglicherweise einige Datendateien und einige versionspezifische symbolische Links).

Wenn Sie tatsächlich eine C-Anwendung kompilieren möchten, die diese Bibliothek verwendet, benötigen Sie die Header-Dateien (*.hzum Beispiel foo.h), die die Schnittstelle dieser Anwendung beschreiben, sowie einen versionlosen symbolischen Link zur gemeinsam genutzten Bibliothek (*.sozum Beispiel libfoo.so -> libfoo.so.1.0). Diese sind normalerweise in der gebündelt *-devel Pakete.

Manchmal die *-devel Pakete enthalten auch statisch kompilierte Versionen der Bibliotheken (*.azum Beispiel libfoo.a) für den Fall, dass Sie eine vollständige eigenständige Anwendung erstellen möchten, die überhaupt nicht von dynamischen Bibliotheken abhängt.

Andere Sprachen (wie Java, Python, …) verwenden eine andere Art, die API einer Bibliothek zu notieren (effektiv einschließlich aller notwendigen Informationen in der eigentlichen Bibliothek) und benötigen daher normalerweise keine separate *-devel Pakete (außer vielleicht für Dokumentation und zusätzliche Tools).

  • Fast. das .so Datei befindet sich im Paket -devel; die normale gemeinsam genutzte Bibliothek geht vorbei .so.*, da es einen SONAME enthält. Das .so Datei wird vom Linker verwendet, und die .so.* Bibliothek wird zur Laufzeit verwendet.

    – Ignacio Vazquez-Abrams

    2. März 2010 um 4:48 Uhr

  • Sie benötigen also im Grunde die * Entwicklungsbibliotheken der betreffenden Anwendung, wenn es sich um eine Abhängigkeit von einer anderen Anwendung handelt, da Sie die Schnittstelle verfügbar machen müssen?

    – Oh

    31. Juli 2018 um 9:54 Uhr

  • @ohhh: nein. Sie benötigen diese Pakete nur, wenn Sie kompilieren etwas, das diese Bibliothek braucht. Wenn ein Paket Verwendet Diese Bibliothek brauchen Sie dann nicht -devel Paket. Mit anderen Worten: Die meisten normalen Benutzer werden das nie brauchen -devel Paket, aber Entwickler könnten.

    – Joachim Sauer

    26. Juli 2021 um 8:53 Uhr

Sie enthalten normalerweise notwendige Header und Bibliotheken. Beispielsweise stellt python-devel die Python-Header und -Bibliotheken bereit, die Sie benötigen, wenn Sie den Python-Interpreter in Ihre eigene Anwendung einbetten möchten. Einige zusätzliche Tools und Dokumentationen sind ebenfalls enthalten (z. B. ein Entwicklerhandbuch oder Codebeispiele).

  • Sind Tools wie pyinstaller ein Beispiel dafür? Da AFAIK-Freezer auch einen Python-Interpreter in das von ihnen erstellte Bundle einbetten, haben Sie genau das hier gesagt.

    – aderchox

    7. August 2020 um 19:32 Uhr

1413510cookie-checkWas sind *-devel-Pakete?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy