Flox Package Database 1
CRUD Operations on Nix Package Metadata
|
Manifests contain the configuration for an environment, including which packages to install, how to run the shell hook, etc. Users working inside of a project have both a global manifest as well as a per-project manifest. Locking these manifests produces a lockfile, which is then used to build the environment. We also pass these manifests and the lockfile to search commands so that searches can be done in the context of the particular environment e.g. so that we don't return a search result from a registry that isn't available in the project.
Fields:
Allows
unfree
: Allow packages with non-FOSS licenses in search results and installs.false
.nixpkgs
meta.unfree
field.broken
: Allow packages marked broken
in a in search results and installs.false
.nixpkgs
meta.broken
field.licenses
: A whitelist of software licenses to allow in search results and installs.null
.SemVer
prefer-pre-releases
: Whether to prefer pre-release software over equivalent stable versions for the purpose of search results and installs.false
, which would prefer 4.1.9
over 4.2.0-pre
.Options
package-grouping-strategy
: Governs how packages not explicity requested to resolve in a group should be resolved.activation-strategy
: Governs how environments should be activated.GlobalManifest
registry
: Contains the inputs from which packages can be searched and installed from.--ga-registry
flag is passed to pkgdb
.Fields:
EnvBase
floxhub
: A URL that points to an environment to be extended.dir
: The path to a directory containing a .flox
directory to be extended.Hook
script
: An inline script to run immediately after the environment is activated.file
: A path to a file containing a script to run immediately after the environment is activated.Descriptor
: A set of requirements specifying a dependency to be installed to the environment.name
: Matches the name
, pname
, or attrName
attribute of the package.flox::pkgdb::PkgQueryArgs::pnameOrAttrName
.optional
: Whether resolution of this package is allowed to fail without producing an error.false
, and is used when the attribute is missing or null
.package-group
: Resolve all packages within this group to a single revision of the input they are found in.version
: Match the version of the package.version
whose first character is =
will attempt to match exactly during resolution.version
strings will attempt to match a semantic version range.semver
: Specifically match a semantic version range.npm
, yarn
, etc.systems
: A list of systems on which to resolve this package.null
only the current system is used for resolution.path
: Match a relative path within the registry input.abs-path
: Match an exact path within the registry input.package-repository
: The named registry input or flake reference that this package should be resolved in.priority
: A priority used to resolve file conflicts.null
, the package is assigned a priority of 5.Manifest
Manifest
is a superset of the fields allowed in GlobalManifest
.install
: The collection of Descriptors
indicating which packages to install.vars
: The collection of environment variables to set in the environment.