From 7948d3b25d8190c6d2529efa5983199bd22b6440 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Fri, 12 Sep 2008 11:42:34 +0200 Subject: * doc/makefile: - add examples/apt-https-method-example.conf --- doc/makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/makefile b/doc/makefile index 8a8a04c03..6ea1c1343 100644 --- a/doc/makefile +++ b/doc/makefile @@ -20,7 +20,7 @@ INCLUDES = apt.ent include $(XML_MANPAGE_H) # Examples -SOURCE = examples/apt.conf examples/sources.list examples/configure-index +SOURCE = examples/apt.conf examples/sources.list examples/configure-index examples/apt-https-method-example.conf TO = $(DOC) TARGET = binary include $(COPY_H) -- cgit v1.2.3-70-g09d2 From 668ce84da00041c65cae3957d2b49786efa34276 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Tue, 3 Feb 2009 14:10:36 +0100 Subject: * methods/https.cc: - add Acquire::https::AllowRedirect support --- debian/changelog | 2 ++ doc/examples/configure-index | 6 ++++-- methods/https.cc | 5 +++++ 3 files changed, 11 insertions(+), 2 deletions(-) (limited to 'doc') diff --git a/debian/changelog b/debian/changelog index 6dea85f25..c0da66973 100644 --- a/debian/changelog +++ b/debian/changelog @@ -41,6 +41,8 @@ apt (0.7.21) UNRELEASED; urgency=low * apt-pkg/pkgcache.cc: - do not run "dpkg --configure pkg" if pkg is in trigger-awaited state (LP: #322955) + * methods/https.cc: + - add Acquire::https::AllowRedirect support [ Dereck Wonnacott ] * apt-ftparchive might write corrupt Release files (LP: #46439) diff --git a/doc/examples/configure-index b/doc/examples/configure-index index 84b1d8829..a4167085b 100644 --- a/doc/examples/configure-index +++ b/doc/examples/configure-index @@ -183,7 +183,8 @@ Acquire Proxy::http.us.debian.org "DIRECT"; // Specific per-host setting Timeout "120"; Pipeline-Depth "5"; - + AllowRedirect "true"; + // Cache Control. Note these do not work with Squid 2.0.2 No-Cache "false"; Max-Age "86400"; // 1 Day age on index files @@ -200,7 +201,8 @@ Acquire Verify-Peer "false"; SslCert "/etc/apt/some.pem"; CaPath "/etc/ssl/certs"; - Verify-Host" "2"; + Verify-Host" "true"; + AllowRedirect "true"; }; ftp diff --git a/methods/https.cc b/methods/https.cc index 7c743a424..8bf44b52a 100644 --- a/methods/https.cc +++ b/methods/https.cc @@ -208,6 +208,11 @@ bool HttpsMethod::Fetch(FetchItem *Itm) curl_easy_setopt(curl, CURLOPT_TIMEOUT, timeout); curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, timeout); + // set redirect options and default to 10 redirects + bool AllowRedirect = _config->FindI("Acquire::https::AllowRedirect", true); + curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, AllowRedirect); + curl_easy_setopt(curl, CURLOPT_MAXREDIRS, 10); + // debug if(_config->FindB("Debug::Acquire::https", false)) curl_easy_setopt(curl, CURLOPT_VERBOSE, true); -- cgit v1.2.3-70-g09d2 From efc487fbd46905f5f3efc4f31d7df15625bcbecf Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Thu, 7 May 2009 12:04:21 +0200 Subject: [apt-pkg] allow also codenames for specifying a release * MatchType::Release checks first for archive than for codename equality * new n= option in apt_preference to be able to pin based on a codeName --- apt-pkg/cacheiterators.h | 1 + apt-pkg/deb/deblistparser.cc | 2 + apt-pkg/pkgcache.cc | 2 + apt-pkg/pkgcache.h | 1 + apt-pkg/versionmatch.cc | 37 +++++++++++------- apt-pkg/versionmatch.h | 21 +++++++---- doc/apt-get.8.xml | 9 ++++- doc/apt.conf.5.xml | 2 +- doc/apt_preferences.5.xml | 90 ++++++++++++++++++++++++++++++++++++++++++-- 9 files changed, 138 insertions(+), 27 deletions(-) (limited to 'doc') diff --git a/apt-pkg/cacheiterators.h b/apt-pkg/cacheiterators.h index 08eafca0f..63f9de8fc 100644 --- a/apt-pkg/cacheiterators.h +++ b/apt-pkg/cacheiterators.h @@ -333,6 +333,7 @@ class pkgCache::PkgFileIterator inline const char *Component() const {return File->Component == 0?0:Owner->StrP + File->Component;}; inline const char *Version() const {return File->Version == 0?0:Owner->StrP + File->Version;}; inline const char *Origin() const {return File->Origin == 0?0:Owner->StrP + File->Origin;}; + inline const char *Codename() const {return File->Codename ==0?0:Owner->StrP + File->Codename;}; inline const char *Label() const {return File->Label == 0?0:Owner->StrP + File->Label;}; inline const char *Site() const {return File->Site == 0?0:Owner->StrP + File->Site;}; inline const char *Architecture() const {return File->Architecture == 0?0:Owner->StrP + File->Architecture;}; diff --git a/apt-pkg/deb/deblistparser.cc b/apt-pkg/deb/deblistparser.cc index 896d4d6d8..d8be66cba 100644 --- a/apt-pkg/deb/deblistparser.cc +++ b/apt-pkg/deb/deblistparser.cc @@ -637,6 +637,8 @@ bool debListParser::LoadReleaseInfo(pkgCache::PkgFileIterator FileI, FileI->Version = WriteUniqString(Start,Stop - Start); if (Section.Find("Origin",Start,Stop) == true) FileI->Origin = WriteUniqString(Start,Stop - Start); + if (Section.Find("Codename",Start,Stop) == true) + FileI->Codename = WriteUniqString(Start,Stop - Start); if (Section.Find("Label",Start,Stop) == true) FileI->Label = WriteUniqString(Start,Stop - Start); if (Section.Find("Architecture",Start,Stop) == true) diff --git a/apt-pkg/pkgcache.cc b/apt-pkg/pkgcache.cc index 4fbf42c4b..f5303682c 100644 --- a/apt-pkg/pkgcache.cc +++ b/apt-pkg/pkgcache.cc @@ -607,6 +607,8 @@ string pkgCache::PkgFileIterator::RelStr() Res = Res + (Res.empty() == true?"o=":",o=") + Origin(); if (Archive() != 0) Res = Res + (Res.empty() == true?"a=":",a=") + Archive(); + if (Codename() != 0) + Res = Res + (Res.empty() == true?"n=":",n=") + Codename(); if (Label() != 0) Res = Res + (Res.empty() == true?"l=":",l=") + Label(); if (Component() != 0) diff --git a/apt-pkg/pkgcache.h b/apt-pkg/pkgcache.h index 759e9a225..af63443a6 100644 --- a/apt-pkg/pkgcache.h +++ b/apt-pkg/pkgcache.h @@ -223,6 +223,7 @@ struct pkgCache::PackageFile // Names map_ptrloc FileName; // Stringtable map_ptrloc Archive; // Stringtable + map_ptrloc Codename; // Stringtable map_ptrloc Component; // Stringtable map_ptrloc Version; // Stringtable map_ptrloc Origin; // Stringtable diff --git a/apt-pkg/versionmatch.cc b/apt-pkg/versionmatch.cc index 5c25c2f7b..b4d1d4696 100644 --- a/apt-pkg/versionmatch.cc +++ b/apt-pkg/versionmatch.cc @@ -63,8 +63,8 @@ pkgVersionMatch::pkgVersionMatch(string Data,MatchType Type) : Type(Type) if (isdigit(Data[0])) RelVerStr = Data; else - RelArchive = Data; - + RelRelease = Data; + if (RelVerStr.length() > 0 && RelVerStr.end()[-1] == '*') { RelVerPrefixMatch = true; @@ -87,19 +87,21 @@ pkgVersionMatch::pkgVersionMatch(string Data,MatchType Type) : Type(Type) { if (strlen(Fragments[J]) < 3) continue; - + if (stringcasecmp(Fragments[J],Fragments[J]+2,"v=") == 0) RelVerStr = Fragments[J]+2; else if (stringcasecmp(Fragments[J],Fragments[J]+2,"o=") == 0) RelOrigin = Fragments[J]+2; else if (stringcasecmp(Fragments[J],Fragments[J]+2,"a=") == 0) RelArchive = Fragments[J]+2; + else if (stringcasecmp(Fragments[J],Fragments[J]+2,"n=") == 0) + RelCodename = Fragments[J]+2; else if (stringcasecmp(Fragments[J],Fragments[J]+2,"l=") == 0) RelLabel = Fragments[J]+2; else if (stringcasecmp(Fragments[J],Fragments[J]+2,"c=") == 0) RelComponent = Fragments[J]+2; } - + if (RelVerStr.end()[-1] == '*') { RelVerPrefixMatch = true; @@ -169,15 +171,16 @@ bool pkgVersionMatch::FileMatch(pkgCache::PkgFileIterator File) { if (MatchAll == true) return true; - + /* cout << RelVerStr << ',' << RelOrigin << ',' << RelArchive << ',' << RelLabel << endl; cout << File.Version() << ',' << File.Origin() << ',' << File.Archive() << ',' << File.Label() << endl;*/ - + if (RelVerStr.empty() == true && RelOrigin.empty() == true && RelArchive.empty() == true && RelLabel.empty() == true && + RelRelease.empty() == true && RelCodename.empty() == true && RelComponent.empty() == true) return false; - + if (RelVerStr.empty() == false) if (File->Version == 0 || MatchVer(File.Version(),RelVerStr,RelVerPrefixMatch) == false) @@ -187,11 +190,19 @@ bool pkgVersionMatch::FileMatch(pkgCache::PkgFileIterator File) stringcasecmp(RelOrigin,File.Origin()) != 0) return false; if (RelArchive.empty() == false) - { - if (File->Archive == 0 || + if (File->Archive == 0 || stringcasecmp(RelArchive,File.Archive()) != 0) - return false; - } + return false; + if (RelCodename.empty() == false) + if (File->Codename == 0 || + stringcasecmp(RelCodename,File.Codename()) != 0) + return false; + if (RelRelease.empty() == false) + if ((File->Archive == 0 || + stringcasecmp(RelRelease,File.Archive()) != 0) && + (File->Codename == 0 || + stringcasecmp(RelRelease,File.Codename()) != 0)) + return false; if (RelLabel.empty() == false) if (File->Label == 0 || stringcasecmp(RelLabel,File.Label()) != 0) @@ -202,7 +213,7 @@ bool pkgVersionMatch::FileMatch(pkgCache::PkgFileIterator File) return false; return true; } - + if (Type == Origin) { if (OrSite.empty() == false) { @@ -213,7 +224,7 @@ bool pkgVersionMatch::FileMatch(pkgCache::PkgFileIterator File) return false; return (OrSite == File.Site()); /* both strings match */ } - + return false; } /*}}}*/ diff --git a/apt-pkg/versionmatch.h b/apt-pkg/versionmatch.h index fe264aa46..a8f3c84ac 100644 --- a/apt-pkg/versionmatch.h +++ b/apt-pkg/versionmatch.h @@ -3,29 +3,32 @@ // $Id: versionmatch.h,v 1.4 2001/05/29 03:07:12 jgg Exp $ /* ###################################################################### - Version Matching - + Version Matching + This module takes a matching string and a type and locates the version record that satisfies the constraint described by the matching string. Version: 1.2* Release: o=Debian,v=2.1*,c=main Release: v=2.1* + Release: a=testing + Release: n=squeeze Release: * Origin: ftp.debian.org - + Release may be a complex type that can specify matches for any of: Version (v= with prefix) Origin (o=) - Archive (a=) + Archive (a=) eg, unstable, testing, stable + Codename (n=) e.g. etch, lenny, squeeze, sid Label (l=) Component (c=) If there are no equals signs in the string then it is scanned in short - form - if it starts with a number it is Version otherwise it is an - Archive. - + form - if it starts with a number it is Version otherwise it is an + Archive or a Codename. + Release may be a '*' to match all releases. - + ##################################################################### */ /*}}}*/ #ifndef PKGLIB_VERSIONMATCH_H @@ -47,6 +50,8 @@ class pkgVersionMatch string RelVerStr; bool RelVerPrefixMatch; string RelOrigin; + string RelRelease; + string RelCodename; string RelArchive; string RelLabel; string RelComponent; diff --git a/doc/apt-get.8.xml b/doc/apt-get.8.xml index c1b3470ef..c63b2a6c6 100644 --- a/doc/apt-get.8.xml +++ b/doc/apt-get.8.xml @@ -53,6 +53,9 @@ target_release_number_expression + + target_release_codename + @@ -71,6 +74,9 @@ /target_release_name + + /target_release_codename + @@ -455,7 +461,8 @@ of this option. In short, this option lets you have simple control over which distribution packages will be retrieved from. Some common examples might be - or . + , + or . Configuration Item: APT::Default-Release; see also the &apt-preferences; manual page. diff --git a/doc/apt.conf.5.xml b/doc/apt.conf.5.xml index 74966c5b3..fb2be9a28 100644 --- a/doc/apt.conf.5.xml +++ b/doc/apt.conf.5.xml @@ -110,7 +110,7 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";}; Default-Release Default release to install packages from if more than one - version available. Contains release name or release version. Examples: 'stable', 'testing', 'unstable', '4.0', '5.0*'. Release codenames ('etch', 'lenny' etc.) are not allowed now. See also &apt-preferences;. + version available. Contains release name, codename or release version. Examples: 'stable', 'testing', 'unstable', 'lenny', 'squeeze', '4.0', '5.0*'. See also &apt-preferences;. Ignore-Hold diff --git a/doc/apt_preferences.5.xml b/doc/apt_preferences.5.xml index 162c2f00e..ff63f1dd3 100644 --- a/doc/apt_preferences.5.xml +++ b/doc/apt_preferences.5.xml @@ -14,7 +14,7 @@ &apt-email; &apt-product; - 29 February 2004 + 04 May 2009 @@ -190,6 +190,15 @@ Pin: release a=unstable Pin-Priority: 50 +The following record assigns a high priority to all package versions +belonging to any distribution whose Codename is "squeeze". + + +Package: * +Pin: release n=squeeze +Pin-Priority: 900 + + The following record assigns a high priority to all package versions belonging to any release whose Archive name is "stable" and whose release Version number is "3.0". @@ -327,10 +336,11 @@ file are relevant for setting APT priorities: -the Archive: line +the Archive: or Suite: line names the archive to which all the packages in the directory tree belong. For example, the line -"Archive: stable" +"Archive: stable" or +"Suite: stable" specifies that all of the packages in the directory tree below the parent of the Release file are in a stable archive. Specifying this value in the APT preferences file @@ -342,6 +352,22 @@ Pin: release a=stable + +the Codename: line +names the codename to which all the packages +in the directory tree belong. For example, the line +"Codename: squeeze" +specifies that all of the packages in the directory +tree below the parent of the Release file belong to a version named +squeeze. Specifying this value in the APT preferences file +would require the line: + + +Pin: release n=squeeze + + + + the Version: line names the release version. For example, the @@ -522,7 +548,64 @@ version. apt-get install package/unstable + + + + +Tracking the evolution of a codename release + +The following APT preferences file will cause APT to assign a +priority higher than the default (500) to all package versions belonging +to a specified codename of a distribution and a prohibitively low priority to +package versions belonging to other Debian distributions, +codenames and archives. +Note that with this APT preference APT will follow the migration of a release +from the archive testing to stable and +later oldstable. If you want to follow for example the progress +in testing notwithstanding the codename changes you should use +the example configurations above. + + +Explanation: Uninstall or do not install any Debian-originated package versions +Explanation: other than those in the distribution codenamed with squeeze or sid +Package: * +Pin: release n=squeeze +Pin-Priority: 900 + +Explanation: Debian unstable is always codenamed with sid +Package: * +Pin: release a=sid +Pin-Priority: 800 + +Package: * +Pin: release o=Debian +Pin-Priority: -10 + + + +With a suitable &sources-list; file and the above preferences file, +any of the following commands will cause APT to upgrade to the +latest version(s) in the release codenamed with squeeze. + + +apt-get install package-name +apt-get upgrade +apt-get dist-upgrade + + + +The following command will cause APT to upgrade the specified +package to the latest version from the sid distribution. +Thereafter, apt-get upgrade will upgrade +the package to the most recent squeeze version if that is +more recent than the installed version, otherwise, to the most recent +sid version if that is more recent than the installed +version. + +apt-get install package/sid + + @@ -535,4 +618,3 @@ apt-get install package/unstable &manbugs; - -- cgit v1.2.3-70-g09d2 From 55a5a46c235a30bf024fb2301066553953701cc5 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Mon, 29 Jun 2009 16:55:49 +0200 Subject: support running "--simulate" as user --- cmdline/apt-get.cc | 13 ++++++++++++- debian/changelog | 1 + doc/apt-get.8.xml | 5 +++++ 3 files changed, 18 insertions(+), 1 deletion(-) (limited to 'doc') diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index 028f371b5..faad2ed6b 100644 --- a/cmdline/apt-get.cc +++ b/cmdline/apt-get.cc @@ -2788,7 +2788,18 @@ int main(int argc,const char *argv[]) ShowHelp(CmdL); return 0; } - + + // simulate user-friendly if apt-get has no root privileges + if (getuid() != 0 && _config->FindB("APT::Get::Simulate") == true) + { + cout << _("NOTE: This is only a simulation!\n" + " apt-get needs root privileges for real execution.\n" + " Keep also in mind that locking is deactivated,\n" + " so don't depend on the relevance to the real current situation!" + ) << std::endl; + _config->Set("Debug::NoLocking",true); + } + // Deal with stdout not being a tty if (!isatty(STDOUT_FILENO) && _config->FindI("quiet",0) < 1) _config->Set("quiet","1"); diff --git a/debian/changelog b/debian/changelog index 28bc54108..f1cb7bd0c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -21,6 +21,7 @@ apt (0.7.22) UNRELEASED; urgency=low * [ABI break] support '#' in apt.conf and /etc/apt/preferences (closes: #189866) * [ABI break] Allow pinning by codename (closes: #97564) + * support running "--simulate" as user [ Julian Andres Klode ] * apt-pkg/contrib/configuration.cc: Fix a small memory leak in diff --git a/doc/apt-get.8.xml b/doc/apt-get.8.xml index c63b2a6c6..e7f6d7094 100644 --- a/doc/apt-get.8.xml +++ b/doc/apt-get.8.xml @@ -363,6 +363,11 @@ actually change the system. Configuration Item: APT::Get::Simulate. + Simulation run as user will deactivate locking (Debug::NoLocking) + automatical and display a notice indicating that this is only a simulation. + Neigther NoLocking nor the notice will be triggered if run as root (root should know what + he is doing without further warnings by apt-get). + Simulate prints out a series of lines each one representing a dpkg operation, Configure (Conf), Remove (Remv), Unpack (Inst). Square brackets indicate broken packages with -- cgit v1.2.3-70-g09d2 From af29ffb44d95dfb0f7b0c1835e2e501313f74723 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Mon, 29 Jun 2009 18:00:54 +0200 Subject: * add depth information to the debug output and show what depends type triggers a autoinst (closes: #458389) * add debug::pkgDepCache::Marker with more detailed debug output (closes: #87520) --- apt-pkg/cacheiterators.h | 13 +- apt-pkg/depcache.cc | 47 +++++-- apt-pkg/depcache.h | 10 +- apt-pkg/pkgcache.cc | 51 ++++++++ debian/changelog | 4 + doc/apt.conf.5.xml | 21 ++++ doc/examples/configure-index | 1 + po/apt-all.pot | 293 +++++++++++++++++++++++++------------------ 8 files changed, 298 insertions(+), 142 deletions(-) (limited to 'doc') diff --git a/apt-pkg/cacheiterators.h b/apt-pkg/cacheiterators.h index 63f9de8fc..cf79b3a6b 100644 --- a/apt-pkg/cacheiterators.h +++ b/apt-pkg/cacheiterators.h @@ -80,7 +80,13 @@ class pkgCache::PkgIterator inline PrvIterator ProvidesList() const; inline unsigned long Index() const {return Pkg - Owner->PkgP;}; OkState State() const; - + + //Nice printable representation + friend std::ostream& operator<<(std::ostream& out, pkgCache::PkgIterator Pkg); + + const char *CandVersion() const; + const char *CurVersion() const; + // Constructors inline PkgIterator(pkgCache &Owner,Package *Trg) : Pkg(Trg), Owner(&Owner), HashIndex(0) @@ -111,7 +117,10 @@ class pkgCache::VerIterator inline bool operator ==(const VerIterator &B) const {return Ver == B.Ver;}; inline bool operator !=(const VerIterator &B) const {return Ver != B.Ver;}; int CompareVer(const VerIterator &B) const; - + + // Testing + inline bool IsGood() const { return Ver && Owner && ! end();}; + // Accessors inline Version *operator ->() {return Ver;}; inline Version const *operator ->() const {return Ver;}; diff --git a/apt-pkg/depcache.cc b/apt-pkg/depcache.cc index 2411bfe89..e9ef9cedc 100644 --- a/apt-pkg/depcache.cc +++ b/apt-pkg/depcache.cc @@ -47,6 +47,13 @@ ConfigValueInSubTree(const char* SubTree, const char *needle) return false; } +std::string OutputInDepth(const unsigned long Depth) +{ + std::string output = ""; + for(unsigned long d=Depth; d > 0; d--) + output += " "; + return output; +} pkgDepCache::ActionGroup::ActionGroup(pkgDepCache &cache) : cache(cache), released(false) @@ -83,6 +90,8 @@ pkgDepCache::ActionGroup::~ActionGroup() pkgDepCache::pkgDepCache(pkgCache *pCache,Policy *Plcy) : group_level(0), Cache(pCache), PkgState(0), DepState(0) { + DebugMarker = _config->FindB("Debug::pkgDepCache::Marker", false); + DebugAutoInstall = _config->FindB("Debug::pkgDepCache::AutoInstall", false); delLocalPolicy = 0; LocalPolicy = Plcy; if (LocalPolicy == 0) @@ -705,7 +714,8 @@ void pkgDepCache::Update(PkgIterator const &Pkg) // DepCache::MarkKeep - Put the package in the keep state /*{{{*/ // --------------------------------------------------------------------- /* */ -void pkgDepCache::MarkKeep(PkgIterator const &Pkg, bool Soft, bool FromUser) +void pkgDepCache::MarkKeep(PkgIterator const &Pkg, bool Soft, bool FromUser, + unsigned long Depth) { // Simplifies other routines. if (Pkg.end() == true) @@ -746,6 +756,9 @@ void pkgDepCache::MarkKeep(PkgIterator const &Pkg, bool Soft, bool FromUser) P.Flags &= ~Flag::Auto; #endif + if (DebugMarker == true) + std::clog << OutputInDepth(Depth) << "MarkKeep " << Pkg << std::endl; + RemoveSizes(Pkg); RemoveStates(Pkg); @@ -765,7 +778,8 @@ void pkgDepCache::MarkKeep(PkgIterator const &Pkg, bool Soft, bool FromUser) // DepCache::MarkDelete - Put the package in the delete state /*{{{*/ // --------------------------------------------------------------------- /* */ -void pkgDepCache::MarkDelete(PkgIterator const &Pkg, bool rPurge) +void pkgDepCache::MarkDelete(PkgIterator const &Pkg, bool rPurge, + unsigned long Depth) { // Simplifies other routines. if (Pkg.end() == true) @@ -787,6 +801,9 @@ void pkgDepCache::MarkDelete(PkgIterator const &Pkg, bool rPurge) if (Pkg->VersionList == 0) return; + if (DebugMarker == true) + std::clog << OutputInDepth(Depth) << "MarkDelete " << Pkg << std::endl; + RemoveSizes(Pkg); RemoveStates(Pkg); @@ -826,7 +843,7 @@ void pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst, P.CandidateVer == (Version *)Pkg.CurrentVer())) { if (P.CandidateVer == (Version *)Pkg.CurrentVer() && P.InstallVer == 0) - MarkKeep(Pkg, false, FromUser); + MarkKeep(Pkg, false, FromUser, Depth+1); return; } @@ -868,6 +885,9 @@ void pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst, if (AutoInst == false) return; + if (DebugMarker == true) + std::clog << OutputInDepth(Depth) << "MarkInstall " << Pkg << std::endl; + DepIterator Dep = P.InstVerIter(*this).DependsList(); for (; Dep.end() != true;) { @@ -937,12 +957,12 @@ void pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst, } } if(isNewImportantDep) - if(_config->FindB("Debug::pkgDepCache::AutoInstall",false) == true) - std::clog << "new important dependency: " + if(DebugAutoInstall == true) + std::clog << OutputInDepth(Depth) << "new important dependency: " << Start.TargetPkg().Name() << std::endl; if(isPreviouslySatisfiedImportantDep) - if(_config->FindB("Debug::pkgDepCache::AutoInstall", false) == true) - std::clog << "previously satisfied important dependency on " + if(DebugAutoInstall == true) + std::clog << OutputInDepth(Depth) << "previously satisfied important dependency on " << Start.TargetPkg().Name() << std::endl; // skip important deps if the package is already installed @@ -993,15 +1013,16 @@ void pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst, if (InstPkg.end() == false) { - if(_config->FindB("Debug::pkgDepCache::AutoInstall",false) == true) - std::clog << "Installing " << InstPkg.Name() - << " as dep of " << Pkg.Name() + if(DebugAutoInstall == true) + std::clog << OutputInDepth(Depth) << "Installing " << InstPkg.Name() + << " as " << Start.DepType() << " of " << Pkg.Name() << std::endl; // now check if we should consider it a automatic dependency or not if(Pkg.Section() && ConfigValueInSubTree("APT::Never-MarkAuto-Sections", Pkg.Section())) { - if(_config->FindB("Debug::pkgDepCache::AutoInstall",false) == true) - std::clog << "Setting NOT as auto-installed (direct dep of pkg in APT::Never-MarkAuto-Sections)" << std::endl; + if(DebugAutoInstall == true) + std::clog << OutputInDepth(Depth) << "Setting NOT as auto-installed (direct " + << Start.DepType() << " of pkg in APT::Never-MarkAuto-Sections)" << std::endl; MarkInstall(InstPkg,true,Depth + 1, true); } else @@ -1028,7 +1049,7 @@ void pkgDepCache::MarkInstall(PkgIterator const &Pkg,bool AutoInst, PkgIterator Pkg = Ver.ParentPkg(); if (Start->Type != Dep::DpkgBreaks) - MarkDelete(Pkg); + MarkDelete(Pkg,false,Depth + 1); else if (PkgState[Pkg->ID].CandidateVer != *I) MarkInstall(Pkg,true,Depth + 1, false, ForceImportantDeps); diff --git a/apt-pkg/depcache.h b/apt-pkg/depcache.h index f41ad17e9..2d33e21d7 100644 --- a/apt-pkg/depcache.h +++ b/apt-pkg/depcache.h @@ -294,7 +294,10 @@ class pkgDepCache : protected pkgCache::Namespace unsigned long iBrokenCount; unsigned long iPolicyBrokenCount; unsigned long iBadCount; - + + bool DebugMarker; + bool DebugAutoInstall; + Policy *delLocalPolicy; // For memory clean up.. Policy *LocalPolicy; @@ -387,8 +390,9 @@ class pkgDepCache : protected pkgCache::Namespace */ // @{ void MarkKeep(PkgIterator const &Pkg, bool Soft = false, - bool FromUser = true); - void MarkDelete(PkgIterator const &Pkg,bool Purge = false); + bool FromUser = true, unsigned long Depth = 0); + void MarkDelete(PkgIterator const &Pkg, bool Purge = false, + unsigned long Depth = 0); void MarkInstall(PkgIterator const &Pkg,bool AutoInst = true, unsigned long Depth = 0, bool FromUser = true, bool ForceImportantDeps = false); diff --git a/apt-pkg/pkgcache.cc b/apt-pkg/pkgcache.cc index 81a254483..4e10093a8 100644 --- a/apt-pkg/pkgcache.cc +++ b/apt-pkg/pkgcache.cc @@ -21,6 +21,7 @@ /*}}}*/ // Include Files /*{{{*/ #include +#include #include #include #include @@ -290,6 +291,56 @@ pkgCache::PkgIterator::OkState pkgCache::PkgIterator::State() const return NeedsNothing; } /*}}}*/ +// PkgIterator::CandVersion - Returns the candidate version string /*{{{*/ +// --------------------------------------------------------------------- +/* Return string representing of the candidate version. */ +const char * +pkgCache::PkgIterator::CandVersion() const +{ + //TargetVer is empty, so don't use it. + VerIterator version = pkgPolicy::pkgPolicy(Owner).GetCandidateVer(*this); + if (version.IsGood()) + return version.VerStr(); + return 0; +}; + /*}}}*/ +// PkgIterator::CurVersion - Returns the current version string /*{{{*/ +// --------------------------------------------------------------------- +/* Return string representing of the current version. */ +const char * +pkgCache::PkgIterator::CurVersion() const +{ + VerIterator version = CurrentVer(); + if (version.IsGood()) + return CurrentVer().VerStr(); + return 0; +}; + /*}}}*/ +// ostream operator to handle string representation of a package /*{{{*/ +// --------------------------------------------------------------------- +/* Output name < cur.rent.version -> candid.ate.version | new.est.version > (section) + Note that the characters <|>() are all literal above. Versions will be ommited + if they provide no new information (e.g. there is no newer version than candidate) + If no version and/or section can be found "none" is used. */ +std::ostream& +operator<<(ostream& out, pkgCache::PkgIterator Pkg) +{ + if (Pkg.end() == true) + return out << "invalid package"; + + string current = string(Pkg.CurVersion() == 0 ? "none" : Pkg.CurVersion()); + string candidate = string(Pkg.CandVersion() == 0 ? "none" : Pkg.CandVersion()); + string newest = string(Pkg.VersionList().end() ? "none" : Pkg.VersionList().VerStr()); + + out << Pkg.Name() << " < " << current; + if (current != candidate) + out << " -> " << candidate; + if ( newest != "none" && candidate != newest) + out << " | " << newest; + out << " > ( " << string(Pkg.Section()==0?"none":Pkg.Section()) << " )"; + return out; +} + /*}}}*/ // DepIterator::IsCritical - Returns true if the dep is important /*{{{*/ // --------------------------------------------------------------------- /* Currently critical deps are defined as depends, predepends and diff --git a/debian/changelog b/debian/changelog index f1cb7bd0c..bb75ad8af 100644 --- a/debian/changelog +++ b/debian/changelog @@ -22,6 +22,10 @@ apt (0.7.22) UNRELEASED; urgency=low (closes: #189866) * [ABI break] Allow pinning by codename (closes: #97564) * support running "--simulate" as user + * add depth information to the debug output and show what depends + type triggers a autoinst (closes: #458389) + * add debug::pkgDepCache::Marker with more detailed debug output + (closes: #87520) [ Julian Andres Klode ] * apt-pkg/contrib/configuration.cc: Fix a small memory leak in diff --git a/doc/apt.conf.5.xml b/doc/apt.conf.5.xml index fb2be9a28..841bb8f66 100644 --- a/doc/apt.conf.5.xml +++ b/doc/apt.conf.5.xml @@ -679,6 +679,27 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";}; + + Debug::pkgDepCache::Marker + + + Generate debug messages describing which package is marked + as keep/install/remove while the ProblemResolver does his work. + Each addition or deletion may trigger additional actions; + they are shown indented two additional space under the original entry. + The format for each line is MarkKeep, + MarkDelete or MarkInstall followed by + package-name <a.b.c -> d.e.f | x.y.z> (section) + where a.b.c is the current version of the package, + d.e.f is the version considered for installation and + x.y.z is a newer version, but not considered for installation + (because of a low pin score). The later two can be omitted if there is none or if + it is the same version as the installed. + section is the name of the section the package appears in. + + + + Debug::pkgInitConfig diff --git a/doc/examples/configure-index b/doc/examples/configure-index index 5f29a2d3f..dd8d667db 100644 --- a/doc/examples/configure-index +++ b/doc/examples/configure-index @@ -289,6 +289,7 @@ Debug { pkgProblemResolver "false"; pkgDepCache::AutoInstall "false"; // what packages apt install to satify dependencies + pkgDepCache::Marker "false"; pkgAcquire "false"; pkgAcquire::Worker "false"; pkgAcquire::Auth "false"; diff --git a/po/apt-all.pot b/po/apt-all.pot index ec87b27a3..2aa99cfa2 100644 --- a/po/apt-all.pot +++ b/po/apt-all.pot @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-11-12 22:07+0100\n" +"POT-Creation-Date: 2009-06-29 17:01+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -156,7 +156,7 @@ msgstr "" #: cmdline/apt-cache.cc:1714 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:547 -#: cmdline/apt-get.cc:2573 cmdline/apt-sortpkgs.cc:144 +#: cmdline/apt-get.cc:2582 cmdline/apt-sortpkgs.cc:144 #, c-format msgid "%s %s for %s compiled on %s %s\n" msgstr "" @@ -554,7 +554,7 @@ msgstr "" msgid "Y" msgstr "" -#: cmdline/apt-get.cc:146 cmdline/apt-get.cc:1651 +#: cmdline/apt-get.cc:146 cmdline/apt-get.cc:1658 #, c-format msgid "Regex compilation error - %s" msgstr "" @@ -713,11 +713,11 @@ msgstr "" msgid "Internal error, Ordering didn't finish" msgstr "" -#: cmdline/apt-get.cc:809 cmdline/apt-get.cc:1992 cmdline/apt-get.cc:2025 +#: cmdline/apt-get.cc:809 cmdline/apt-get.cc:1999 cmdline/apt-get.cc:2032 msgid "Unable to lock the download directory" msgstr "" -#: cmdline/apt-get.cc:819 cmdline/apt-get.cc:2073 cmdline/apt-get.cc:2319 +#: cmdline/apt-get.cc:819 cmdline/apt-get.cc:2080 cmdline/apt-get.cc:2326 #: apt-pkg/cachefile.cc:65 msgid "The list of sources could not be read." msgstr "" @@ -746,7 +746,7 @@ msgstr "" msgid "After this operation, %sB disk space will be freed.\n" msgstr "" -#: cmdline/apt-get.cc:864 cmdline/apt-get.cc:2168 +#: cmdline/apt-get.cc:864 cmdline/apt-get.cc:2175 #, c-format msgid "Couldn't determine free space in %s" msgstr "" @@ -780,7 +780,7 @@ msgstr "" msgid "Do you want to continue [Y/n]? " msgstr "" -#: cmdline/apt-get.cc:984 cmdline/apt-get.cc:2216 apt-pkg/algorithms.cc:1349 +#: cmdline/apt-get.cc:984 cmdline/apt-get.cc:2223 apt-pkg/algorithms.cc:1349 #, c-format msgid "Failed to fetch %s %s\n" msgstr "" @@ -789,7 +789,7 @@ msgstr "" msgid "Some files failed to download" msgstr "" -#: cmdline/apt-get.cc:1003 cmdline/apt-get.cc:2225 +#: cmdline/apt-get.cc:1003 cmdline/apt-get.cc:2232 msgid "Download complete and in download only mode" msgstr "" @@ -881,29 +881,34 @@ msgstr "" msgid "Selected version %s (%s) for %s\n" msgstr "" -#: cmdline/apt-get.cc:1338 +#: cmdline/apt-get.cc:1307 +#, c-format +msgid "No source package '%s' picking '%s' instead\n" +msgstr "" + +#: cmdline/apt-get.cc:1345 msgid "The update command takes no arguments" msgstr "" -#: cmdline/apt-get.cc:1351 +#: cmdline/apt-get.cc:1358 msgid "Unable to lock the list directory" msgstr "" -#: cmdline/apt-get.cc:1403 +#: cmdline/apt-get.cc:1410 msgid "We are not supposed to delete stuff, can't start AutoRemover" msgstr "" -#: cmdline/apt-get.cc:1435 +#: cmdline/apt-get.cc:1442 msgid "" "The following packages were automatically installed and are no longer " "required:" msgstr "" -#: cmdline/apt-get.cc:1437 +#: cmdline/apt-get.cc:1444 msgid "Use 'apt-get autoremove' to remove them." msgstr "" -#: cmdline/apt-get.cc:1442 +#: cmdline/apt-get.cc:1449 msgid "" "Hmm, seems like the AutoRemover destroyed something which really\n" "shouldn't happen. Please file a bug report against apt." @@ -919,49 +924,49 @@ msgstr "" #. "that package should be filed.") << endl; #. } #. -#: cmdline/apt-get.cc:1445 cmdline/apt-get.cc:1735 +#: cmdline/apt-get.cc:1452 cmdline/apt-get.cc:1742 msgid "The following information may help to resolve the situation:" msgstr "" -#: cmdline/apt-get.cc:1449 +#: cmdline/apt-get.cc:1456 msgid "Internal Error, AutoRemover broke stuff" msgstr "" -#: cmdline/apt-get.cc:1468 +#: cmdline/apt-get.cc:1475 msgid "Internal error, AllUpgrade broke stuff" msgstr "" -#: cmdline/apt-get.cc:1523 +#: cmdline/apt-get.cc:1530 #, c-format msgid "Couldn't find task %s" msgstr "" -#: cmdline/apt-get.cc:1638 cmdline/apt-get.cc:1674 +#: cmdline/apt-get.cc:1645 cmdline/apt-get.cc:1681 #, c-format msgid "Couldn't find package %s" msgstr "" -#: cmdline/apt-get.cc:1661 +#: cmdline/apt-get.cc:1668 #, c-format msgid "Note, selecting %s for regex '%s'\n" msgstr "" -#: cmdline/apt-get.cc:1692 +#: cmdline/apt-get.cc:1699 #, c-format msgid "%s set to manually installed.\n" msgstr "" -#: cmdline/apt-get.cc:1705 +#: cmdline/apt-get.cc:1712 msgid "You might want to run `apt-get -f install' to correct these:" msgstr "" -#: cmdline/apt-get.cc:1708 +#: cmdline/apt-get.cc:1715 msgid "" "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " "solution)." msgstr "" -#: cmdline/apt-get.cc:1720 +#: cmdline/apt-get.cc:1727 msgid "" "Some packages could not be installed. This may mean that you have\n" "requested an impossible situation or if you are using the unstable\n" @@ -969,152 +974,152 @@ msgid "" "or been moved out of Incoming." msgstr "" -#: cmdline/apt-get.cc:1738 +#: cmdline/apt-get.cc:1745 msgid "Broken packages" msgstr "" -#: cmdline/apt-get.cc:1767 +#: cmdline/apt-get.cc:1774 msgid "The following extra packages will be installed:" msgstr "" -#: cmdline/apt-get.cc:1856 +#: cmdline/apt-get.cc:1863 msgid "Suggested packages:" msgstr "" -#: cmdline/apt-get.cc:1857 +#: cmdline/apt-get.cc:1864 msgid "Recommended packages:" msgstr "" -#: cmdline/apt-get.cc:1885 +#: cmdline/apt-get.cc:1892 msgid "Calculating upgrade... " msgstr "" -#: cmdline/apt-get.cc:1888 methods/ftp.cc:702 methods/connect.cc:112 +#: cmdline/apt-get.cc:1895 methods/ftp.cc:702 methods/connect.cc:112 msgid "Failed" msgstr "" -#: cmdline/apt-get.cc:1893 +#: cmdline/apt-get.cc:1900 msgid "Done" msgstr "" -#: cmdline/apt-get.cc:1960 cmdline/apt-get.cc:1968 +#: cmdline/apt-get.cc:1967 cmdline/apt-get.cc:1975 msgid "Internal error, problem resolver broke stuff" msgstr "" -#: cmdline/apt-get.cc:2068 +#: cmdline/apt-get.cc:2075 msgid "Must specify at least one package to fetch source for" msgstr "" -#: cmdline/apt-get.cc:2098 cmdline/apt-get.cc:2337 +#: cmdline/apt-get.cc:2105 cmdline/apt-get.cc:2344 #, c-format msgid "Unable to find a source package for %s" msgstr "" -#: cmdline/apt-get.cc:2147 +#: cmdline/apt-get.cc:2154 #, c-format msgid "Skipping already downloaded file '%s'\n" msgstr "" -#: cmdline/apt-get.cc:2175 +#: cmdline/apt-get.cc:2182 #, c-format msgid "You don't have enough free space in %s" msgstr "" -#: cmdline/apt-get.cc:2181 +#: cmdline/apt-get.cc:2188 #, c-format msgid "Need to get %sB/%sB of source archives.\n" msgstr "" -#: cmdline/apt-get.cc:2184 +#: cmdline/apt-get.cc:2191 #, c-format msgid "Need to get %sB of source archives.\n" msgstr "" -#: cmdline/apt-get.cc:2190 +#: cmdline/apt-get.cc:2197 #, c-format msgid "Fetch source %s\n" msgstr "" -#: cmdline/apt-get.cc:2221 +#: cmdline/apt-get.cc:2228 msgid "Failed to fetch some archives." msgstr "" -#: cmdline/apt-get.cc:2249 +#: cmdline/apt-get.cc:2256 #, c-format msgid "Skipping unpack of already unpacked source in %s\n" msgstr "" -#: cmdline/apt-get.cc:2261 +#: cmdline/apt-get.cc:2268 #, c-format msgid "Unpack command '%s' failed.\n" msgstr "" -#: cmdline/apt-get.cc:2262 +#: cmdline/apt-get.cc:2269 #, c-format msgid "Check if the 'dpkg-dev' package is installed.\n" msgstr "" -#: cmdline/apt-get.cc:2279 +#: cmdline/apt-get.cc:2286 #, c-format msgid "Build command '%s' failed.\n" msgstr "" -#: cmdline/apt-get.cc:2298 +#: cmdline/apt-get.cc:2305 msgid "Child process failed" msgstr "" -#: cmdline/apt-get.cc:2314 +#: cmdline/apt-get.cc:2321 msgid "Must specify at least one package to check builddeps for" msgstr "" -#: cmdline/apt-get.cc:2342 +#: cmdline/apt-get.cc:2349 #, c-format msgid "Unable to get build-dependency information for %s" msgstr "" -#: cmdline/apt-get.cc:2362 +#: cmdline/apt-get.cc:2369 #, c-format msgid "%s has no build depends.\n" msgstr "" -#: cmdline/apt-get.cc:2414 +#: cmdline/apt-get.cc:2421 #, c-format msgid "" "%s dependency for %s cannot be satisfied because the package %s cannot be " "found" msgstr "" -#: cmdline/apt-get.cc:2467 +#: cmdline/apt-get.cc:2474 #, c-format msgid "" "%s dependency for %s cannot be satisfied because no available versions of " "package %s can satisfy version requirements" msgstr "" -#: cmdline/apt-get.cc:2503 +#: cmdline/apt-get.cc:2510 #, c-format msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" msgstr "" -#: cmdline/apt-get.cc:2528 +#: cmdline/apt-get.cc:2537 #, c-format msgid "Failed to satisfy %s dependency for %s: %s" msgstr "" -#: cmdline/apt-get.cc:2542 +#: cmdline/apt-get.cc:2551 #, c-format msgid "Build-dependencies for %s could not be satisfied." msgstr "" -#: cmdline/apt-get.cc:2546 +#: cmdline/apt-get.cc:2555 msgid "Failed to process build dependencies" msgstr "" -#: cmdline/apt-get.cc:2578 +#: cmdline/apt-get.cc:2587 msgid "Supported modules:" msgstr "" -#: cmdline/apt-get.cc:2619 +#: cmdline/apt-get.cc:2628 msgid "" "Usage: apt-get [options] command\n" " apt-get [options] install|remove pkg1 [pkg2 ...]\n" @@ -1130,7 +1135,7 @@ msgid "" " install - Install new packages (pkg is libc6 not libc6.deb)\n" " remove - Remove packages\n" " autoremove - Remove automatically all unused packages\n" -" purge - Remove and purge packages\n" +" purge - Remove packages and config files\n" " source - Download source archives\n" " build-dep - Configure build-dependencies for source packages\n" " dist-upgrade - Distribution upgrade, see apt-get(8)\n" @@ -1158,6 +1163,14 @@ msgid "" " This APT has Super Cow Powers.\n" msgstr "" +#: cmdline/apt-get.cc:2795 +msgid "" +"NOTE: This is only a simulation!\n" +" apt-get needs root privileges for real execution.\n" +" Keep also in mind that locking is deactivated,\n" +" so don't depend on the relevance to the real current situation!" +msgstr "" + #: cmdline/acqprogress.cc:55 msgid "Hit " msgstr "" @@ -1373,7 +1386,7 @@ msgstr "" msgid "File %s/%s overwrites the one in the package %s" msgstr "" -#: apt-inst/extract.cc:464 apt-pkg/contrib/configuration.cc:821 +#: apt-inst/extract.cc:464 apt-pkg/contrib/configuration.cc:822 #: apt-pkg/contrib/cdromutl.cc:150 apt-pkg/sourcelist.cc:320 #: apt-pkg/acquire.cc:418 apt-pkg/clean.cc:34 #, c-format @@ -1666,7 +1679,7 @@ msgstr "" msgid "Unable to accept connection" msgstr "" -#: methods/ftp.cc:864 methods/http.cc:960 methods/rsh.cc:303 +#: methods/ftp.cc:864 methods/http.cc:991 methods/rsh.cc:303 msgid "Problem hashing file" msgstr "" @@ -1750,38 +1763,38 @@ msgstr "" msgid "Unable to connect to %s %s:" msgstr "" -#: methods/gpgv.cc:65 +#: methods/gpgv.cc:71 #, c-format msgid "Couldn't access keyring: '%s'" msgstr "" -#: methods/gpgv.cc:101 +#: methods/gpgv.cc:107 msgid "E: Argument list from Acquire::gpgv::Options too long. Exiting." msgstr "" -#: methods/gpgv.cc:205 +#: methods/gpgv.cc:223 msgid "" "Internal error: Good signature, but could not determine key fingerprint?!" msgstr "" -#: methods/gpgv.cc:210 +#: methods/gpgv.cc:228 msgid "At least one invalid signature was encountered." msgstr "" -#: methods/gpgv.cc:214 +#: methods/gpgv.cc:232 #, c-format msgid "Could not execute '%s' to verify signature (is gpgv installed?)" msgstr "" -#: methods/gpgv.cc:219 +#: methods/gpgv.cc:237 msgid "Unknown error executing gpgv" msgstr "" -#: methods/gpgv.cc:250 +#: methods/gpgv.cc:271 methods/gpgv.cc:278 msgid "The following signatures were invalid:\n" msgstr "" -#: methods/gpgv.cc:257 +#: methods/gpgv.cc:285 msgid "" "The following signatures couldn't be verified because the public key is not " "available:\n" @@ -1797,80 +1810,80 @@ msgstr "" msgid "Read error from %s process" msgstr "" -#: methods/http.cc:377 +#: methods/http.cc:379 msgid "Waiting for headers" msgstr "" -#: methods/http.cc:523 +#: methods/http.cc:525 #, c-format msgid "Got a single header line over %u chars" msgstr "" -#: methods/http.cc:531 +#: methods/http.cc:533 msgid "Bad header line" msgstr "" -#: methods/http.cc:550 methods/http.cc:557 +#: methods/http.cc:552 methods/http.cc:559 msgid "The HTTP server sent an invalid reply header" msgstr "" -#: methods/http.cc:586 +#: methods/http.cc:588 msgid "The HTTP server sent an invalid Content-Length header" msgstr "" -#: methods/http.cc:601 +#: methods/http.cc:603 msgid "The HTTP server sent an invalid Content-Range header" msgstr "" -#: methods/http.cc:603 +#: methods/http.cc:605 msgid "This HTTP server has broken range support" msgstr "" -#: methods/http.cc:627 +#: methods/http.cc:629 msgid "Unknown date format" msgstr "" -#: methods/http.cc:774 +#: methods/http.cc:782 msgid "Select failed" msgstr "" -#: methods/http.cc:779 +#: methods/http.cc:787 msgid "Connection timed out" msgstr "" -#: methods/http.cc:802 +#: methods/http.cc:810 msgid "Error writing to output file" msgstr "" -#: methods/http.cc:833 +#: methods/http.cc:841 msgid "Error writing to file" msgstr "" -#: methods/http.cc:861 +#: methods/http.cc:869 msgid "Error writing to the file" msgstr "" -#: methods/http.cc:875 +#: methods/http.cc:883 msgid "Error reading from server. Remote end closed connection" msgstr "" -#: methods/http.cc:877 +#: methods/http.cc:885 msgid "Error reading from server" msgstr "" -#: methods/http.cc:945 apt-pkg/contrib/mmap.cc:196 +#: methods/http.cc:976 apt-pkg/contrib/mmap.cc:196 msgid "Failed to truncate file" msgstr "" -#: methods/http.cc:1105 +#: methods/http.cc:1141 msgid "Bad header data" msgstr "" -#: methods/http.cc:1122 methods/http.cc:1177 +#: methods/http.cc:1158 methods/http.cc:1213 msgid "Connection failed" msgstr "" -#: methods/http.cc:1229 +#: methods/http.cc:1305 msgid "Internal error" msgstr "" @@ -1890,7 +1903,31 @@ msgid "" "Current value: %lu. (man 5 apt.conf)" msgstr "" -#: apt-pkg/contrib/strutl.cc:1014 +#. d means days, h means hours, min means minutes, s means seconds +#: apt-pkg/contrib/strutl.cc:335 +#, c-format +msgid "%lid %lih %limin %lis" +msgstr "" + +#. h means hours, min means minutes, s means seconds +#: apt-pkg/contrib/strutl.cc:342 +#, c-format +msgid "%lih %limin %lis" +msgstr "" + +#. min means minutes, s means seconds +#: apt-pkg/contrib/strutl.cc:349 +#, c-format +msgid "%limin %lis" +msgstr "" + +#. s means seconds +#: apt-pkg/contrib/strutl.cc:354 +#, c-format +msgid "%lis" +msgstr "" + +#: apt-pkg/contrib/strutl.cc:1018 #, c-format msgid "Selection %s not found" msgstr "" @@ -1905,42 +1942,42 @@ msgstr "" msgid "Opening configuration file %s" msgstr "" -#: apt-pkg/contrib/configuration.cc:662 +#: apt-pkg/contrib/configuration.cc:663 #, c-format msgid "Syntax error %s:%u: Block starts with no name." msgstr "" -#: apt-pkg/contrib/configuration.cc:681 +#: apt-pkg/contrib/configuration.cc:682 #, c-format msgid "Syntax error %s:%u: Malformed tag" msgstr "" -#: apt-pkg/contrib/configuration.cc:698 +#: apt-pkg/contrib/configuration.cc:699 #, c-format msgid "Syntax error %s:%u: Extra junk after value" msgstr "" -#: apt-pkg/contrib/configuration.cc:738 +#: apt-pkg/contrib/configuration.cc:739 #, c-format msgid "Syntax error %s:%u: Directives can only be done at the top level" msgstr "" -#: apt-pkg/contrib/configuration.cc:745 +#: apt-pkg/contrib/configuration.cc:746 #, c-format msgid "Syntax error %s:%u: Too many nested includes" msgstr "" -#: apt-pkg/contrib/configuration.cc:749 apt-pkg/contrib/configuration.cc:754 +#: apt-pkg/contrib/configuration.cc:750 apt-pkg/contrib/configuration.cc:755 #, c-format msgid "Syntax error %s:%u: Included from here" msgstr "" -#: apt-pkg/contrib/configuration.cc:758 +#: apt-pkg/contrib/configuration.cc:759 #, c-format msgid "Syntax error %s:%u: Unsupported directive '%s'" msgstr "" -#: apt-pkg/contrib/configuration.cc:809 +#: apt-pkg/contrib/configuration.cc:810 #, c-format msgid "Syntax error %s:%u: Extra junk at end of file" msgstr "" @@ -2083,101 +2120,105 @@ msgstr "" msgid "Problem syncing the file" msgstr "" -#: apt-pkg/pkgcache.cc:132 +#: apt-pkg/pkgcache.cc:133 msgid "Empty package cache" msgstr "" -#: apt-pkg/pkgcache.cc:138 +#: apt-pkg/pkgcache.cc:139 msgid "The package cache file is corrupted" msgstr "" -#: apt-pkg/pkgcache.cc:143 +#: apt-pkg/pkgcache.cc:144 msgid "The package cache file is an incompatible version" msgstr "" -#: apt-pkg/pkgcache.cc:148 +#: apt-pkg/pkgcache.cc:149 #, c-format msgid "This APT does not support the versioning system '%s'" msgstr "" -#: apt-pkg/pkgcache.cc:153 +#: apt-pkg/pkgcache.cc:154 msgid "The package cache was built for a different architecture" msgstr "" -#: apt-pkg/pkgcache.cc:224 +#: apt-pkg/pkgcache.cc:225 msgid "Depends" msgstr "" -#: apt-pkg/pkgcache.cc:224 +#: apt-pkg/pkgcache.cc:225 msgid "PreDepends" msgstr "" -#: apt-pkg/pkgcache.cc:224 +#: apt-pkg/pkgcache.cc:225 msgid "Suggests" msgstr "" -#: apt-pkg/pkgcache.cc:225 +#: apt-pkg/pkgcache.cc:226 msgid "Recommends" msgstr "" -#: apt-pkg/pkgcache.cc:225 +#: apt-pkg/pkgcache.cc:226 msgid "Conflicts" msgstr "" -#: apt-pkg/pkgcache.cc:225 +#: apt-pkg/pkgcache.cc:226 msgid "Replaces" msgstr "" -#: apt-pkg/pkgcache.cc:226 +#: apt-pkg/pkgcache.cc:227 msgid "Obsoletes" msgstr "" -#: apt-pkg/pkgcache.cc:226 +#: apt-pkg/pkgcache.cc:227 msgid "Breaks" msgstr "" -#: apt-pkg/pkgcache.cc:237 +#: apt-pkg/pkgcache.cc:227 +msgid "Enhances" +msgstr "" + +#: apt-pkg/pkgcache.cc:238 msgid "important" msgstr "" -#: apt-pkg/pkgcache.cc:237 +#: apt-pkg/pkgcache.cc:238 msgid "required" msgstr "" -#: apt-pkg/pkgcache.cc:237 +#: apt-pkg/pkgcache.cc:238 msgid "standard" msgstr "" -#: apt-pkg/pkgcache.cc:238 +#: apt-pkg/pkgcache.cc:239 msgid "optional" msgstr "" -#: apt-pkg/pkgcache.cc:238 +#: apt-pkg/pkgcache.cc:239 msgid "extra" msgstr "" -#: apt-pkg/depcache.cc:121 apt-pkg/depcache.cc:150 +#: apt-pkg/depcache.cc:130 apt-pkg/depcache.cc:159 msgid "Building dependency tree" msgstr "" -#: apt-pkg/depcache.cc:122 +#: apt-pkg/depcache.cc:131 msgid "Candidate versions" msgstr "" -#: apt-pkg/depcache.cc:151 +#: apt-pkg/depcache.cc:160 msgid "Dependency generation" msgstr "" -#: apt-pkg/depcache.cc:172 apt-pkg/depcache.cc:191 apt-pkg/depcache.cc:195 +#: apt-pkg/depcache.cc:181 apt-pkg/depcache.cc:200 apt-pkg/depcache.cc:204 msgid "Reading state information" msgstr "" -#: apt-pkg/depcache.cc:219 +#: apt-pkg/depcache.cc:228 #, c-format msgid "Failed to open StateFile %s" msgstr "" -#: apt-pkg/depcache.cc:225 +#: apt-pkg/depcache.cc:234 #, c-format msgid "Failed to write temporary StateFile %s" msgstr "" @@ -2309,7 +2350,7 @@ msgstr "" msgid "Method %s did not start correctly" msgstr "" -#: apt-pkg/acquire-worker.cc:399 +#: apt-pkg/acquire-worker.cc:413 #, c-format msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." msgstr "" @@ -2340,16 +2381,16 @@ msgstr "" msgid "You may want to run apt-get update to correct these problems" msgstr "" -#: apt-pkg/policy.cc:267 +#: apt-pkg/policy.cc:281 msgid "Invalid record in the preferences file, no Package header" msgstr "" -#: apt-pkg/policy.cc:289 +#: apt-pkg/policy.cc:303 #, c-format msgid "Did not understand pin type %s" msgstr "" -#: apt-pkg/policy.cc:297 +#: apt-pkg/policy.cc:311 msgid "No priority (or zero) specified for pin" msgstr "" @@ -2660,10 +2701,14 @@ msgstr "" msgid "Completely removed %s" msgstr "" -#: apt-pkg/deb/dpkgpm.cc:791 +#: apt-pkg/deb/dpkgpm.cc:789 msgid "Can not write log, openpty() failed (/dev/pts not mounted?)\n" msgstr "" +#: apt-pkg/deb/debsystem.cc:100 +msgid "Not locked" +msgstr "" + #: methods/rred.cc:219 msgid "Could not patch file" msgstr "" -- cgit v1.2.3-70-g09d2 From 8b4894fe9e917409f3ea4cbb189c1648f2cea4df Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Mon, 29 Jun 2009 18:07:30 +0200 Subject: * add Debug::pkgDepCache::Marker with more detailed debug output * add Debug::pkgProblemResolver::ShowScores and make the scores adjustable --- apt-pkg/algorithms.cc | 91 +++++++++++++++++++++++++++++++------------- debian/changelog | 4 +- doc/apt.conf.5.xml | 11 ++++++ doc/examples/configure-index | 1 + po/apt-all.pot | 8 ++-- 5 files changed, 84 insertions(+), 31 deletions(-) (limited to 'doc') diff --git a/apt-pkg/algorithms.cc b/apt-pkg/algorithms.cc index bd33d5ef1..4b1bb4430 100644 --- a/apt-pkg/algorithms.cc +++ b/apt-pkg/algorithms.cc @@ -489,6 +489,34 @@ void pkgProblemResolver::MakeScores() unsigned long Size = Cache.Head().PackageCount; memset(Scores,0,sizeof(*Scores)*Size); + // Important Required Standard Optional Extra + signed short PrioMap[] = { + 0, + _config->FindI("pkgProblemResolver::Scores::Important",3), + _config->FindI("pkgProblemResolver::Scores::Required",2), + _config->FindI("pkgProblemResolver::Scores::Standard",1), + _config->FindI("pkgProblemResolver::Scores::Optional",-1), + _config->FindI("pkgProblemResolver::Scores::Extra",-2) + }; + signed short PrioEssentials = _config->FindI("pkgProblemResolver::Scores::Essentials",100); + signed short PrioInstalledAndNotObsolete = _config->FindI("pkgProblemResolver::Scores::NotObsolete",1); + signed short PrioDepends = _config->FindI("pkgProblemResolver::Scores::Depends",1); + signed short AddProtected = _config->FindI("pkgProblemResolver::Scores::AddProtected",10000); + signed short AddEssential = _config->FindI("pkgProblemResolver::Scores::AddEssential",5000); + + if (_config->FindB("Debug::pkgProblemResolver::ShowScores",false) == true) + clog << "Settings used to calculate pkgProblemResolver::Scores::" << endl + << " Important => " << PrioMap[1] << endl + << " Required => " << PrioMap[2] << endl + << " Standard => " << PrioMap[3] << endl + << " Optional => " << PrioMap[4] << endl + << " Extra => " << PrioMap[5] << endl + << " Essentials => " << PrioEssentials << endl + << " InstalledAndNotObsolete => " << PrioInstalledAndNotObsolete << endl + << " Depends => " << PrioDepends << endl + << " AddProtected => " << AddProtected << endl + << " AddEssential => " << AddEssential << endl; + // Generate the base scores for a package based on its properties for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++) { @@ -502,11 +530,9 @@ void pkgProblemResolver::MakeScores() to allow an obsolete essential packages to be removed by a conflicts on a powerfull normal package (ie libc6) */ if ((I->Flags & pkgCache::Flag::Essential) == pkgCache::Flag::Essential) - Score += 100; + Score += PrioEssentials; // We transform the priority - // Important Required Standard Optional Extra - signed short PrioMap[] = {0,3,2,1,-1,-2}; if (Cache[I].InstVerIter(Cache)->Priority <= 5) Score += PrioMap[Cache[I].InstVerIter(Cache)->Priority]; @@ -515,7 +541,7 @@ void pkgProblemResolver::MakeScores() if those are not obsolete */ if (I->CurrentVer != 0 && Cache[I].CandidateVer != 0 && Cache[I].CandidateVerIter(Cache).Downloadable()) - Score += 1; + Score += PrioInstalledAndNotObsolete; } // Now that we have the base scores we go and propogate dependencies @@ -527,7 +553,7 @@ void pkgProblemResolver::MakeScores() for (pkgCache::DepIterator D = Cache[I].InstVerIter(Cache).DependsList(); D.end() == false; D++) { if (D->Type == pkgCache::Dep::Depends || D->Type == pkgCache::Dep::PreDepends) - Scores[D.TargetPkg()->ID]++; + Scores[D.TargetPkg()->ID]+= PrioDepends; } } @@ -572,10 +598,10 @@ void pkgProblemResolver::MakeScores() for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++) { if ((Flags[I->ID] & Protected) != 0) - Scores[I->ID] += 10000; + Scores[I->ID] += AddProtected; if ((I->Flags & pkgCache::Flag::Essential) == pkgCache::Flag::Essential) - Scores[I->ID] += 5000; - } + Scores[I->ID] += AddEssential; + } } /*}}}*/ // ProblemResolver::DoUpgrade - Attempt to upgrade this package /*{{{*/ @@ -751,19 +777,21 @@ bool pkgProblemResolver::Resolve(bool BrokenFix) *PEnd++ = I; This = this; qsort(PList,PEnd - PList,sizeof(*PList),&ScoreSort); - -/* for (pkgCache::Package **K = PList; K != PEnd; K++) - if (Scores[(*K)->ID] != 0) - { - pkgCache::PkgIterator Pkg(Cache,*K); - clog << Scores[(*K)->ID] << ' ' << Pkg.Name() << - ' ' << (pkgCache::Version *)Pkg.CurrentVer() << ' ' << - Cache[Pkg].InstallVer << ' ' << Cache[Pkg].CandidateVer << endl; - } */ + + if (_config->FindB("Debug::pkgProblemResolver::ShowScores",false) == true) + { + clog << "Show Scores" << endl; + for (pkgCache::Package **K = PList; K != PEnd; K++) + if (Scores[(*K)->ID] != 0) + { + pkgCache::PkgIterator Pkg(Cache,*K); + clog << Scores[(*K)->ID] << ' ' << Pkg << std::endl; + } + } if (Debug == true) clog << "Starting 2" << endl; - + /* Now consider all broken packages. For each broken package we either remove the package or fix it's problem. We do this once, it should not be possible for a loop to form (that is a < b < c and fixing b by @@ -878,7 +906,7 @@ bool pkgProblemResolver::Resolve(bool BrokenFix) } if (Debug == true) - clog << "Package " << I.Name() << " has broken dep on " << Start.TargetPkg().Name() << endl; + clog << "Package " << I.Name() << " has broken " << Start.DepType() << " on " << Start.TargetPkg().Name() << endl; /* Look across the version list. If there are no possible targets then we keep the package and bail. This is necessary @@ -1137,9 +1165,6 @@ bool pkgProblemResolver::ResolveByKeep() unsigned long Size = Cache.Head().PackageCount; - if (Debug == true) - clog << "Entering ResolveByKeep" << endl; - MakeScores(); /* We have to order the packages so that the broken fixing pass @@ -1152,7 +1177,21 @@ bool pkgProblemResolver::ResolveByKeep() *PEnd++ = I; This = this; qsort(PList,PEnd - PList,sizeof(*PList),&ScoreSort); - + + if (_config->FindB("Debug::pkgProblemResolver::ShowScores",false) == true) + { + clog << "Show Scores" << endl; + for (pkgCache::Package **K = PList; K != PEnd; K++) + if (Scores[(*K)->ID] != 0) + { + pkgCache::PkgIterator Pkg(Cache,*K); + clog << Scores[(*K)->ID] << ' ' << Pkg << std::endl; + } + } + + if (Debug == true) + clog << "Entering ResolveByKeep" << endl; + // Consider each broken package pkgCache::Package **LastStop = 0; for (pkgCache::Package **K = PList; K != PEnd; K++) @@ -1198,8 +1237,8 @@ bool pkgProblemResolver::ResolveByKeep() while (true) { if (Debug == true) - clog << "Package " << I.Name() << " has broken dep on " << Start.TargetPkg().Name() << endl; - + clog << "Package " << I.Name() << " has broken " << Start.DepType() << " on " << Start.TargetPkg().Name() << endl; + // Look at all the possible provides on this package SPtrArray VList = Start.AllTargets(); for (pkgCache::Version **V = VList; *V != 0; V++) @@ -1215,7 +1254,7 @@ bool pkgProblemResolver::ResolveByKeep() if ((Flags[I->ID] & Protected) == 0) { if (Debug == true) - clog << " Keeping Package " << Pkg.Name() << " due to dep" << endl; + clog << " Keeping Package " << Pkg.Name() << " due to " << Start.DepType() << endl; Cache.MarkKeep(Pkg, false, false); } diff --git a/debian/changelog b/debian/changelog index bb75ad8af..d1959c074 100644 --- a/debian/changelog +++ b/debian/changelog @@ -24,8 +24,10 @@ apt (0.7.22) UNRELEASED; urgency=low * support running "--simulate" as user * add depth information to the debug output and show what depends type triggers a autoinst (closes: #458389) - * add debug::pkgDepCache::Marker with more detailed debug output + * add Debug::pkgDepCache::Marker with more detailed debug output (closes: #87520) + * add Debug::pkgProblemResolver::ShowScores and make the scores + adjustable [ Julian Andres Klode ] * apt-pkg/contrib/configuration.cc: Fix a small memory leak in diff --git a/doc/apt.conf.5.xml b/doc/apt.conf.5.xml index 841bb8f66..eece75d28 100644 --- a/doc/apt.conf.5.xml +++ b/doc/apt.conf.5.xml @@ -777,6 +777,17 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";}; + + Debug::pkgProblemResolver::ShowScores + + + Display a list of all installed packages with their calculated score + used by the pkgProblemResolver. The description of the package + is the same as described in Debug::pkgDepCache::Marker + + + + Debug::sourceList diff --git a/doc/examples/configure-index b/doc/examples/configure-index index dd8d667db..cea0dcc09 100644 --- a/doc/examples/configure-index +++ b/doc/examples/configure-index @@ -288,6 +288,7 @@ DPkg Debug { pkgProblemResolver "false"; + pkgProblemResolver::ShowScores "false"; pkgDepCache::AutoInstall "false"; // what packages apt install to satify dependencies pkgDepCache::Marker "false"; pkgAcquire "false"; diff --git a/po/apt-all.pot b/po/apt-all.pot index 2aa99cfa2..a1d7cb99d 100644 --- a/po/apt-all.pot +++ b/po/apt-all.pot @@ -780,7 +780,7 @@ msgstr "" msgid "Do you want to continue [Y/n]? " msgstr "" -#: cmdline/apt-get.cc:984 cmdline/apt-get.cc:2223 apt-pkg/algorithms.cc:1349 +#: cmdline/apt-get.cc:984 cmdline/apt-get.cc:2223 apt-pkg/algorithms.cc:1388 #, c-format msgid "Failed to fetch %s %s\n" msgstr "" @@ -2302,17 +2302,17 @@ msgid "" "The package %s needs to be reinstalled, but I can't find an archive for it." msgstr "" -#: apt-pkg/algorithms.cc:1107 +#: apt-pkg/algorithms.cc:1135 msgid "" "Error, pkgProblemResolver::Resolve generated breaks, this may be caused by " "held packages." msgstr "" -#: apt-pkg/algorithms.cc:1109 +#: apt-pkg/algorithms.cc:1137 msgid "Unable to correct problems, you have held broken packages." msgstr "" -#: apt-pkg/algorithms.cc:1375 apt-pkg/algorithms.cc:1377 +#: apt-pkg/algorithms.cc:1414 apt-pkg/algorithms.cc:1416 msgid "" "Some index files failed to download, they have been ignored, or old ones " "used instead." -- cgit v1.2.3-70-g09d2 From 5541fea3f0c6b4b40048c161b9201b03243ac3a9 Mon Sep 17 00:00:00 2001 From: Julian Andres Klode Date: Mon, 6 Jul 2009 16:20:13 +0200 Subject: configure-index: document Dir::Etc::SourceParts and some other options (Closes: #459605) --- debian/changelog | 2 ++ doc/examples/configure-index | 7 +++++-- 2 files changed, 7 insertions(+), 2 deletions(-) (limited to 'doc') diff --git a/debian/changelog b/debian/changelog index 668192967..6ffd0459f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -41,6 +41,8 @@ apt (0.7.22) UNRELEASED; urgency=low * apt-pkg/contrib/configuration.cc: Fix a small memory leak in ReadConfigFile. * Introduce support for the Enhances field. (Closes: #137583) + * configure-index: document Dir::Etc::SourceParts and some other options + (Closes: #459605) -- Christian Perrier Wed, 22 Apr 2009 10:13:54 +0200 diff --git a/doc/examples/configure-index b/doc/examples/configure-index index cea0dcc09..b2bc95e69 100644 --- a/doc/examples/configure-index +++ b/doc/examples/configure-index @@ -219,10 +219,13 @@ Dir "/" // Config files Etc "etc/apt/" { - SourceList "sources.list"; Main "apt.conf"; - Preferences "preferences"; Parts "apt.conf.d/"; + Preferences "preferences"; + SourceList "sources.list"; + SourceParts "sources.list.d"; + VendorList "vendors.list"; + VendorParts "vendors.list.d"; }; // Locations of binaries -- cgit v1.2.3-70-g09d2 From ecf59bfcf3ca573aa15a44086a7852d1308ff1ad Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Tue, 7 Jul 2009 19:23:04 +0200 Subject: [apt-get] add possibility to hide the user simulation note --- cmdline/apt-get.cc | 11 ++++++----- doc/apt-get.8.xml | 3 ++- doc/examples/configure-index | 1 + 3 files changed, 9 insertions(+), 6 deletions(-) (limited to 'doc') diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index 97c83c9b0..2ca0855b6 100644 --- a/cmdline/apt-get.cc +++ b/cmdline/apt-get.cc @@ -2793,11 +2793,12 @@ int main(int argc,const char *argv[]) /*{{{*/ // simulate user-friendly if apt-get has no root privileges if (getuid() != 0 && _config->FindB("APT::Get::Simulate") == true) { - cout << _("NOTE: This is only a simulation!\n" - " apt-get needs root privileges for real execution.\n" - " Keep also in mind that locking is deactivated,\n" - " so don't depend on the relevance to the real current situation!" - ) << std::endl; + if (_config->FindB("APT::Get::Show-User-Simulation-Note",true) == true) + cout << _("NOTE: This is only a simulation!\n" + " apt-get needs root privileges for real execution.\n" + " Keep also in mind that locking is deactivated,\n" + " so don't depend on the relevance to the real current situation!" + ) << std::endl; _config->Set("Debug::NoLocking",true); } diff --git a/doc/apt-get.8.xml b/doc/apt-get.8.xml index e7f6d7094..50971d0f5 100644 --- a/doc/apt-get.8.xml +++ b/doc/apt-get.8.xml @@ -364,7 +364,8 @@ Configuration Item: APT::Get::Simulate. Simulation run as user will deactivate locking (Debug::NoLocking) - automatical and display a notice indicating that this is only a simulation. + automatical. Also a notice will be displayed indicating that this is only a simulation, + if the option APT::Get::Show-User-Simulation-Note is set (Default: true) Neigther NoLocking nor the notice will be triggered if run as root (root should know what he is doing without further warnings by apt-get). diff --git a/doc/examples/configure-index b/doc/examples/configure-index index cea0dcc09..ce56f1563 100644 --- a/doc/examples/configure-index +++ b/doc/examples/configure-index @@ -55,6 +55,7 @@ APT Diff-Only "false"; Tar-Only "false"; Build-Dep-Automatic "true"; + Show-User-Simulation-Note "true"; }; Cache -- cgit v1.2.3-70-g09d2 From 7b139dabdcdff68a2854405e55924559591df8d0 Mon Sep 17 00:00:00 2001 From: "bubulle@debian.org" <> Date: Fri, 17 Jul 2009 20:08:54 +0200 Subject: Update French manpage translation --- debian/changelog | 2 + doc/fr/apt.conf.fr.5.xml | 534 +++++++++++++++++++++++++++++++++++++---------- 2 files changed, 426 insertions(+), 110 deletions(-) (limited to 'doc') diff --git a/debian/changelog b/debian/changelog index fc88e08cb..6ce3b7c7d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -4,6 +4,8 @@ apt (0.7.22) UNRELEASED; urgency=low * Documentation translations: - Fix a typo in apt-get(8) French translation. Closes: #525043 Thanks to Guillaume Delacour for spotting it. + - Updated apt.conf(5) manpgae French translation. + Thanks to Aurélien Couderc. * Translations: - fr.po - sk.po. Closes: #525857 diff --git a/doc/fr/apt.conf.fr.5.xml b/doc/fr/apt.conf.fr.5.xml index 88ce46134..f4d8eddb8 100644 --- a/doc/fr/apt.conf.fr.5.xml +++ b/doc/fr/apt.conf.fr.5.xml @@ -15,7 +15,7 @@ &apt-email; &apt-product; - 29 Février 2004 + 11 juillet 2008 @@ -33,26 +33,30 @@ Le fichier apt.conf est le principal fichier de configurati de la collection d'outils que constitue APT ; tous les outils font appel à ce fichier de configuration et utilisent un analyseur syntaxique en ligne de commande commun afin de fournir un environnement uniforme. Quand un outil -d'APT démarre, il lit (si elle existe) la variable d'environnement -APT_CONFIG ; puis il lit les fichiers situés dans +d'APT démarre, il lit la configuration désignée par variable d'environnement +APT_CONFIG (si elle existe), puis il lit les fichiers situés dans Dir::Etc::Parts ainsi que le principal fichier de configuration indiqué par Dir::Etc::main ; enfin il applique les options de -la ligne de commande qui annulent les directives de configuration, chargeant, -si nécessaire, d'autres fichiers de configuration. +la ligne de commande qui prévalent sur les directives de configuration, chargeant +si nécessaire d'autres fichiers de configuration. Le fichier de configuration est construit comme un arbre d'options organisées en groupes fonctionnels. On se sert du double deux points (« :: ») pour indiquer une option ; par exemple, APT::Get::Assume-Yes est -une option pour le groupe d'outils APT, destinée à l'outil Get. Les options -n'héritent pas des groupes de leurs parents. +une option pour le groupe d'outils APT, destinée à l'outil Get. Il n'y a pas d'héritage +des options des groupes parents. Syntaxiquement, le langage de configuration est conçu sur le même modèle que les langages utilisés par des outils ISC tels que bind et dhcp. Une ligne -qui commence par // est un commentaire et elle est ignorée. +qui commence par // est traitée comme un commentaire et ignorée, de +même que les sections de texte placées entre /* et +*/, tout comme les commentaires C/C++. Chaque ligne est de la forme : - APT::Get::Assume-Yes "true"; + +APT::Get::Assume-Yes "true"; + Le point-virgule final est obligatoire et les guillemets sont optionnels. On peut déclarer un nouveau champ d'action avec des accolades, comme suit : @@ -68,10 +72,9 @@ APT { -avec des retours à la ligne pour faciliter la lecture. On peut créer des -listes en ouvrant un champ d'action et en mettant un seul mot entre -apostrophes suivi d'un point-virgule. On peut mettre plusieurs entrées, -séparées par un point-virgule. +avec des retours à la ligne pour faciliter la lecture. On peut créer une liste +en ouvrant un champ d'action et en y insérant une chaîne entre guillemets suivie +d'un point virgule pour chaque élément de la liste. @@ -79,14 +82,21 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";}; -Les modèles &docdir;examples/apt.conf &configureindex; +Les modèles &docdir;examples/apt.conf et &configureindex; montrent à quoi devrait ressembler le fichier de configuration. +Les identifiants des options de configuration ne sont pas sensibles à la casse. +Dans l'exemple précédent, on pourrait donc aussi bien utiliser +dpkg::pre-install-pkgs. + + Deux éléments spéciaux sont autorisés : #include et -#clear. #include inclut le fichier donné en argument, -à moins que le nom ne se termine par une barre oblique. #clear sert à -effacer une liste de noms. +#clear. #include inclut le fichier donné en +argument, à moins que le nom ne se termine par une barre oblique auquel cas le +répertoire entier est inclus. #clear sert à +effacer une partie de l'arbre de configuration. L'élément désigné et tout ses +descendants sont supprimés. Tous les outils d'APT possèdent une option qui permet de @@ -95,20 +105,31 @@ syntaxe consiste en un nom complet d'option (par exemple APT::Get::Assume-Yes) suivi par un signe égal, puis par la nouvelle valeur de l'option. On peut compléter une liste en ajoutant un « :: » au nom de la liste. - + Le groupe APT - -Ce groupe d'options contrôle aussi bien le comportement global d'APT que -la prise en compte des options pour chaque outil. + +Ce groupe d'options contrôle le comportement global d'APT et contient également +des options communes à tous les outils. Architecture L'architecture du système ; cette option positionne l'architecture à utiliser -pour récupérer des fichiers et analyser des listes de paquets. L'architecture -interne par défaut est celle pour laquelle APT a été compilé. +pour récupérer des fichiers et analyser des listes de paquets. La valeur interne par +défaut est l'architecture pour laquelle APT a été compilé. + + + +Default-Release + +Indique la distribution à utiliser par défaut lors de l'installation d'un +paquet si plusieurs versions sont disponibles. La valeur peut être un nom de +distribution ou un numéro de version. Exemples : « stable », +« testing », « 4.0 », « 5.0* ». Les noms de codes +des distributions (« etch », « lenny », etc.) ne sont pas +permis pour l'instant. Voir aussi &apt-preferences;. @@ -123,7 +144,7 @@ dans sa prise de d Clean-Installed Avec cette option qui est activée par défaut, la fonctionnalité « autoclean » -supprime tout paquet qui ne peut plus être récupéré dans le cache. +supprime du cache tout paquet qui ne peut plus être récupéré. Quand cette option est désactivée, les paquets qui sont installés localement sont aussi exclus du nettoyage - mais notez que APT ne fournit aucun moyen direct pour les réinstaller. @@ -134,9 +155,9 @@ direct pour les r Désactive la configuration immédiate ; cette dangereuse option désactive une partie du code de mise en ordre de APT pour que ce dernier effectue le -moins d'appels possible à Dpkg. C'est peut-être nécessaire sur des systèmes -lents à un seul utilisateur mais c'est extrêmement dangereux et cela peut -faire échouer les scripts d'installation, voire pire. +moins d'appels possible à &dpkg;. Ça peut être nécessaire sur des systèmes +à un seul utilisateur extrêmement lents, mais cette option est très dangereuse et +peut faire échouer les scripts d'installation, voire pire. Utilisez-la à vos risques et périls. @@ -155,39 +176,37 @@ ou tous les paquets dont ces paquets d Cache-Limit -APT utilise un fichier cache d'une taille mémoire fixe pour ranger les -informations du fichier « available ». Cette option fixe la taille -de ce cache. +APT utilise un fichier de cache chargé en mémoire avec mmap pour ranger les +informations sur les paquets disponibles. Cette option fixe la taille mémoire +allouée pour le chargement de ce cache. Build-Essential Cette option définit les paquets qui sont considérés comme faisant partie -des dépendances essentielles pour la construction des paquets. +des dépendances essentielles pour la construction de paquets. Get La sous-section Get contrôle l'outil &apt-get;, -veuillez consulter -sa documentation pour avoir plus d'informations sur les options en question. +veuillez consulter sa documentation pour avoir plus d'informations sur les options +en question. Cache -La sous-section Cache contrôle l'outil &apt-cache;, -veuillez -consulter sa documentation pour avoir plus d'informations sur les options en -question. +La sous-section Cache contrôle l'outil +&apt-cache;, veuillez consulter sa documentation pour avoir plus d'informations +sur les options en question. CDROM -La sous-section CDROM contrôle l'outil&apt-cdrom;, -veuillez -consulter sa documentation pour avoir plus d'informations sur les options en -question. +La sous-section CDROM contrôle l'outil +&apt-cdrom;, veuillez consulter sa documentation pour avoir plus d'informations +sur les options en question. @@ -199,13 +218,20 @@ Le groupe d'options Acquire contr les gestionnaires d'URI. +PDiffs +Essayer de télécharger les fichiers différentiels appelés +PDiffs pour les paquets ou les fichiers sources, plutôt que +de les télécharger entièrement. Par défaut à « true ». + + + Queue-Mode -Le mode file d'attente ; Queue-Mode peut prendre une valeur -parmi host ou access et cela détermine comment APT -parallélise les connexions sortantes. Host signifie qu'une -connexion par cible sera initiée, tandis que access signifie qu'une -connexion par type d'URI sera initiée. +Le mode de file d'attente ; Queue-Mode peut prendre les +valeurs host ou access et cela détermine +comment APT parallélise les connexions sortantes. Host signifie +qu'une connexion par cible sera initiée, tandis que access signifie +qu'une connexion par type d'URI sera initiée. @@ -227,30 +253,32 @@ Par d http -URI HTTP ; http::Proxy est le mandataire (proxy) http à utiliser par défaut. +URI HTTP ; http::Proxy est le mandataire (proxy) HTTP à utiliser par défaut. Il se présente sous la forme standard : -http://[[user][:pass]@]host[:port]/. En utilisant la syntaxe : -http::Proxy::<host>, où le mot-clé spécial DIRECT -indique de n'utiliser aucun mandataire, on peut spécifier un mandataire -pour chaque machine distante. La variable d'environnement http_proxy -remplace tous ces paramètres. +http://[[user][:pass]@]host[:port]/. On peut spécifier un +mandataire particulier par hôte distant en utilisant la syntaxe : +http::Proxy::<hôte>. Le mot-clé spécial +DIRECT indique alors de n'utiliser aucun mandataire pour +l'hôte. +Lorsqu'elle est définie, la variable d'environnement http_proxy +annule et remplace toutes les options de mandataire HTTP. -Trois options de configuration sont fournies pour le contrôle des caches qui -sont compatibles avec HTTP/1.1. No-Cache signifie que le mandataire -ne doit pas du tout utiliser les réponses qu'il a stockées ; Max-Age +Trois options de configuration sont fournies pour le contrôle des caches compatibles +avec HTTP/1.1. No-Cache signifie que le mandataire ne doit jamais +utiliser les réponses qu'il a stockées ; Max-Age sert uniquement pour les fichiers d'index : cela demande au cache de les mettre à jour quand leur ancienneté est supérieure au nombre de secondes -donné. Debian met à jour son fichier d'index de manière journalière, la +donné. Debian met à jour ses fichiers d'index de manière quotidienne ; la valeur par défaut est donc de 1 jour. No-Store sert uniquement -pour les fichiers d'archive : cela demande au cache de ne jamais garder +pour les fichiers d'archive  et demande au cache de ne jamais garder la requête. Cela peut éviter de polluer un cache mandataire avec des fichiers .deb très grands. Note : Squid 2.0.2 ne prend en compte aucune de ces options. L'option timeout positionne le compteur de temps mort (timeout) -utilisé par la méthode : cela vaut pour tout (connexion, données). +utilisé par la méthode. Cela vaut pour tout, connexion et données. Une option de configuration est fournie pour contrôler la profondeur du tube @@ -264,27 +292,62 @@ ne respectent pas la RFC 2068. +https + +URI HTTPS. Les options de contrôle de cache et de mandataire (proxy) sont les +mêmes que pour la méthode http. L'option +Pipeline-Depth n'est pas encore supportée. + + +La sous-option CaInfo spécifie le fichier contenant +les informations sur les certificats de confiance. +La sous-option booléenne Verify-Peer précise si le +certificat d'hôte du serveur doit être confronté aux certificats de confiance +ou pas. La sous-option booléenne Verify-Host précise s'il +faut vérifier ou pas le nom d'hôte du serveur. SslCert +détermine le certificat à utiliser pour l'authentification du client. +SslKey détermine quelle clef privée doit être utilisée pour +l'authentification du client. SslForceVersion surcharge la +valeur par défaut pour la version de SSL à utiliser et peut contenir l'une des +chaînes 'TLSv1' ou 'SSLv3'. + +Chacune de ces options peut être spécifiée pour un hôte particulier en +utilisant <hôte>::CaInfo, +<hôte>::Verify-Peer, +<hôte>::Verify-Host, +<hôte>::SslCert, +<hôte>::SslKey et +<hôte>::SslForceVersion respectivement. + + + ftp -URI FTP ; ftp::Proxy est le serveur mandataire par défaut à utiliser. Il se -présente sous la forme standard : -ftp://[[user][:pass]@]host[:port]/ ; il est remplacé par la -variable d'environnement ftp_proxy. Pour utiliser un mandataire ftp, -vous devez renseigner l'entrée ftp::ProxyLogin dans le fichier de -configuration. Cette entrée spécifie les commandes qui disent au serveur -mandataire comment se connecter. Voyez &configureindex; pour savoir -comment faire. Les variables de substitution disponibles sont : -$(PROXY_USER), $(PROXY_PASS), $(SITE_USER), -$(SITE_PASS), $(SITE), et $(SITE_PORT). -Chacune correspond à un élément de l'URI. +URI FTP ; ftp::Proxy est le mandataire (proxy) FTP à utiliser par défaut. +Il se présente sous la forme standard : +ftp://[[user][:pass]@]host[:port]/. On peut spécifier un +mandataire particulier par hôte distant en utilisant la syntaxe : +ftp::Proxy::<hôte>. Le mot-clé spécial +DIRECT indique alors de n'utiliser aucun mandataire pour +l'hôte. Lorsqu'elle est définie, la variable d'environnement +ftp_proxy annule et replace toutes les options de mandataire +FTP. Pour utiliser un mandataire FTP, vous devrez renseigner l'entrée +ftp::ProxyLogin dans le fichier de configuration. Cette +entrée spécifie les commandes à envoyer au mandataire pour lui préciser à quoi +il doit se connecter. Voyez &configureindex; pour savoir comment faire. Les +variables de substitution disponibles sont : +$(PROXY_USER), $(PROXY_PASS), +$(SITE_USER), $(SITE_PASS), +$(SITE) et $(SITE_PORT). Chacune +correspond à l'élément respectif de l'URI. -L'option timeout positionne le compteur de temps mort (timeout) -utilisé par la méthode : cela vaut pour tout (connexion, données). +L'option timeout positionne le compteur de temps mort +(timeout) utilisé par la méthode. Cela vaut pour tout, connexion et données. Plusieurs options de configuration sont fournies pour contrôler le mode -passif. Généralement, c'est plus sûr d'activer le mode passif ; cela +passif. Il est généralement plus sûr d'activer le mode passif et cela marche dans presque tous les environnements. Cependant, certaines situations nécessitent que le mode passif soit désactivé et que le mode « port » de ftp @@ -293,16 +356,18 @@ connexions qui passent par un mandataire ou pour une machine spécifique (examinez le modèle de fichier de configuration). -On peut utiliser un mandataire FTP pour atteindre une cible HTTP en -positionnant la variable d'environnement ftp_proxy à une url http -- -consultez la méthode http ci-dessus pour la syntaxe. On ne peut pas fixer -cette variable dans le fichier de configuration et il n'est pas recommandé -d'utiliser HTTP par FTP à cause de son peu d'efficacité. +Il est possible de faire transiter le trafic FTP par un mandataire HTTP en +positionnant la variable d'environnement ftp_proxy à une URL +HTTP -- +consultez la méthode http ci-dessus pour la syntaxe. On ne peut pas le faire +dans le fichier de configuration et il n'est de toute façon pas recommandé +d'utiliser FTP au travers de HTTP en raison la faible efficacité de cette +méthode. L'option ForceExtended contrôle l'utilisation des commandes liées à la RFC 2428, EPSV et EPRT. Par défaut, elle vaut -« false » ; ce qui signifie que ces commandes ne sont +« false » ce qui signifie que ces commandes ne sont utilisées que pour une connexion de type IPv6. Quand elle vaut « true », on les utilise même si la connexion est de type IPv4. La plupart des serveurs FTP ne suivent pas la RFC 2428. @@ -311,7 +376,7 @@ plupart des serveurs FTP ne suivent pas la RFC 2428. cdrom -URI CDROM ; la seule option de configuration pour les URI de CDROM +URI cédérom ; la seule option de configuration pour les URI de cédérom est le point de montage : cdrom::Mount ; il doit représenter le point de montage du lecteur de cédérom indiqué dans /etc/fstab. @@ -326,9 +391,9 @@ peuvent gpgv -URI GPGV ; la seule option pour les URI GPGV est celle qui permet de +URI GPGV ; la seule option pour les URI GPGV est celle qui permet de passer des paramètres à gpgv. - gpgv::Options Options supplémentaires passées à + gpgv::Options : options supplémentaires passées à gpgv. @@ -341,7 +406,8 @@ URI GPGV ; la seule option pour les URI GPGV est celle qui permet de Les répertoires de la section Dir::State concernent le système local. lists est le répertoire où placer les listes de paquets -téléchargés et status est le nom du fichier d'état de Dpkg. +téléchargés et status est le nom du fichier d'état de +&dpkg;. preferences concerne APT : c'est le nom du fichier des préférences. Dir::State contient le répertoire par défaut préfixé à tous les @@ -353,8 +419,8 @@ ou ./. cache local : par exemple, les deux caches de paquets srcpkgcache et pkgcache, et aussi l'endroit où sont placées les archives téléchargées, Dir::Cache::archives. On peut -empêcher la création des caches en laissant leur nom en blanc. Cela ralentit -le démarrage mais cela sauve de l'espace disque. Il vaut mieux se passer du +empêcher la création des caches en saisissant un nom vide. Cela ralentit +le démarrage mais sauve de l'espace disque. Il vaut mieux se passer du cache pkgcache plutôt que se passer du cache srcpkgcache. Comme pour Dir::State, le répertoire par défaut est contenu dans Dir::Cache. @@ -375,11 +441,22 @@ de configuration est charg Les programmes binaires sont pointés par Dir::Bin. L'emplacement des gestionnaires de méthodes est indiqué par Dir::Bin::Methods ; gzip, -Dpkg, apt-get, +dpkg, apt-get, dpkg-source, dpkg-buildpackage et apt-cache indiquent l'emplacement des programmes correspondants. - + + +L'option de configuration RootDir a une signification +particulière. Lorsqu'elle est définie, tous les chemins déclarés dans +Dir:: sont considérés relativement à +RootDir, même les chemins spécifiés de manière +absolue. Ainsi par exemple si RootDir est +défini comme /tmp/staging, et que chemin du fichier d'état +Dir::State::status est déclaré comme +/var/lib/dpkg/status alors ce fichier sera cherché +dans /tmp/staging/var/lib/dpkg/status. + APT et DSelect @@ -406,14 +483,14 @@ de nouveaux paquets. Options -Le contenu de cette variable est passé à &apt-get; avec les options de la ligne -de commande quand ce programme est utilisé dans la phase d'installation. +Le contenu de cette variable est passé comme options de ligne de commande à +&apt-get; lors de la phase d'installation. UpdateOptions -Le contenu de cette variable est passé à &apt-get; avec les options de la -ligne de commande quand ce programme est utilisé dans la phase de mise à jour. +Le contenu de cette variable est passé comme options de ligne de commande à +&apt-get; lors de la phase de mise à jour. @@ -427,7 +504,7 @@ qu'en cas d'erreur que l'on propose -Comment APT appelle Dpkg +Comment APT appelle &dpkg; Plusieurs directives de configuration contrôlent la manière dont APT invoque &dpkg; : elles figurent dans la section DPkg. @@ -435,8 +512,8 @@ invoque &dpkg; : elles figurent dans la section DPkg. Options -Il s'agit d'une liste d'options à passer à dpkg. Les options doivent être -déclarées en utilisant la notation de liste et chaque élément de liste est +Il s'agit d'une liste d'options à passer à &dpkg;. Les options doivent être +déclarées en utilisant la notation de liste et chaque élément de la liste est passé comme un seul argument à &dpkg;. @@ -450,7 +527,7 @@ liste. Les commandes sont appel Pre-Install-Pkgs -Il s'agit d'une liste de commandes shell à exécuter avant d'appeler Dpkg. +Il s'agit d'une liste de commandes shell à exécuter avant d'appeler &dpkg;. Tout comme pour Options, on doit utiliser la notation de liste. Les commandes sont appelées dans l'ordre, en utilisant /bin/sh : APT s'arrête dès que l'une d'elles échoue. Sur @@ -467,7 +544,7 @@ commande pass Run-Directory -APT se place dans ce répertoire avant d'appeler Dpkg ; par défaut c'est +APT se place dans ce répertoire avant d'appeler &dpkg; ; par défaut c'est le répertoire /. @@ -481,25 +558,262 @@ cr + +Options « Periodic » et « Archive » + +Les groupes d'options APT::Periodic et +APT::Archive configurent les comportements périodiques +réalisés par le script /etc/cron.daily/apt, lancé +quotidiennement. + + +APT::Periodic +Les options de cette section permettent de configurer la fréquence +d'exécution des tâches APT lancées automatiquement. Ces paramètre prennent +comme valeurs des périodicités d'exécution en nombre de jours. + + +Update-Package-List : périodicité de mise à jour de la +liste des paquets disponibles. (0 = désactivé) + + +Download-Upgradable-Packages : périodicité de +téléchargement dans le cache des paquets pour lesquels une mise à jour est +disponible. (0 = désactivé) + + +AutocleanInterval : périodicité des +« autoclean », c'est à dire de la suppression du cache des paquets +qui ne peuvent plus être téléchargés. (0 = désactivé) + + +Unattended-Upgrade : périodicité de mise à jour +automatique du système sans intervention humaine. Le paquet +unattended-upgrades doit être installé pour que cette tâche +s'exécute. Le cas échéant un fichier journal est écrit dans +/var/log/unattended-upgrades. (0 = désactivé) + + +APT::Archive +Les options de la section APT::Archive permettent de contrôler la taille +du cache de paquets. + + +MaxAge : ancienneté maximale d'un paquet dans le cache, +en nombre de jours. Les paquets plus anciens sont supprimés. (0 = désactivé) + + +MaxSize : taille maximale du cache en Mo. (0 = +désactive) Si ce maximum est dépassé, des paquets sont supprimés jusqu'à ce +que la taille du cache repasse sous la limite. Les paquets les plus volumineux +sont supprimés en premier. + + +MinAge : age minimum d'un paquet du cache, en nombre de +jours (0 = désactivé). Un paquet plus récent ne sera pas supprimé. Cette option +est utile pour garder à disposition une version des paquets en cas de problème +grave. + + + + + Les options de débogage - -La plupart des options de la section debug n'ont aucun intérêt -pour le simple utilisateur ; cependant, -Debug::pkgProblemResolver affiche d'intéressantes informations sur -les décisions que prend la commande dist-upgrade. Debug::NoLocking -désactive le verrouillage de fichier de manière à ce que APT puisse effectuer -quelques opérations sans être « root » et -Debug::pkgDPkgPM affiche la ligne de commande à chaque appel de -Dpkg. Debug::IdentCdrom désactive l'inclusion de -données de type statfs dans les ID de CDROM. -Debug::Acquire::gpgv Débogage de la méthode gpgv. - + +Les options de la section Debug:: servent soit à provoquer +l'affichage d'informations de débogage sur la sortie d'erreur standard du +programme qui utilise les librairies APT, soit à activer des modes de +fonctionnement spéciaux qui sont principalement utiles pour déboguer le +comportement de APT. La plupart de ces options n'ont pas +d'intérêt pour un utilisateur normal, mais certaines peuvent tout de même être +utiles : + + + +Debug::pkgProblemResolver affiche d'intéressantes +informations sur les décisions prises par les commandes dist-upgrade, +upgrade, install, remove et purge. + + +Debug::NoLocking désactive le verrouillage de fichier de +manière à ce que APT puisse effectuer quelques opérations (telles que +apt-get -s install) sans être « root ». + + +Debug::pkgDPkgPM affiche la ligne de commande à chaque appel +de &dpkg;. + + +Debug::IdentCdrom désactive l'inclusion de données de type +statfs dans les ID de cédérom. + + + +Voici une liste complète des options de débogage de APT. + +Debug::Acquire::cdrom + +Affiche les informations concernant les sources de type cdrom:// + + +Debug::Acquire::ftp + +Affiche les informations concernant le téléchargement de paquets par FTP. + + +Debug::Acquire::http + +Affiche les informations concernant le téléchargement de paquets par HTTP. + + +Debug::Acquire::https + +Affiche les informations concernant le téléchargement de paquets par HTTPS. + + +Debug::Acquire::gpgv + +Affiche les informations relatives à la vérification de signatures +cryptographiques avec gpg. + + +Debug::aptcdrom + +Affiche des informations concernant l'accès aux collections de paquets +stockées sur cédérom. + + +Debug::BuildDeps + +Décrit le processus de résolution des dépendances pour la construction de +paquets source ( « build-dependencies » ) par &apt-get;. + + +Debug::Hashes + +Affiche toutes les clefs de hachage cryptographiques générées par les +librairies APT. + + +Debug::IdentCdrom +Désactive l'inclusion des données de type +statfs pour la génération des ID de cédérom, à savoir le +nombre de blocs libres et utilisés sur le système de fichier du cédérom. + + +Debug::NoLocking + +Désactive le verrouillage de fichiers. Cela permet par exemple de lancer deux +instances de « apt-get update » en même temps. + + +Debug::pkgAcquire + +Trace les ajouts et suppressions d'éléments de la queue globale de +téléchargement. + + +Debug::pkgAcquire::Auth + +Affiche les détails de la vérification des sommes de contrôle et des signatures +cryptographiques des fichiers téléchargés, ainsi que les erreurs éventuelles. + + +Debug::pkgAcquire::Diffs + +Affiche les informations de téléchargement et de prise en compte des fichiers +différentiels des indexes de paquets, ainsi que les erreurs éventuelles. + + +Debug::pkgAcquire::RRed + +Affiche les détails de la vérification des sommes de contrôle et des signatures +cryptographiques des fichiers téléchargés, ainsi que les erreurs éventuelles. + + +Debug::pkgAcquire::Worker + +Affiche toutes les interactions avec les processus enfants qui se chargent +effectivement des téléchargements. + + +Debug::pkgAcquire::pkgAutoRemove + +Affiche les changements concernant le marquage des paquets comme installés +automatiquement, et la suppression des paquets inutiles. + + +Debug::pkgDepCache::AutoInstall + +Génère les informations de débogage décrivant quels paquets sont installés +automatiquement pour satisfaire les dépendances. Cela concerne la passe +initiale d'installation automatique effectuée par exemple par +apt-get install et pas le système de résolution de +dépendances complet de APT ; voir +Debug::pkgProblemResolver pour ce dernier. + + +Debug::pkgInitConfig + +Au lancement, affiche l'ensemble de la configuration sur la sortie d'erreur +standard. + + +Debug::pkgDPkgPM + +Affiche la commande exacte d'invocation de &dpkg; à chaque appel ; les +arguments sont séparés par des espaces. + + +Debug::pkgDPkgProgressReporting + Affiche l'ensemble des informations reçues de &dpkg; par +l'intermédiaire du descripteur de fichier d'état, et les éventuelles erreurs +d'analyse de ce fichier. + + +Debug::pkgOrderList + +Affiche les étapes de l'algorithme utilisé pour choisir l'ordre dans lequel APT +passe les paquets à &dpkg;. + + +Debug::pkgPackageManager + +Affiche le détail des opérations liées à l'invocation de &dpkg;. + + +Debug::pkgPolicy + +Au lancement, affiche la priorité de chaque liste de paquets. + + +Debug::pkgProblemResolver + +Affiche la trace d'exécution du système de résolution de dépendances (ne +concerne que les cas où un problème de dépendances complexe se présente). + + +Debug::sourceList + +Affiche les fournisseurs déclarés dans le fichier +/etc/apt/vendors.list. + + + + + Exemples -Le fichier &configureindex; contient un modèle de fichier montrant les valeurs par -défaut de toutes les options possibles. +Le fichier &configureindex; contient un modèle de fichier montrant des exemples +pour toutes les options existantes. @@ -514,4 +828,4 @@ d &manbugs; &deux-traducteurs; - \ No newline at end of file + -- cgit v1.2.3-70-g09d2 From d82cdf7391f04a98e5fb954ca23506f7f52435b0 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Wed, 22 Jul 2009 09:40:02 +0200 Subject: * doc/apt.conf.5.xml: - merged patch from Aurélien Couderc to improve the text (thanks!) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- debian/changelog | 7 +++---- doc/apt.conf.5.xml | 12 ++++++++---- 2 files changed, 11 insertions(+), 8 deletions(-) (limited to 'doc') diff --git a/debian/changelog b/debian/changelog index 668cf5596..2fb53972d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -29,10 +29,6 @@ apt (0.7.21) UNRELEASED; urgency=low - provide DPkg::Chroot-Directory config option (useful for testing) * Only run Download-Upgradable and Unattended-Upgrades if the initial update was successful Closes: #341970 - - -- Michael Vogt Thu, 28 May 2009 17:51:42 +0200 - - [ Michael Vogt ] * apt-pkg/indexcopy.cc: - support having CDs with no Packages file (just a Packages.gz) by not forcing a verification on non-existing files @@ -77,6 +73,9 @@ apt (0.7.21) UNRELEASED; urgency=low * build fixes for g++-4.4 * cmdline/apt-mark: - add "showauto" option to show automatically installed packages + * doc/apt.conf.5.xml: + - merged patch from Aurélien Couderc to improve the text + (thanks!) [ Dereck Wonnacott ] * apt-ftparchive might write corrupt Release files (LP: #46439) diff --git a/doc/apt.conf.5.xml b/doc/apt.conf.5.xml index 1835f2282..6590c9795 100644 --- a/doc/apt.conf.5.xml +++ b/doc/apt.conf.5.xml @@ -70,7 +70,7 @@ APT { with newlines placed to make it more readable. Lists can be created by - opening a scope and including a single word enclosed in quotes followed by a + opening a scope and including a single string enclosed in quotes followed by a semicolon. Multiple entries can be included, each separated by a semicolon. @@ -87,7 +87,8 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";}; Two specials are allowed, #include and #clear #include will include the given file, unless the filename ends in a slash, then the whole directory is included. - #clear is used to erase a list of names. + #clear is used to erase a part of the configuration tree. The + specified element and all its descendents are erased. All of the APT tools take a -o option which allows an arbitrary configuration directive to be specified on the command line. The syntax is a full option @@ -173,7 +174,7 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";}; PDiffs - Try do download deltas called PDiffs for + Try to download deltas called PDiffs for Packages or Sources files instead of downloading whole ones. True by default. @@ -683,7 +684,7 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";}; Debug::pkgInitConfig - Dump the default configuration to standard output on + Dump the default configuration to standard error on startup. @@ -766,6 +767,8 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";}; + -- cgit v1.2.3-70-g09d2