[Rule-list] vacuum example
Eugene Wong
disposable_eugene at hotmail.com
Sun Dec 1 10:22:58 EET 2002
>From: Martin Stricker <shugal at gmx.de>
>
>Eugene Wong wrote:
<snip>
> > Therefore, I'll try to make Vacuum move the file and its directory
> > names to /var/spool/
> >
> > For example:
> > [root at ew486 root]# ls /var/spool/
> > cron locate mail vacuum
> > [root at ew486 root]# ls /var/spool/vacuum/
> > usr/
> > lib/
> > usr/
> >
> > To see the files & directories for deletion, the user has to enter
> > into these directories, or list the subdirectories. Perhaps the
> > easiest way is to use "locate spool/vacuum".
>
>Idea: Rename /var/run/vacuum.tmp_lst to /var/spool/vacuum/todo.list
>and keep the list of things that were moved here in there. Then a
>vacuum --empty would do something like
>cd /var/spool/vacuum
>rm -rf *
>touch todo.list
I'm not sure that I understand the value of this list. Wouldn't it be better
to just use "locate spool/vacuum"? After we clean out /var/spool/vacuum/,
then we could just use updatedb. 1 advantage is that we don't have to worry
about parsing another file. What advantages does todo.lst have?
> > After that, the user can eliminate at his convenience. An interesting
> > thing that may need to be considered is making the directory secure
> > so that _only_ files & directories from the local system can be sent
> > there.
>
>Hmmmm... that would require vacuum to check with the output of mount
>before doing anything, right? Or is there another way? Maybe vacuum
>should be restricted to ext2/ext3 filesystems, so no one ruins a Windows
>installation? Oh well, why care... ;=D
Yeah, we shouldn't care! :^) After trying out the scripts this afternoon, I
found out that it's difficult for me to get the script to allow a
non-root-user to move things into a /var sub-directory. I'm sure that it
isn't hard, but now that I really think about it, non-root-users shouldn't
be deleting files like that. If we require the user to be root, then we pass
on all of the resposibility to him. It seems to solve all security problems.
If they complain, then we can say, "You shouldn't be deleting!".
This also reminds me of the file lists that you & Marco recommended. I think
that something like that gets really complex. I believe that that type of a
feature should be dealt with by another script. The more that I think about
it, the more I would like to keep this project extremely small. It's basic
goal should be to just help a person do what he already normally does, but
do it faster. Adding features should help him, & not burden him. I think
that if we add too many safety checks here & there, then the user's
expectations begin to rise, & then we must take on more responsibility.
The spool idea is good, because it helps us to test out the system without
those files, & yet we don't actually have to delete them.
If Vacuum has to be rpm aware, then all of a sudden, Vacuum becomes less
portable & more difficult to test. What happens if packages become less
bloated but we still have records of the old packages? To make a good set of
lists, we have to make a very intelligent script. What happens if rpm takes
on a different standard? Then we have to rewrite the script to handle both
standards. What about Debian users? When RH 38.2 comes out, there will be so
many file lists that the lists will become bloated. It all becomes a big
headache to just save approx. 100 MB. I realize that people are on fixed
budgets, & can't buy hard drives, but that is the responsibility of the
package maintainers, not RULE or Vacuum. I don't want to spend time trying
to figure out what I & other users will need. There's just no way for me to
figure out how many emacs files are not needed & with whom they are not
needed. That just takes too much energy.
If you would *really* like to build lists of these files in packages, then
we should make a specific script to handle that. In fact, we may want to
make a full binary to deal with it. If you are absolutely sure about this,
then I would recommend that somebody just start with pseudocode.
<snip>
> > To send the files to /var/spool/vacuum/ and restore them, I would
> > like to have the script just make use of mv. It seems so much easier
> > to have the script do "mv usr/lib/locale /" in order to restore the
> > directories & files.
>
>Danger, Will Robinson, danger! ;-)) I have a bad feeling with this,
>blindly overwriting a whole directory tree... And I want to be able to
>`vacuum -r qwertz` (because that's the German keyboard ;=D ), and thus
>restore my keyboard, without stating the complete path, and without
>restoring all those other keyboards and other stuff that I prevacuumed
>before. Yeah, I'm lazy... ;=D I think the todo.list would be convenient
>for this, and to manually took up what's still to be erased.
You shouldn't have to state the complete path with my suggestion. Vacuum
should be able to look at /var/spool/vacuum/path/to/keyboard/layouts/qwertz
and realize that qwertz belongs to /path/to/keyboard/layouts/ It should be
able to figure this out by removing "/var/spool/vacuum/" from
"/var/spool/vacuum/path/to/keyboard/layouts/".
It should be easy for the user to restore 1 or 2 files, but it will be
extremely difficult to restore a large portion of them. /usr/lib/locale/
would be a real pain to restore if you decided restore half of them in no
particular pattern. This is like a real vacuum, in that once you suck it up,
you could still retrieve it, but it will be *very* tedious. Vacuum is only
good for files & directories that have a 90-100% certainty of being useless.
strip has no safety checks at all. I think that vacuum should be just like
strip. I think that there will be so few people using small hard drives
[500MB or less], that it wouldn't be worth our time to make it featureful.
On top of that, people are making smaller & smaller packages: uclibc,
tinygcc, TinyX. This means that there are even less people in need of saving
space.
Also, building up your own personal /var/db/vacuum.lst file should be done
slowly over time. Vacuum should be a tool for advanced users, or just users
who don't care.
To help reduce risk, we could try building a script that analyses the names
of the scripts, and asseses the amount of risk involved. It could give an
alert when certain flags have been set. If the user decides to follow
through, it could call Vacuum, & pass the file name as an arguement.
> > To permanently delete the files, the script could just "echo
> > usr/lib/locale>>[permanent config file]", then do "rm -rf
> > /var/spool/vacuum/usr/lib/locale/". Any other files & directories in
> > /var/spool/vacuum/usr/lib should remain.
>
>Sounds good - just give me the chance to erase only parts of that
>directory, but restore others (which could be done earlier).
<snip>
I've thought about this some more. I don't understand how we are supposed to
simplify the deletion process. Maybe there could be a script that is only in
charge of cleaning out /var/spool/vacuum/ & its subdirectories. Maybe the
cfg file can indicate when to clean these files out. For example, if I
vacuum .../locale on Monday, & vacuum .../i18n on Wednesday, then the
following Monday, the script will remove all files & directories 1 week old.
.../locale will be gone, but .../i18n will still be there. Maybe the cfg
file can allow root user to decide what to do, by causing the script to
prompt him.
To summarize this email, Vacuum is not meant to help you learn what to
delete, or decide what to delete. It only helps you delete what you already
know is deletable, & compensate. Any other features can be a seperate
project.
Sincerely, and with thanks,
Eugene T.S. Wong
_________________________________________________________________
Add photos to your messages with MSN 8. Get 2 months FREE*.
http://join.msn.com/?page=features/featuredemail
_______________________________________________
Rule Project HOME PAGE: http://www.rule-project.org/rule/
Original Rule Development Site http://savannah.gnu.org/projects/rule/
Original RULE mailing list: Rule-list at nongnu.org, hosted at http://mail.nongnu.org/mailman/listinfo/rule-list
This full static mirror of the Run Up to Date Linux Everywhere Project mailing list, originally hosted at http://lists.hellug.gr/mailman/listinfo/rule-list, is kept online by Free Software popularizer, researcher and trainer Marco Fioretti. To know how you can support this archive, and Marco's work in general, please click here