Presently puppy supports .sfs files to be mounted on union /usr.
Suppose I have got some PackageX running and want to make a .sfs out of it. I would copy all the necessary files for packagex to /my-docments/packagex. inside the folder packagex there would be the following folders
/bin - containing the binaries
/lib - dependencies
/share - shared data
..
if the package you have compiled installs to /usr/local then packagex folder would contain
/local/bin
/local/lib
/local/share
..
to make a .sfs out of this execute the following command in the terminal
Code: Select all
mksquashfs /root/my-documents/packagex /mnt/hda1/usr_packagex.sfs
pre-1.0.7 users can use it by renaming it to usr_more.sfs
1.0.7 users can do the following
edit your rc.local to add the following lines
Code: Select all
echo "Making more loop devices..."
mknod /dev/loop5 b: 7 5
mknod /dev/loop6 b: 7 6
mknod /dev/loop7 b: 7 7
if [ ! "`ls /mnt/home/usr_packagex.sfs 2> /dev/null`" = "" ];then
mkdir /.usr_packagex
echo "Mounting /mnt/home/usr_packagex.sfs file on /.usr_packagex..."
losetup-FULL /dev/loop5 /mnt/home/usr_packagex.sfs
mount -r -t squashfs -o noatime /dev/loop5 /.usr_packagex
unionctl /usr --add --after /root/.usr --mode ro /.usr_packagex
fi
This information in valid for puppy 1.0.7 and later puppy 1.0.* versions only. union structure is going to change in puppy2