<html lang="en"> <head> <title>Deleting Packages - Stow</title> <meta http-equiv="Content-Type" content="text/html"> <meta name="description" content="Stow"> <meta name="generator" content="makeinfo 4.13"> <link title="Top" rel="start" href="index.html#Top"> <link rel="prev" href="Installing-Packages.html#Installing-Packages" title="Installing Packages"> <link rel="next" href="Conflicts.html#Conflicts" title="Conflicts"> <link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage"> <!-- This manual describes GNU Stow version 2.2.2 (9 November 2015), a program for managing the installation of software packages. Software and documentation is copyrighted by the following: (C) 1993, 1994, 1995, 1996 Bob Glickstein <bobg+stow@zanshin.com> (C) 2000, 2001 Guillaume Morin <gmorin@gnu.org> (C) 2007 Kahlil (Kal) Hodgson <kahlil@internode.on.net> (C) 2011 Adam Spiers <stow@adamspiers.org> Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided also that the section entitled ``GNU General Public License'' is included with the modified manual, and provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the Free Software Foundation. --> <meta http-equiv="Content-Style-Type" content="text/css"> <style type="text/css"><!-- pre.display { font-family:inherit } pre.format { font-family:inherit } pre.smalldisplay { font-family:inherit; font-size:smaller } pre.smallformat { font-family:inherit; font-size:smaller } pre.smallexample { font-size:smaller } pre.smalllisp { font-size:smaller } span.sc { font-variant:small-caps } span.roman { font-family:serif; font-weight:normal; } span.sansserif { font-family:sans-serif; font-weight:normal; } --></style> </head> <body> <div class="node"> <a name="Deleting-Packages"></a> <p> Next: <a rel="next" accesskey="n" href="Conflicts.html#Conflicts">Conflicts</a>, Previous: <a rel="previous" accesskey="p" href="Installing-Packages.html#Installing-Packages">Installing Packages</a>, Up: <a rel="up" accesskey="u" href="index.html#Top">Top</a> <hr> </div> <h2 class="chapter">6 Deleting Packages</h2> <p><a name="index-deletion-28"></a>When the <samp><span class="option">-D</span></samp> option is given, the action of Stow is to delete a package from the target tree. Note that Stow will not delete anything it doesn't “own”. Deleting a package does <em>not</em> mean removing it from the stow directory or discarding the package tree. <p>To delete a package, Stow recursively scans the target tree, skipping over any directory that is not included in the installation image.<a rel="footnote" href="#fn-1" name="fnd-1"><sup>1</sup></a> For example, if the target directory is <samp><span class="file">/usr/local</span></samp> and the installation image for the package being deleted has only a <samp><span class="file">bin</span></samp> directory and a <samp><span class="file">man</span></samp> directory at the top level, then we only scan <samp><span class="file">/usr/local/bin</span></samp> and <samp><span class="file">/usr/local/bin/man</span></samp>, and not <samp><span class="file">/usr/local/lib</span></samp> or <samp><span class="file">/usr/local/share</span></samp>, or for that matter <samp><span class="file">/usr/local/stow</span></samp>. Any symlink it finds that points into the package being deleted is removed. Any directory that contained only symlinks to the package being deleted is removed. <p><a name="tree-refolding"></a> <h3 class="section">6.1 Refolding “foldable” trees.</h3> <p><a name="index-refolding-trees-29"></a><a name="index-tree-refolding-30"></a> After removing symlinks and empty subdirectories, any directory that contains only symlinks to a single other package is considered to be a previously “folded” tree that was “split open.” Stow will refold the tree by removing the symlinks to the surviving package, removing the directory, then linking the directory back to the surviving package. However, this behaviour can be prevented via the <samp><span class="option">--no-folding</span></samp> option; see <a href="Invoking-Stow.html#Invoking-Stow">Invoking Stow</a>. <!-- =========================================================================== --> <div class="footnote"> <hr> <h4>Footnotes</h4><p class="footnote"><small>[<a name="fn-1" href="#fnd-1">1</a>]</small> This approach was introduced in version 2 of GNU Stow. Previously, the whole target tree was scanned and stow directories were explicitly omitted. This became problematic when dealing with very large installations. The only situation where this is useful is if you accidentally delete a directory in the package tree, leaving you with a whole bunch of dangling links. Note that you can enable the old approach with the <samp><span class="option">-p</span></samp> option. Alternatively, you can use the <samp><span class="option">--badlinks</span></samp> option get stow to search for dangling links in your target tree and remove the offenders manually.</p> <hr></div> </body></html>