FACTOID # 138: Libya’s full name is the Great Socialist People’s Libyan Arab Jamahiriya.
 
 Home   Encyclopedia   Statistics   Countries A-Z   Flags   Maps   Education   Forum   FAQ   About 
 
WHAT'S NEW
RECENT ARTICLES
More Recent Articles »
 

SEARCH ALL

FACTS & STATISTICS    Advanced view

Search encyclopedia, statistics and forums:

 

 

(* = Graphable)

 

 


Encyclopedia > Dependency hell

Dependency hell is a colloquial term for the frustration of some software users who have installed software packages which have dependencies on specific versions of other software packages. A software package is a bundle of one or several files that either are necessary for the execution of a computer program, or add features for a program already installed on the computer or network of computers. ... In computer science, dependency or coupling is the degree to which each program module relies on each other module. ... This article is about changes or modifications in computer software. ...


Overview

Often, rather than 'reinventing the wheel', software is designed to take advantage of other software components that are already available, or have already been designed and implemented for use elsewhere. This could be compared to how people building a house might buy off-the-shelf components, such as bricks, windows, and doors, rather than building everything themselves. Even for a builder, it can be a problem if a building is designed for a certain door type, and only doors with different specifications are available. However, in the software world, where components evolve rapidly, and components are often dependent on other components, this problem is more pronounced. Reinventing the wheel is a phrase that means a generally accepted technique or solution is ignored in favour of a locally invented solution. ... Software component representations: above the representation used in UML, below the representation commonly used by Microsofts COM objects. ... Commercial off-the-shelf (COTS) is a term for software or hardware products that are ready-made and available for sale to the general public. ... In engineering and manufacturing, the term specification has the following meanings: Technical requirement An essential technical requirement for items, materials, or services, including the procedures to be used to determine whether the requirement has been met. ...


On some specific computing platforms, "dependency hell" may go by another name, reflecting the specific packages or software that has a dependency conflict. For example, on Windows, the term DLL hell is used, reflecting the fact that most problems occur when a program tries to access an underlying DLL software component. In computing, a platform describes some sort of framework, either in hardware or software, which allows software to run. ... 1. ... DLL hell is a colorful term given to any problem based on a difficulty in managing Dynamically Linked Libraries (DLLs) installed on a particular copy of an operating system. ... A computer program is a collection of instructions that describe a task, or set of tasks, to be carried out by a computer. ... This article is about dynamic libraries implemented by Microsoft. ...


The issue of dependency hell may be regarded as an anti-pattern, where the fault lies less with the suppliers of the products than with the framework into which they have to fit. Anti-patterns, also referred to as pitfalls, are classes of commonly-reinvented bad solutions to problems. ...


The most obvious (and very common) solution to this problem is to have a standardised numbering system, wherein software uses a specific number for each version (aka major version), and also a subnumber for each revision (aka minor version), e.g.: 10.1, or 5.7. The major version only changes when programs that used that version will no longer be compatible. The minor version might change with even a simple revision that does not prevent other software from working with it. In cases like this, software packages can then simply request a component that has a particular major version, and any minor version. As such, they will continue to work, and dependencies will be resolved successfully, even if the minor version changes. This article is about changes or modifications in computer software. ... A maintenance release (also minor release) is a release of a product that does not add new features or content. ... The term compatibility has the following meanings: In telecommunication, the capability of two or more items or components of equipment or material to exist or function in the same system or environment without mutual interference. ...


Some package managers can perform smart upgrades, in which interdependent software components are upgraded at the same time, thereby resolving the major number incompatibility issue too. A package management system is a collection of tools to automate the process of installing, upgrading, configuring, and removing software packages from a computer. ...


Many current Linux distributions have also implemented repository-based package management systems to try to solve the dependency problem. These systems are a layer on top of the RPM, dpkg, or other packaging systems that are designed to automatically resolve dependencies by searching in predefined software repositories. Typically these software repositories are FTP sites or websites, directories on the local computer or shared across a network or, much less commonly, directories on removable media such as CDs or DVDs. This eliminates dependency hell for software packaged in those repositories, which are typically maintained by the Linux distribution provider and mirrored worldwide. Although these repositories are often huge it is not possible to have every piece of software in them, so dependency hell can still occur. In all cases, dependency hell is still faced by the repository maintainers. Examples of these systems include Apt, Yum, Urpmi, Portage and others. Linux (IPA pronunciation: ) is a Unix-like computer operating system family. ... A software distribution is a installer of a specific software (or a collection of multiple, even an entire operating system) , already compiled and configured. ... A digital library is a library in which collections are stored in digital formats (as opposed to print, microform, or other media) and accessible by computers. ... RPM Package Manager (originally Red Hat Package Manager, abbreviated RPM) is a package management system. ... dpkg is the base of the Debian package management system. ... “FTP” redirects here. ... In computing, a directory, catalog or folder,[1] is an entity in a file system which contains a group of files and/or other directories. ... // Look up network in Wiktionary, the free dictionary. ... A mirror in computing is a direct copy of a data set. ... Advanced Packaging Tool, or APT, is a package management system used by Debian and its derivatives. ... The Yellow Dog Updater, Modified (yum for short) acts as a package manager for RPM-compatible Linux computer systems. ... urpmi is a Mandrake Linux package management tool for installing, removing, updating and querying software packages of local or remote (networked) media. ... Portage is an advanced package management system. ...


Because different pieces of software have different dependencies, it is possible to get into a vicious circle of dependency requirements, or (possibly worse) an ever-expanding tree of requirements, as each new package demands several more be installed. Systems such as Debian's APT can resolve this by presenting the user with a range of solutions, and allowing the user to accept or reject the solutions they prefer or dislike, respectively. Vicious Circle is an album released in 1995 by L.A. Guns. ... This article is about engineering. ... A tree structure is a way of representing the hierarchical nature of a structure in a graphical form. ... Advanced Packaging Tool, or APT, is a package management system used by Debian and its derivatives. ...


See also


  Results from FactBites:
 
Dependency hell - Wikipedia, the free encyclopedia (574 words)
Dependency hell is a colloquial term for the frustration of many users who have installed Linux software packages which have dependencies on specific versions of other packages.
Because different pieces of software have different dependencies (the most common being different compiler versions), this often leads to a conflict between the software that is required and the software that is installed.
Though the concept of dependency hell has been very common since the rise of package managers, it's actually about as old as Unix itself.
  More results at FactBites »


 

COMMENTARY     


Share your thoughts, questions and commentary here
Your name
Your comments
Please enter the 5-letter protection code

Want to know more?
Search encyclopedia, statistics and forums:

 


Lesson Plans | Student Area | Student FAQ | Reviews | Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms.