Definition „Abhängigkeit“

Was ist eine Dependency?

| Autor / Redakteur: chrissikraus / Stephan Augsten

Insbesondere bei Installationen, Deinstallationen und Software-Updates sowie OS-Upgrades unter Linux kommt man mit Abhängigkeiten in Berührung.
Insbesondere bei Installationen, Deinstallationen und Software-Updates sowie OS-Upgrades unter Linux kommt man mit Abhängigkeiten in Berührung. (Bild: Augsten / Fedora Silverblue)

Eine Dependency oder Abhängigkeit beschreibt in der Softwareentwicklung, dass ein Programm ein bestimmtes Stück Code (z. B. Frameworks, Bibliotheken) benötigt, um ordnungsgemäß zu funktionieren.

Von Dependencies oder Abhängigkeiten ist dann die Rede, wenn ein Programm externe Software oder Bibliotheken benötigt, um wie geplant zu funktionieren. Diese externen Komponenten werden auch als Pakete bezeichnet.

Alle Pakete, die eine Software benötigt, um lauffähig zu sein, müssen bei der Installation dieser Software mit installiert werden – sonst funktioniert das Programm nicht korrekt. Hier spricht man auch vom Auflösen der Abhängigkeiten. Häufig muss z. B. ein bestimmtes Framework zusätzlich zur eigentlichen Software installiert werden, damit das Programm richtig genutzt werden kann.

Verwaltung von Abhängigkeiten

Package Manager oder Paketmanager sind Tools, die unter anderem dabei helfen, die Abhängigkeiten in einer Software übersichtlich zu verwalten. Unter anderem erleichtern sie die Installation neuer Pakete und helfen dabei, Pakete aktuell zu halten oder zu entfernen. Die Alternative wäre, alle benötigten Pakete manuell zu verwalten. Bei kleineren Projekten mit wenigen Abhängigkeiten ist der Aufwand hierfür im Rahmen, doch bei größeren Projekten fehlt ohne Paketmanager schnell der Überblick.

Vorteile durch die Nutzung von Abhängigkeiten

Die Nutzung externer Pakete spart dem Entwickler Arbeit und Zeit. Denn häufig gibt es bereits ausgereifte Lösungen für alltägliche Probleme von einem Drittanbieter, welche einfach in ein beliebiges Projekt mit eingebunden werden können.

Ebenso ist es möglich, innerhalb eines Unternehmens bestimmte Funktionalitäten auszulagern und als Pakete für verschiedenste Projekte bereitzustellen. So kann z. B. eine einheitliche Vorgehensweise für bestimmte Aufgaben erwirkt werden oder ganz allgemein Entwicklungszeit für wiederkehrende und projektübergreifende Aufgaben gespart werden.

Durch die Nutzung von Abhängigkeiten wird der selbst verfasste Code schlanker und übersichtlicher. Denn statt den gesamten Funktionsumfang selbst zu programmieren, kann sich der Entwickler weitestgehend auf die projektspezifischen Funktionen konzentrieren.

Nachteile durch die Nutzung von Abhängigkeiten

Ein Nachteil ist, dass beim Fehlen eines erwarteten Pakets Fehler in der Software auftreten können. Diese Fehler reichen von unerwartetem Verhalten bis zum Verlust der Funktionsfähigkeit. Wenn z. B. eine Abhängigkeit nicht oder fehlerhaft aufgelöst wurde, funktioniert das Programm nicht und muss unter Umständen komplett neu installiert werden.

Ebenfalls kritisch können automatisch aktualisierte Pakete von Drittanbietern sein: Wenn zwischen der Version, die zur Entwicklung genutzt wurde, und der aktuelleren Version drastische Änderungen bestehen, kann es zu unerwartetem Verhalten kommen. Es kann z. B. passieren, dass eine bestimmte Funktion in der neuesten Version des Pakets nicht mehr zur Verfügung stehen oder leicht abgewandelte Ergebnisse liefern. Im Idealfall sollte so etwas vom Herausgeber des Pakets so gut wie möglich vermieden werden, aber eine Garantie gibt es hierfür nicht.

Kommentare werden geladen....

