21-04-2021



  1. Dependencies C++
  2. Dependencies Vs Devdependencies
  3. Spring Boot Dependencies
  4. Dependencies Definition

Automatic dependency resolution is one of the most useful featuresprovided by emerge.

Dependency means say component A is dependent on component B. If component B changes, then A should change accordingly. Here, a component can be a class, a function, an interface, a method or even a field. Dependencies in DBMS is a relation between two or more attributes. It has the following types in DBMS − Functional Dependency; Fully-Functional Dependency. Dependencies: Restrict which artifacts are passed to a specific job by providing a list of jobs to fetch artifacts from. Environment: Name of an environment to which the job deploys. Also available: environment:name, environment:url, environment:onstop, environment:autostopin, and environment:action. Except: Limit when jobs are not created. Overview of Schema Object Dependencies. Some types of schema objects can reference other objects in their definitions. For example, a view is defined by a query that references tables or other views, and the body of a subprogram can include SQL statements that reference other objects. To specify the packages your project depends on, you must list them as 'dependencies' or 'devDependencies' in your package's package.json file. When you (or another user) run npm install, npm will download dependencies and devDependencies that are listed in package.json that meet the semantic version requirements listed for each.

Dependency types

CHOST vs CBUILD

In order to avoid ambiguity, we use the following terms to indicate differentsystems when cross-compiling:

CBUILD
The system on which the build is performed. Dependencies that apply to the CBUILD system can be executed during build time. When cross-compiling, they are not installed into the system being built.
CHOST
The system on which the package is going to be executed. When cross-compiling, dependencies applying to CHOST can not be executed.

When not cross-compiling, CBUILD and CHOST have the same value and both classesof dependencies are merged.

Build Dependencies

Build dependencies are used to specify any dependencies that are requiredto unpack, patch, compile, test or install the package (but seeImplicit System Dependency forexemptions).

Starting with EAPI 7, build dependencies are split into two variables:BDEPEND and DEPEND. BDEPEND specifies dependenciesapplicable to CBUILD, i.e. programs that need to be executed during the build,e.g. virtual/pkgconfig. DEPEND specifies dependencies for CHOST,i.e. packages that need to be found on built system, e.g. libraries and headers.

In earlier EAPIs, all build dependencies are placed in DEPEND.

Runtime Dependencies

The RDEPEND ebuild variable should specify any dependencies which arerequired at runtime. This includes libraries (when dynamically linked), any datapackages and (for interpreted languages) the relevant interpreter.

Note that when installing from a binary package, only RDEPEND will bechecked. It is therefore necessary to include items even if they are also listedin DEPEND.

Items which are in RDEPEND but not DEPEND could in theory be mergedafter the target package. Portage does not currently do this.

Post Dependencies

The PDEPEND variable specifies runtime dependencies that do not strictlyrequire being satisfied immediately. They can be merged afterthe package. This variable is used purely to resolve circular dependencies,while in general case RDEPEND should be used instead.

Dependency Syntax

Basic Dependency Syntax

A basic DEPEND specification might look like the following:

Each package dependency specification is the full category and name ofa package. Dependency specifications are separated by arbitrary whitespace —convention is to have one specification per line for readability purposes.When specifying names, the category part should be treated as mandatory. Windows 10 threshold 1 iso download.

Dependencies

Version Dependencies

Sometimes a particular version of a package is needed. Where this is known, itshould be specified. A simple example:

This states that at least version 0.9.7d of openssl is required.

Version Specifiers

Available version specifiers are:

SpecifierMeaning
>=app-misc/foo-1.23Version 1.23 or later is required.
>app-misc/foo-1.23A version strictly later than 1.23 is required.
~app-misc/foo-1.23Version 1.23 (or any 1.23-r*) is required.
=app-misc/foo-1.23 Exactly version 1.23 is required. If at all possible, use the ~ form to simplify revision bumps.
<=app-misc/foo-1.23Version 1.23 or older is required.
<app-misc/foo-1.23A version strictly before 1.23 is required.

Ranged Dependencies

