Hi James,
Thanks for putting it out there. And great response.
My comments follow.
Steve.
On 20-10-2014 18:20, James Lynes wrote:
I got the following feedback from posting the install script on Perl
Monks.
Any thoughts? Willing to keep it updated as needed.
I see 3.0.2 is available. Is it in the svn repository?
At the time of writing it is not there. Look here to check:
http://sourceforge.net/p/wxperl/code/HEAD/tree/
If you look at my earlier emails, you can find a script which points to
my own github repo with 3.0.2 in it.
James
--------------------------------------------------------------------------------------------
I think that a couple of improvements can be made there.
First of all,
find /usr | grep -i wx | grep -v -i python | grep -v -i soffice >
rm_w+x.sh # | Collect wx files. Exclude wxpython, and soffice
files sed -i -e 's/\/usr\//rm -rf \/usr\//g' rm_wx.sh
[download]
<http://perlmonks.org/?abspart=1;displaytype=displaycode;node_id=1104254;part=1>
This looks scary and will break the packages installed in the system.
For example, wxmaxima, a frontend to a symbolic calculation system
written in LISP, will be deleted (but the package will be still marked
installed). MCabber, a jabber client not related to Perl or Wx in any
way, is going to get damaged, too.
It's true, it is dangerous. When I'm running and re-running it, it is
more important to me that I don't have to do a total rebuild each time,
but we should try to refine this part of the script to make it safer for
users. If your Perl Monk has any ideas we could incorporate them.
Manual cleanups should be done only in /usr/local;
I don't know about this, if that is true we could make it:
find /usr/local
instead.
other parts of /usr belong to dpkg. Perhaps feeding the output of the
command to dpkg -S and removing the packages it finds is a better
idea, but you still need a way to filter the package names which
should not be deleted (perhaps removing only packages with names
matching 'lib*' will help for a start?).
Also, you can save on the child processes by using find expressions
instead of grep: find /usr -iwholename '*wx*' \! \( -iwholename
'*python*' -o -iwholename '*soffice' \) should produce the same output
(and you can also use -iname instead of -iwholename to filter file
names only).
It takes a few seconds out of 45 minutes, I don't think it is significant.
Another two relatively unimportant things are that you ask the users
to create a Perl directory in their ~, but don't use it much and
download wxPerl and Alien-wxWidgets in the ~ instead
You can update the wxPerl and Alien-wxWidgets directories to
~/Perl/wxPerl and ~/Perl/wxPerlAlien-wxWidgets if you think is neater.
and that you can save a lot of time on apt-get startup if you merge
all apt-get install commands into one.
I agree. It's a trade-off between readability and execution. Your
format is more readable, but the merged format is easier to manipulate.
Again, I'm not sure that the total execution time is much faster. I
don't mind which course we take.
----------------------------------------------------------------------------
My response:
aitap:
Thank you for your reply. I'll get back to the original author and see
if we can improve the find section. The rm_wx.sh script is saved, so I
will take a look and see what was deleted unintentionally. The cleanup
commands would not be needed for a new install. For me, it was
visually easier to keep the apt-get commands separate as I was merging
several scripts and cross checking between them to make sure I didn't
miss anything. The Perl directory is where I put the install script
and other install files. The user is free to customize to their
installation.
James