propellor-5.1.0: property-based host configuration management in haskell

Safe HaskellNone




mirror :: Url -> Property (HasInfo + UnixLike) Source #

Indicate host's preferred apt mirror

securityUpdates :: SourcesGenerator Source #

Only available for Stable and Testing

stdSourcesList :: Property Debian Source #

Makes sources.list have a standard content using the Debian mirror CDN (or other host specified using the mirror property), with the Debian suite configured by the os.

stdSourcesList' :: DebianSuite -> [SourcesGenerator] -> Property Debian Source #

Adds additional sources.list generators.

Note that if a Property needs to enable an apt source, it's better to do so via a separate file in /etc/apt/sources.list.d/

suiteAvailablePinned :: DebianSuite -> PinPriority -> RevertableProperty Debian Debian Source #

Adds an apt source for a suite, and pins that suite to a given pin value (see apt_preferences(5)). Revert to drop the source and unpin the suite.

If the requested suite is the host's OS suite, the suite is pinned, but no source is added. That apt source should already be available, or you can use a property like stdSourcesList.

update :: Property DebianLike Source #

Have apt update its lists of packages, but without upgrading anything.

upgrade :: Property DebianLike Source #

Have apt upgrade packages, adding new packages and removing old as necessary. Often used in combination with the update property.

safeUpgrade :: Property DebianLike Source #

Have apt upgrade packages, but never add new packages or remove old packages. Not suitable for upgrading acrocess major versions of the distribution.

pendingConfigured :: Property DebianLike Source #

Have dpkg try to configure any packages that are not fully configured.

installedMin :: [Package] -> Property DebianLike Source #

Minimal install of package, without recommends.

buildDepIn :: FilePath -> Property DebianLike Source #

Installs the build deps for the source package unpacked in the specifed directory, with a dummy package also installed so that autoRemove won't remove them.

type AptPackagePref = String Source #

The name of a package, a glob to match the names of packages, or a regexp surrounded by slashes to match the names of packages. See apt_preferences(5), "Regular expressions and glob(7) syntax"

pinnedTo :: [AptPackagePref] -> [(DebianSuite, PinPriority)] -> RevertableProperty Debian Debian Source #

Pins a list of packages, package wildcards and/or regular expressions to a list of suites and corresponding pin priorities (see apt_preferences(5)). Revert to unpin.

Each package, package wildcard or regular expression will be pinned to all of the specified suites.

Note that this will have no effect unless there is an apt source for each of the suites. One way to add an apt source is suiteAvailablePinned.

For example, to obtain Emacs Lisp addon packages not present in your release of Debian from testing, falling back to sid if they're not available in testing, you could use

& Apt.suiteAvailablePinned Testing (-10)
& Apt.suiteAvailablePinned Unstable (-10)
& ["elpa-*"] `Apt.pinnedTo` [(Testing, 100), (Unstable, 50)]

robustly :: Property DebianLike -> Property DebianLike Source #

Package installation may fail becuse the archive has changed. Run an update in that case and retry.

unattendedUpgrades :: RevertableProperty DebianLike DebianLike Source #

Enables unattended upgrades. Revert to disable.

periodicUpdates :: Property DebianLike Source #

Enable periodic updates (but not upgrades), including download of packages.

reConfigure :: Package -> [(DebconfTemplate, DebconfTemplateType, DebconfTemplateValue)] -> Property DebianLike Source #

Preseeds debconf values and reconfigures the package so it takes effect.

serviceInstalledRunning :: Package -> Property DebianLike Source #

Ensures that a service is installed and running.

Assumes that there is a 1:1 mapping between service names and apt package names.

data AptKey Source #




cacheCleaned :: Property DebianLike Source #

Cleans apt's cache of downloaded packages to avoid using up disk space.

hasForeignArch :: String -> Property DebianLike Source #

Add a foreign architecture to dpkg and apt.

noPDiffs :: Property DebianLike Source #

Disable the use of PDiffs for machines with high-bandwidth connections.

proxy :: Url -> Property (HasInfo + DebianLike) Source #

Set apt's proxy

useLocalCacher :: Property (HasInfo + DebianLike) Source #

Cause apt to proxy downloads via an apt cacher on localhost