To specify 'version 2.x (not 1.x or 3.x)' of a package, it is necessary to usethe asterisk postfix. This is most commonly seen in situations like:

Note that the equals sign is mandatory, and that there is no dot before theasterisk. Also note that when selecting all versions in a specificSLOT, SLOT dependencies should be used (see below).

Blockers

When two packages (package slots, versions) can not be installedsimultaneously, blockers can be used to expose such a conflictto the package manager.

There are two kinds of blockers: weak blockers and strongblockers.

A weak blocker is defined using the following syntax:

The package manager will try to resolve this conflict automatically.The package blocked by a weak blocker can be uninstalled afterinstalling the package blocking it. However, it exempts the commonfiles from file collision checks. Weak blockers are usually usedto solve file collisions between packages and are meaningful onlyin RDEPEND.

More specifically, installation of the newer package may overwrite anycolliding files that belong to the older package that is explicitly blocked.When such file collisions occur, the colliding files cease to belong to theolder package, and they remain installed after the older package is eventuallyuninstalled. The older package is uninstalled only after any newer blockingpackages have been merged on top of it.

Warning:Weak blockers that are pure DEPENDdo not work correctly.While Portage seemingly queues the package for removal, it does notexempt their contents from file collision checks. Always include yourweak blockers in RDEPEND!

If it is strictly necessary to resolve the blocker before the packageis built (installed), a strong blocker must be used instead. In this case,temporary simultaneous installation of the conflicting packages is not allowed.Strong blockers are expressed using the following syntax:

Adobe flash cs3 rus

Strong blockers apply accordingly to the dependency type defining them.Blockers defined in RDEPEND are enforced as long as the packageis installed (but do not prevent building binary packages). Blockersdefined purely in DEPEND are enforced only for buildingthe package from source, and may not apply once the package is installedor when it is installed from a binary package.

Note:If both weak and strong blockers match a given package, the strong blockertakes precedence.

Specific versions can also be blocked:

Blockers can be optional based upon USE flags as per normaldependencies.

Blockers added to older ebuilds should not be expected to be retroactive. Ifthe user already has the ebuild installed, any changes to the ebuild should notbe expected to make any difference. This means that you should add theblockers to whichever ebuild is the newest (even if it means that logically itwould seem backwards). For example, certain versions of portage don't likesome versions of bash, but the blocker was put into bash because that was thenewer package that caused the issues.

SLOT Dependencies

To depend on a specific SLOT, :SLOT should be appended tothe package name, where 'SLOT' is the SLOT of the package wanted:

To depend on a specific version or version-range within a SLOT we use:

Slot Operators

In EAPI=5 and higher, you can use slot operators appended to the packagename to declare whether or not your package should be rebuilt after the versionssatisfying its runtime dependencies are updated to versions with a different slotor sub-slot:

  • := means that any slot is acceptable, and that your package should be rebuilt if the version best matching the runtime dependency is updated to a version with a different slot or subslot;
  • :* means that any slot is acceptable, and explicitly declares that changes in the slot or sub-slot can be ignored;
  • :SLOT= means that only the 'SLOT' slot is acceptable, and that your package should be rebuilt if the version matching the runtime dependency is updated to another version with this slot but with a different subslot;
  • :SLOT means that only the 'SLOT' slot is acceptable, and that changes in the sub-slot can be ignored (like in previous EAPIs).
  • :SLOT/SUBSLOT means a dependency on a specific slot and sub-slot pair, which can be useful for packages installing pre-built binaries that require a library with a particular soname version corresponding to the sub-slot.

For example:

Dependencies

USE-Conditional Dependencies

To depend upon a certain package if and only if a given USE flag is set:

It is also possible to depend upon a certain package if a given USE flag isnot set:

This should not be used for disabling a certain USE flag on a givenarchitecture. In order to do this, the architecture team should add the USEflag to their use.mask file in the profiles/archdirectory of the Gentoo repository.

This can be nested:

Any of Many Dependencies

To depend on either foo or bar:

