Right-click to extract Debian package

Miscellaneous tools
Post Reply
Message
Author
User avatar
don570
Posts: 5528
Joined: Wed 10 Mar 2010, 19:58
Location: Ontario

Right-click to extract Debian package

#1 Post by don570 »

Extract-debian 1.5 - localised

Purpose: a simple right-click on debian package to extract all
files with their paths preserved. The original
file remains untouched. 8)

Requirements: Rox Filer (doesn't work with Thunar file manager)
It uses undeb application which I have included.

I have improved Tazoc's script to give an additional
destination option to store the extracted folder. As well I localised
the app.

It uses a combination of yaf-splash and Xdialog messages.

Image

_____________________________________________
Attachments
Extract-debian-1.5.pet
application
(3.1 KiB) Downloaded 1052 times
Extract-debian_NLS-1.5.pet
German and French locales
(1.42 KiB) Downloaded 882 times
Last edited by don570 on Sat 12 Jan 2013, 20:14, edited 2 times in total.

User avatar
666philb
Posts: 3615
Joined: Sun 07 Feb 2010, 12:27
Location: wales ... by the sea

#2 Post by 666philb »

hi don570

debian packages have another hidden 'debian' folder that contain install scipts. sometimes these need to be run, as in the case of some python apps (openshot for instance has an update python modules script).

i know that 'file roller' can extract these from the .deb and rcrsn5's 'debbi' can install a .deb and run the scripts.

it would be nice to have the option either to extract the scripts or run them

cheers
Bionicpup64 built with bionic beaver packages http://murga-linux.com/puppy/viewtopic.php?t=114311
Xenialpup64, built with xenial xerus packages http://murga-linux.com/puppy/viewtopic.php?t=107331

User avatar
don570
Posts: 5528
Joined: Wed 10 Mar 2010, 19:58
Location: Ontario

#3 Post by don570 »

I've been concentrating on getting my extraction programs to work correctly
even when the packages have whitespace in their name. This happens
(albeit rarely) when the Windows downloader finds a similar file
stored on your hard disk so it makes a name change automatically
during the download. The file isn't corrupted at all . It's just that the
filename now has a space . An example --->

Code: Select all

bash_advanced_guide-6.6e (1).pet
I think I have it fixed for extract-pet v1.4 so I'll concentrate on
Extract-debian now.

__________________________________________________

User avatar
pemasu
Posts: 5474
Joined: Wed 08 Jul 2009, 12:26
Location: Finland

#4 Post by pemasu »

About .deb postinst script.
If you want to install .deb and also run possible postinst script...like update-python-modules openshot.public
Firstly you need to extract the folders and files in .deb as debbi do. Link to debbi-1.1.pet:
http://www.murga-linux.com/puppy/viewto ... h&id=56503

Extract the pet and check debbi script.

debbi uses dpkg-deb with -x (extract ie install the files to the system, debbi does not just extract the files to the dedicated folder like extracted-debian, it installs them to the system.
Next....debbi extracts the DEBIAN folder with control files..amongst them is also postinst script. dpkg-deb -e.
With openshot it executes update-python-modules openshot.public and some other commands.
Then it removes the DEBIAN folder.

For Openshot, you need to have python-support .deb installed to have update-python-modules binary for use. It is not in Precise Puppy. I include that python-support .deb now to the Upup Precise.

So....for having .deb installed and also the possible postinst script executed, you need to use dpkg-deb -x (extract the files) and dpkg-deb -e (extract the DEBIAN control folder content) parameters and also you need to run postinst script and also you need to have needed binaries and other stuff in place if the postinst script calls them.

Code: Select all

dpkg-deb -x $1 /
dpkg-deb -e $1
if [ -e DEBIAN/postinst ]; then
  sh DEBIAN/postinst
  echo "Post-install script completed!"
fi
I think this is more or less something to be included in /usr/local/petget/installpkg.sh script.

So...for extracting the .deb DEBIAN control folder with all included files and scripts...postinst included...I suppose above give some info more.

User avatar
pemasu
Posts: 5474
Joined: Wed 08 Jul 2009, 12:26
Location: Finland

#5 Post by pemasu »

Sorry about misinformation. I have edited the above post.
/usr/local/petget/installpkg.sh has the dpkg-deb installation section:

Code: Select all

 *.deb)
  DLPKG_MAIN="`basename $DLPKG_BASE .deb`"
  PFILES="`dpkg-deb --contents $DLPKG_BASE | tr -s ' ' | cut -f 6 -d ' '`"
  [ $? -ne 0 ] && exit 1
  echo "$PFILES" > /root/.packages/${DLPKG_NAME}.files
  install_path_check
  dpkg-deb -x $DLPKG_BASE ${DIRECTSAVEPATH}/
  if [ $? -ne 0 ];then
   rm -f /root/.packages/${DLPKG_NAME}.files
   exit 1
  fi
 ;;
That part would need editing so that postinst script would be launched.

For .deb extract-deb it would need similar modification like in debbi script, so that dpkg-deb -e would be used to extract DEBIAN folder content.

User avatar
don570
Posts: 5528
Joined: Wed 10 Mar 2010, 19:58
Location: Ontario

New version 1.5

#6 Post by don570 »

New version 1.5

- The package is now equivalent to Extract-pet i.e.
there is now checking of available space on your hard drive
to make sure that extraction is successful .

- Non-standard debian packages with whitespace in name
are now handled perfectly i.e. everything will be extracted :lol:

-There should be error messages if the extraction is not successful.

_______________________________________________________

Post Reply