.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "APT-CUDF 1" .TH APT-CUDF 1 "2016-07-20" " " "DOSE Tools" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" apt\-cudf \- CUDF solver integration for APT .SH "SYNOPSIS" .IX Header "SYNOPSIS" .IP "\fBsolvername\fR" 4 .IX Item "solvername" .SH "DESCRIPTION" .IX Header "DESCRIPTION" apt-cudf translates back and forth among a CUDF-based dependency solver and the protocol used by \s-1APT\s0 to talk with external dependency solvers. apt-cudf therefore allows one to use any \s-1CUDF\s0 solver as an external solver for \s-1APT.\s0 .PP apt-cudf relies on its \f(CW\*(C`argv[0]\*(C'\fR name to find the \s-1CUDF\s0 solver to invoke. In common setups, you should have a \s-1CUDF\s0 solver specification file under \&\fI/usr/share/cudf/solvers/\fR for each installed \s-1CUDF\s0 solver. To use one such solver with \s-1APT,\s0 you should create a symbolic link pointing to \&\fI/usr/bin/apt\-cudf\fR under \fI/usr/lib/apt/solvers/\fR and call it with the name of the \s-1CUDF\s0 solver you want to use. .SH "OPTIONS" .IX Header "OPTIONS" .IP "\-v" 4 .IX Item "-v" .PD 0 .IP "\-\-verbose" 4 .IX Item "--verbose" .PD Print debugging information during operation. Can be repeated. .IP "\-h" 4 .IX Item "-h" .PD 0 .IP "\-\-help" 4 .IX Item "--help" .PD Show usage information and exit. .IP "\-\-version" 4 .IX Item "--version" Show program's version and exit. .IP "\-\-dump" 4 .IX Item "--dump" Dump the cudf universe and solution .IP "\-\-noop" 4 .IX Item "--noop" Dump the cudf universe and solution and exit. This is useful to generate a cudf universe from a edsp file .IP "\-\-conf" 4 .IX Item "--conf" Use a configuration file. Default in /etc/apt\-cudf.conf .IP "\-s " 4 .IX Item "-s " .PD 0 .IP "\-\-solver " 4 .IX Item "--solver " .PD Specify the external solver to use. .IP "\-c " 4 .IX Item "-c " .PD 0 .IP "\-\-criteria " 4 .IX Item "--criteria " .PD Specify the optimization criteria in extended \s-1MISC 2012\s0 syntax. This value will be converted into the optimization criteria language understood by the respective solver. .Sp As an extension to the \s-1MISC 2012\s0 syntax, a variation of the \fIcount()\fR measurement is supported by apt-cudf. The extension allows to minimize or maximize the number of packages in a set that have an \s-1EDSP\s0 field matching a regular expression. Two formats exist. The first searches for a plain string within the \&\s-1EDSP\s0 field value: .Sp .Vb 1 \& count(selector,field:=/plain/) .Ve .Sp While the second one understands the regular expression syntax of the OCaml Re_pcre module: .Sp .Vb 1 \& count(selector,field:~/regex/) .Ve .Sp The regex or plain string are delimitered by any character (the slash was chosen in both above examples) but that character must not be part of the regex or plain string itself (there is no escaping mechanism). .Sp This option cannot be used together with the \fB\-\-criteria\-plain\fR option. .IP "\-\-criteria\-plain " 4 .IX Item "--criteria-plain " This optimization criteria is passed directly to the solver without any prior parsing. .Sp This option cannot be used together with the \fB\-\-criteria\fR option. .IP "\-e" 4 .IX Item "-e" .PD 0 .IP "\-\-explain" 4 .IX Item "--explain" .PD Print a human-readable summary of the solution. .IP "\-\-native\-arch" 4 .IX Item "--native-arch" Speficy the native architecture to be used in the edsp \-> cudf translation. By default apt-cudf uses apt-config to deduce the native architecture. This option is useful if the edsp was generated on a machine with a different architecture. .IP "\-\-foreign\-archs" 4 .IX Item "--foreign-archs" A comma-separated list of foreign architectures to be used in the edsp \-> cudf translation .SH "EXAMPLES" .IX Header "EXAMPLES" Find a solution for installing the package ghc which minimizes the packages from experimental: .PP .Vb 2 \& apt\-get \-\-simulate install \-\-solver dump \-o APT::Solver::Strict\-Pinning=false ghc \& apt\-cudf \-v \-\-solver=aspcud \-c "\-count(solution,APT\-Release:=/a=experimental/),\-removed,\-changed,\-new" /tmp/dump.edsp .Ve .PP Usually apt-cudf is not called directly by the user but indirectly by apt-get. So the above would become: .PP .Vb 1 \& apt\-get \-\-simulate install \-\-solver aspcud \-o APT::Solver::Strict\-Pinning=false \-o APT::Solver::aspcud::Preferences="\-count(solution,APT\-Release:=/a=experimental/),\-removed,\-changed,\-new" ghc/experimental .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIapt\-get\fR\|(8), \fIupdate\-cudf\-solvers\fR\|(8), \&\s-1README\s0.cudf\-solvers , \&\s-1README\s0.Debian .SH "AUTHOR" .IX Header "AUTHOR" Copyright: (C) 2011 Pietro Abate Copyright: (C) 2011 Stefano Zacchiroli .PP License: \s-1GNU\s0 Lesser General Public License (\s-1GPL\s0), version 3 or above