To depend on either foo or bar if the bazUSE flag is set:

Any of Many Versus USE

Say fnord can be built against either foo or bar. Then a USEflag is not necessary if and only if all of the following hold:

  • fnord is merged on a system which has foo and not bar installed. foo is then unmerged, and bar is installed. fnord must continue to work correctly.
  • A binary package of fnord made on a system with foo and not bar can be taken and installed on a system with bar and not foo.

Built with USE Dependencies

Available specifiers are:

SpecifierMeaning
app-misc/foo[bar]foo must have bar enabled.
app-misc/foo[bar,baz]foo must have both bar and baz enabled.
app-misc/foo[-bar,baz]foo must have bar disabled and baz enabled.

There are also shortcuts for conditional situations:

Compact formEquivalent expanded form
app-misc/foo[bar?]bar? ( app-misc/foo[bar] ) !bar? ( app-misc/foo )
app-misc/foo[!bar?]bar? ( app-misc/foo ) !bar? ( app-misc/foo[-bar] )
app-misc/foo[bar=]bar? ( app-misc/foo[bar] ) !bar? ( app-misc/foo[-bar] )
app-misc/foo[!bar=]bar? ( app-misc/foo[-bar] ) !bar? ( app-misc/foo[bar] )

Use dependency defaults

If a dependency is introducing or removing a USE flag in a new packageversion, a (+) or (-) may be added to the use-dependencyspecification to define a default value in case the flag does not exist in thetarget package. The (+) indicates that the missing flag is assumed to beenabled, (-) the opposite.

For example, the following will treat all boost versions without thethreads flag as having it enabled, and all gcc versions withoutthe openmp as having it disabled:

Tips for Checking Dependencies

It is important to ensure that all the dependencies are complete for yourpackage:

Look at installed binaries/libraries
Use a tool like scanelf -n (from app-misc/pax-utils) or objdump -p (from sys-devel/binutils) to list DT_NEEDED entries
Look in configure.ac
Look for checks for packages in here. Things to look out for are pkg-config checks or AM_* functions that check for a specific version.
Look at included .spec files
A good indication of dependencies is to look at the included .spec files for relevant deps. However, do not trust them to be the definitive complete list of dependencies.
Look at the application/library website
Check the application website for possible dependencies that they suggest are needed
Read the README and INSTALL for the package
They usually also contain useful information about building and installing packages
Remember non-binary dependencies such as pkg-config, doc generation programs, etc.
Usually the build process requires some dependencies such as intltool, libtool, pkg-config, doxygen, scrollkeeper, gtk-doc, etc. Make sure those are clearly stated.

Implicit System Dependency

All packages have an implicit compile-time and runtime dependency upon theentire @system set. It is therefore not necessary, nor advisable, tospecify dependencies upon toolchain packages like gcc, libc andso on, except where specific versions or packages (for example, glibcover uclibc) are required. Note that this rule also needs considerationfor packages like flex, zlib and libtool, which aren't inthe @system set for every profile. For example, the embedded profiledoesn't have zlib in @system, the libtool ABI mightchange and break building order and flex might get removed from the@system set in future.

Dependencies

However, packages which are included in the @system set, or aredependencies of @system set packages, should generally includea complete dependency list (excluding bootstrap packages). This makesemerge -e @system possible when installing from a stage 1 or stage 2tarball.

Test Dependencies

Packages often have optional dependencies that are needed only when runningtests. These should be specified in DEPEND behind a USE flag. Often, the'test' USE flag is used for this purpose.

Since testing will likely fail when test dependencies are not installed, thetest phase should be disabled in this case. This may be accomplished via USEconditionals in the RESTRICT variable.

If other optional features must be enabled/disabled when testing, REQUIRED_USEmay be set to express this.

Circular Dependencies

Circular dependencies occur if one or more of package's (possibly indirect)dependencies depend on the package itself. This creates a dependency cycle whereeach of the packages must technically be installed before the other.For example, if package A depends on B, B depends on C and C depends on A, thenthe package manager cannot install A before C, and C before A.

