On Thu, 3 Jul 2014 08:59:57 +0200
Michael Vogt <m...@debian.org> wrote:

> 
> Thanks for your bugreport.
>  
> > (warning: attached patch is not a solution, it is just intended to
> > show the problem)
> > 
> > Setting Dir::Cache::archives and Dir::Cache to the empty string (as
> > instructed by man 5 apt.conf) do NOT disable cache but set it to
> > '/'.
> > 
> > Consequence: apt-get clean then effectively cleans '/' and removes
> > all files here.
> > 
> > Not true anymore but even worse, on squeeze it also removes the
> > '/lib64' symlink, breaking the loader and preventing any new
> > dynamically linked binary to be launched.
> 
> This sounds like we want to improve the description of the apt.conf
> manpage. I assume your use-case was to disable the binary cache? Maybe
> you can suggest a way to make the description clearer to avoid the
> issue for others?
> 
> As for protecting against this, I attached a patch that makes clean a
> bit more careful and fix the example where Dir::Cache::archives="" is
> empty. But there is only so much we can do, e.g. if someone sets
> Dir::Cache=/vmlinuz its hard to have a programmatic way to detect that
> this is a bad idea. But I'm happy to protect against obvious ones
> (like Clean("/")).
> 

Hi Michael, and thanks for your answer.

The use-case was indeed to disable the bin cache. Your patch is a good
protection against misreading the manual. Btw, I tried with '/dev/null'
only because it is handled differently in configuration.cc, I don't
think it's useful to protect against this.

For the manpage, I believe changing "their names" and "empty string"
to the actual values would be clear enough (attached patch).

Regards
-- 
Cédric
diff --git a/doc/apt.conf.5.xml b/doc/apt.conf.5.xml
index fcbf20d..ffecc6c 100644
--- a/doc/apt.conf.5.xml
+++ b/doc/apt.conf.5.xml
@@ -608,10 +608,11 @@ DPkg::Pre-Install-Pkgs {"/usr/sbin/dpkg-preconfigure --apt";};
    information, such as the two package caches <literal>srcpkgcache</literal> and 
    <literal>pkgcache</literal> as well as the location to place downloaded archives, 
    <literal>Dir::Cache::archives</literal>. Generation of caches can be turned off
-   by setting their names to the empty string. This will slow down startup but
-   save disk space. It is probably preferable to turn off the pkgcache rather
-   than the srcpkgcache. Like <literal>Dir::State</literal> the default
-   directory is contained in <literal>Dir::Cache</literal></para>
+   by setting <literal>pkgcache</literal> or <literal>srcpkgcache</literal> to
+   <literal>""</literal>.  This will slow down startup but save disk space. It
+   is probably preferable to turn off the pkgcache rather than the srcpkgcache.
+   Like <literal>Dir::State</literal> the default directory is contained in
+   <literal>Dir::Cache</literal></para>
 
    <para><literal>Dir::Etc</literal> contains the location of configuration files, 
    <literal>sourcelist</literal> gives the location of the sourcelist and 

Reply via email to