Puppy Linux Discussion Forum Forum Index Puppy Linux Discussion Forum
Puppy HOME page : puppylinux.com
"THE" alternative forum : puppylinux.info
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

The time now is Sun 19 May 2013, 21:12
All times are UTC - 4
 Forum index » Taking the Puppy out for a walk » Suggestions
Making Pets that don't wipe out needed files on uninstall
Moderators: Flash, Ian, JohnMurga
Post new topic   Reply to topic View previous topic :: View next topic
Page 3 of 4 [47 Posts]   Goto page: Previous 1, 2, 3, 4 Next
Author Message
jpeps

Joined: 31 May 2008
Posts: 2421

PostPosted: Tue 09 Aug 2011, 11:35    Post subject:  

puppyluvr wrote:
:

Couldnt the PPM parse /root/.packages and compare against a list of builtins before uninstalling?


Unfortunately, all the distro's installed files aren't listed in the builtin list (even initially). It would be more helpful to run an "already installed" check, even if that would include locally installed files (do I really want my locally installed apps to stop working when I uninstall a package?) Of course, this would have to be noted somewhere before installation
Back to top
View user's profile Send private message 
big_bass


Joined: 13 Aug 2007
Posts: 1736

PostPosted: Tue 09 Aug 2011, 13:05    Post subject:  

having other package formats and package management
would solve most of those problems

but that may be a hard dog biscuit to swallow

anyway having a choice is better than not having a choice

Joe

_________________
slackware 14
Back to top
View user's profile Send private message 
jpeps

Joined: 31 May 2008
Posts: 2421

PostPosted: Tue 09 Aug 2011, 15:19    Post subject:  

big_bass wrote:
having other package formats and package management
would solve most of those problems

but that may be a hard dog biscuit to swallow

anyway having a choice is better than not having a choice

Joe