There are three kinds of circular dependencies:

  1. Circular dependencies that occur if only one of the packages strictly needs to be installed before the other. For example, dev-python/certifi strictly requires dev-python/setuptools to build but the latter package requires the former for some runtime functionality. As a result, dev-python/certifi can be installed later than the other package. PDEPEND is used to express this and automatically resolve the circular dependency.
  2. Circular dependencies that occur if the cycle applies only to some combination of USE flags on one of the packages. For example, running tests in dev-python/setuptools requires a number of packages which require dev-python/setuptools to be installed first. This kind of circular dependency can be resolved by the user by adjusting USE flags on one of the packages, e.g. by disabling tests on dev-python/setuptools, and reenabling them once the dependency is initially installed.
  3. Circular dependencies that cannot be resolved using the regular means. For example, dev-util/cmake used to depend on dev-libs/jsoncpp, while the latter package used the former to build. Resolving this kind of dependency usually requires bundling one of the dependencies conditionally, or providing an alternate bootstrap path.

English[edit]

Etymology[edit]

dependent +‎ -cy

Pronunciation[edit]

  • (UK)IPA(key): /dɪˈpɛndənsi/

Noun[edit]

dependency (countable and uncountable, pluraldependencies)

  1. A state of dependence; a refusal to exercise initiative.
    Frank's sullen dependency was driving his father nuts.
  2. Something dependent on, or subordinate to, something else:
    In the United States' governmental structure, the military is conceived as a dependency under the executive branch.
  3. A colony, or a territorysubject to rule by an externalpower.
    Synonyms:colony, protectorate, province, dominion
  4. A dependence on a habit-formingsubstance such as a drug or alcohol.
    Synonym:addiction
  5. (computing) Reliance on the functionality provided by some other, externalcomponent.
    This library has dependencies on a lot of other libraries. We have to compile all of those other libraries first.
  6. (computing) An external component whose functionality is relied on.
    One of this library's dependencies is very finicky. It can be hard to get it to compile on some systems.

Derived terms[edit]

Related terms[edit]

  • dependee, depender

Translations[edit]

  • Armenian: կախվածություն(hy)(kaxvacutʿyun)
  • Finnish: saamattomuus(fi), aloitekyvyttömyys(fi)

Dependencies C++

something dependent or subordinate to something else

Dependencies Vs Devdependencies

  • Azerbaijani: asılılıq(az)
  • Czech: závislost(cs)f
  • Dutch: afhankelijkheid(nl)
  • Finnish: alainen(fi)
  • German: Abhängigkeit(de)f
  • Romanian: dependență(ro)f
  • Swedish: beroende(sv)n
a colony or similar territory subject to rule by an external power
  • Czech: závislost(cs)f
  • Dutch: kolonie(nl)f, schutgebiedn
  • Finnish: alusmaa(fi)
  • German: Kolonie(de)f, Schutzgebiet(de)n
  • Hungarian: függő terület, (please verify)tengerentúli terület, (please verify)külbirtok, (please verify)gyarmat(hu)
  • Indonesian: jajahan(id)
  • Irish: spleáchríochf
  • Norwegian:
    Nynorsk: bilandn
  • Romanian: colonie(ro)f
  • Swedish: koloni(sv)c
  • Armenian: կախվածություն(hy)(kaxvacutʿyun)
  • Azerbaijani: asılılıq(az)
  • Czech: závislost(cs)f
  • Dutch: afhankelijkheid(nl)f
  • Finnish: riippuvuus(fi)
  • French: dépendance(fr)f
  • German: Abhängigkeit(de)f
  • Romanian: dependență(ro)f
  • Swedish: beroende(sv)n

Spring Boot Dependencies

  • Dutch: afhankelijkheid(nl)f
  • Finnish: riippuvuus(fi)
  • French: dépendance(fr)f
  • German: Abhängigkeit(de), Dependencyf
  • Swedish: beroende(sv)n

Dependencies Definition

Retrieved from 'https://en.wiktionary.org/w/index.php?title=dependency&oldid=61204134'