Kommentar zu diesem Artikel

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Aktuelle Beiträge zu diesem Thema

GitLab ab sofort in Version 13.0 verfügbar

Update für DevSecOps-Plattform

GitLab ab sofort in Version 13.0 verfügbar

Die DevSecOps-Plattform GitLab hat das Release von Version 13.0 vollzogen. Es bietet zahlreiche neue Funktionen rund um Development, Planning, Analytics, Operations und Sicherheit. lesen

Perforce hilft beim Technologie-Stack-Aufbau

OpenLogic Stack Builder verfügbar

Perforce hilft beim Technologie-Stack-Aufbau

Mit dem OpenLogic Stack Builder bietet Perforce ab sofort ein kostenloses Online-Tool für die Einführung von Open-Source-Software an. Es hilft beim Bau von Technologie-Stacks und stellt dazu einen interaktiven Fragenkatalog und Ratschläge bereit. lesen

Open-Source-Abhängigkeiten automatisiert verwalten

Snyk und Neighbourhoodie schließen Partnerschaft

Open-Source-Abhängigkeiten automatisiert verwalten

Der auf sichere Entwicklung spezialisierte Anbieter Snyk arbeitet künftig mit Neighbourhoodie zusammen. Zu aktualisierende Open-Source-Abhängigkeiten sollen dadurch vor potenziellen Schwachstellen geschützt werden. lesen

Container Orchestration Tools im Vergleich

Die Konsolidierung der Cloud

Container Orchestration Tools im Vergleich

Seit Docker das Licht der IT-Welt erblickte, haben Container die DevOps-Idee revolutioniert. Dazu bedarf es eines Container-Clusters nebst zugehöriger Verwaltungsinstrumente wie Google Kubernetes. Hier klären wir die Zusammenhänge von Containern, Docker, DevOps und Cloud-native Computing. lesen

6 Empfehlungen von Veeam für IT-Entscheider

Techniktrends 2020

6 Empfehlungen von Veeam für IT-Entscheider

Von den ersten 5G-Projekten bis zu den Einsatzmöglichkeiten künstlicher Intelligenz (KI) – 2019 war für Unternehmen ebenso für wie öffentliche Institutionen ein weiteres Jahr mit rasantem Technologiewandel. Aus IT-Sicht gibt es zwei wesentliche Trends, die sich auch im Jahr 2020 fortsetzen werden: On-Premises und Public Cloud nähern sich von der Relevanz an, Cloud wird zum „normalen“ Bereitstellungsmodell. lesen

Ausfallsicherheit mit Cloud Foundry

Cloud-agnostische Softwareentwicklung, Teil 2

Ausfallsicherheit mit Cloud Foundry

Cloud Foundry verspricht Entwicklern die Flexibilität Cloud-agnostischer Anwendungsportabilität, den Heiligen Gral der Hochverfügbarkeit. Doch die Befreiung vom Vendor-Lock-In erfordert Disziplin und neue Ansätze der Qualitätssicherung. lesen

Geld mit Open Source verdienen

Quelloffene Projekte als Einnahmenquelle

Geld mit Open Source verdienen

Open-Source-Code ist qualitativ meist gleichauf mit kommerziellen Projekten. Trotzdem gibt es Firmen, die mit ihrer Software scheinbar nie auf einen grünen Zweig kommen. lesen

Bundesbehörden sollen Open Source bevorzugen

Beschaffung quelloffener Software

Bundesbehörden sollen Open Source bevorzugen

Bundesbehörden sollen bei IT-Ausschreibungen künftig auf die Verwendung vollständig quelloffener Betriebssysteme und Anwendungen bestehen. So will es der Petitionsausschuss des Bundestags. lesen

Vorteile der verteilten Datenhaltung

Dokumentorientierte NoSQL-Datenbanken, Teil 2

Vorteile der verteilten Datenhaltung

Die verteilte Datenhaltung von NoSQL-Plattformen bietet einige Vorteile, darunter Hochverfügbarkeit, Workload Isolation und Datenlokalität. Wie die Technik dahinter funktioniert, schauen wir uns hier genauer an. lesen

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de/ (ID: 46331304 / Definitionen)