Yes..well for myself I'm using a "keepfile" along with an uninstall script that won't touch anything on it (in addition to not removing builtins). When checking the pet, any "already installed" files go on the list before installation (although I'm more likely to repackage it).
Back to top
View user's profile Send private message 
big_bass


Joined: 13 Aug 2007
Posts: 1736

PostPosted: Tue 09 Aug 2011, 19:29    Post subject:  

well just to clear up what I meant was
when I started on puppy you had dot pets and tar.gz and the first pets before woof pets

when I started it was not possible to use slackwares pkgtool
to install packages on puppy because pkgtool handles tgz and txz and a few other formats that slackware spinoffs use

but it is now possible to use pkgtool I have been using it daily for over 2 years to install packages I havent needed to install a single pet in over 2 years and it works perfectly


so I am not rambling on about something I havent tested myself to be working

so there is now a choice when I started with puppy that choice wasnt an option I worked on it and now it is a valid option

now I take sources (official sources) from the developers web sites
and build packages againt the libs on my system
therefore maintaining perfert compatibility to the other installed programs and glibc all almost automatically



if this sounds hard to believe look at this
http://www.murga-linux.com/puppy/viewtopic.php?t=70289


there are choices but can you teach an old dog a new trick?


what does that have to do with wiping out installed packages ?
thats already an function built into pkgtool OTB

Joe

_________________
slackware 14
Back to top
View user's profile Send private message 
Lobster
Official Crustacean


Joined: 04 May 2005
Posts: 15109
Location: Paradox Realm

PostPosted: Tue 09 Aug 2011, 21:18    Post subject:  

Several things to mention here:

In Android (a Linux fork) programs have options to install, launch and uninstall. Simples.
This can be done with SFS (includes dependencies) and
http://portablelinuxapps.org/ (not all of which work in Puppy)

Proper PPM can be implemented in the design specs of Saluki
http://puppylinux.org/wikka/Puppy6

Proper Puppy
Proper Penguin

_________________
Puppy WIKI
Back to top
View user's profile Send private message Visit poster's website 
jpeps

Joined: 31 May 2008
Posts: 2421

PostPosted: Fri 12 Aug 2011, 03:02    Post subject:  

Here's a prototype for an installer that shows the pet's files along with already installed files that it will clobber.
PetCheck.png
 Description   
 Filesize   59.75 KB
 Viewed   718 Time(s)

PetCheck.png

Back to top
View user's profile Send private message 
amigo

Joined: 02 Apr 2007
Posts: 1757

PostPosted: Fri 12 Aug 2011, 03:33    Post subject:  

Slackware's 'installpkg -warn package.txz' will show any conflicts and warn of locations which will be removed by installation of the package.
Back to top
View user's profile Send private message 
jpeps

Joined: 31 May 2008
Posts: 2421

PostPosted: Sun 14 Aug 2011, 11:59    Post subject:  

amigo wrote:
Slackware's 'installpkg -warn package.txz' will show any conflicts and warn of locations which will be removed by installation of the package.


After testing a bit, I think an installer with a -noclobber option is necessary. I noticed some pet that replace libs with links, so that the uninstall will break things even with a "keepfile." Gnucash clobbers some /etc files, etc., and even after uninstalling (with the keepfile) other programs (gnumeric, etc) won't work right.
Back to top
View user's profile Send private message 
sc0ttman


Joined: 16 Sep 2009
Posts: 2173
Location: UK

PostPosted: Sun 14 Aug 2011, 15:32    Post subject:  

amigo wrote:
There should be *no* 'built-in' files. Every file should be part of a single package which can be installed, removed upgraded, etc. It seems like a good idea, jam a bunch of stuff into a single image and call it a 'base' installation, but that concept is at the core of the problem with puppy package management -how can you manage these built-ins? We have had a special program which could remove parts of the base, but why have a special program to do it at all? A simple list of all the base files doesn't help when we want to remove coherent parts of that base, update it or whatever. Everything should simply be part of an individual package to keep track of it.

Why doesn't Woof do this? I have not checked the 'builtins' file, but wouldn't it be a simple change to just create a new file for each package added during Woof, with the package contents. Then the 'builtins' can be split by package... It is a (tiny) first step in the right direction, right? Or is that a 'hackish', pointless workaround?

And was the 'special program' called Pet-be-Gone, for unleashed builds?

_________________
Akita Linux, VLC-GTK, Pup Search, Pup File Search
Back to top
View user's profile Send private message 
jpeps

Joined: 31 May 2008
Posts: 2421

PostPosted: Sun 14 Aug 2011, 21:40    Post subject:  

Here's a prototype that lets you see files in the package, view installed files and built-in files that would get clobbered, and install only the remaining files (Install-NoClobber). The Install List can be edited*, or regular install chosen. With the "No-Clobber" option, only the installed libs are copied to /root/.packages, so there is no danger of unintentional file deletion.

* Added: "files to be installed" opens in Geany, so the list can be immediately edited prior to installing.
PetCheck.png
 Description   
 Filesize   44.66 KB
 Viewed   653 Time(s)

PetCheck.png

Back to top
View user's profile Send private message 
jpeps

Joined: 31 May 2008
Posts: 2421

PostPosted: Mon 15 Aug 2011, 01:58    Post subject:  

Installed gnucash with Install-NoClobber and it didn't break gnumeric. Another nice thing, is I could easily edit out all the manuals,etc, without rebuilding the package.

http://murga-linux.com/puppy/viewtopic.php?p=553362#553362
Back to top
View user's profile Send private message 
big_bass


Joined: 13 Aug 2007
Posts: 1736

PostPosted: Wed 24 Aug 2011, 19:19    Post subject:  

you have to first get around some built in problems like core utils for an example

and nobody seems to take an interest when people talk about trying to organize things
that gets looked upon as being anti puppy around here

until people take an interest in some of these concerns your
"your answer my friend is blowing in the wind"

but there is still hope here is one example you could run to see what I mean

some files are pre instaled in different places than official packages

so when you decide to update beware of these pit falls

how do you know what bins were removed from full packages ?



Joe

run this its simple and safe it just shows one example with core utils

Code:

#!/bin/bash

:> /tmp/missing
:> /tmp/not-missing

#-------------------------------------
# generate a list for testing core bins
#-------------------------------------
#you could add something to test

echo "[
base64
basename
cat
chcon
chgrp
chmod
chown
chroot
cksum
comm
cp
csplit
cut
date
dd
df
dir
dircolors
dirname
du
echo
env
expand
expr
factor
false
fmt
fold
groups
head
hostid
id
install
join
link
ln
logname
ls
md5sum
mkdir
mkfifo
mknod
mktemp-gnu
mv
nice
nl
nohup
nproc
od
paste
pathchk
pinky
pr
printenv
printf
ptx
pwd
readlink
rm
rmdir
runcon
seq
sha1sum
sha224sum
sha256sum
sha384sum
sha512sum
shred
shuf
sleep
sort
split
stat
stdbuf
stty
sum
sync
tac
tail
tee
test
timeout
touch
tr
true
truncate
tsort
tty
uname
unexpand
uniq
unlink
users
vdir
wc
who
whoami
yes">/tmp/coreutils-test




#-------------------------------------
# test core bins to see if they exist
#-------------------------------------

>/tmp/location
for package in `cat /tmp/coreutils-test`
do echo "$package"
 which "$package" >>/tmp/location
if [[ $? -eq 0 ]] ; then  # we found it
    # do stuff to file

   echo  "$package" "-->ok" >>/tmp/not-missing
   
else
   echo  "$package" "-->missing" >>/tmp/missing



fi

done


  grep  '^\/usr' "/tmp/location"  >/tmp/wrongplace

Xdialog --backtitle "These core utils are installed in the wrong place
  they should be installed in /bin  " \
        --tailbox /tmp/wrongplace 18 70
 
 
               
Xdialog --backtitle "These are  missing core utils "  \
        --tailbox /tmp/missing 18 70
             


_________________
slackware 14
Back to top
View user's profile Send private message 
jpeps

Joined: 31 May 2008
Posts: 2421

PostPosted: Thu 25 Aug 2011, 03:09    Post subject:  

big_bass wrote:


run this its simple and safe it just shows one example with core utils


Nice!!

A good reason why they should be in /bin is that your computer won't boot without them. I moved them over (lucid 525), and don't anticipate any problems*.

*edit..... after correcting my scripts to: "#!/bin/env"

Code:

#!/bin/sh
 while read line
 do
 mv "$line" /bin
 done </tmp/wrongplace
Back to top
View user's profile Send private message 
8-bit


Joined: 03 Apr 2007
Posts: 3012
Location: Oregon

PostPosted: Fri 02 Sep 2011, 14:51    Post subject:  

PetCheck is now available in Additional Software Section under Utilities.
I have downloaded it and tried it and it works Great!
Thank you jpeps!
Back to top
View user's profile Send private message 
big_bass


Joined: 13 Aug 2007
Posts: 1736

PostPosted: Sat 03 Sep 2011, 11:46    Post subject:  

Hey jpeps

*note that I havent seen your package yet to comment about it*

trying to standardize things can be tricky with cut down pre installed packages

only using the example I posted using core utils and Xdialog

the snippet you posted
should have a safety so you could recover from if something gets clobbered


first run the core utils check I posted above to generate the
/tmp/wrongplace file

then
Code:
 
#!/bin/sh

 #---------------------------------------------------------------------
 # make a back up of original files a safety step
 #---------------------------------------------------------------------
 
 mkdir -p $HOME/saved
 while read line
 do
 cp "$line" $HOME/saved
 done </tmp/wrongplace 
 
 #---------------------------------------------------------------------
 # now install the correct full core utils package here
 #---------------------------------------------------------------------
 
 sleep 5
 exit


 # delete files in the wrong place  you have a fall back in $HOME/saved
 
 
 while read line
 do
 rm -f "$line"
 done </tmp/wrongplace



here is the core utils I compiled on TXZ_pup as an example of a full package
minus the docs and locals those are on my site but not linked here
http://www.puppy2.org/slaxer/coreutils-8.11-i486-1.tgz

_________________
slackware 14
Back to top
View user's profile Send private message 
Display posts from previous:   Sort by:   
Page 3 of 4 [47 Posts]   Goto page: Previous 1, 2, 3, 4 Next
Post new topic   Reply to topic View previous topic :: View next topic
 Forum index » Taking the Puppy out for a walk » Suggestions
Jump to:  

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group
[ Time: 0.0832s ][ Queries: 13 (0.0086s) ][ GZIP on ]