dimkr wrote: Mon Aug 15, 2022 11:48 am
wiak wrote: Mon Aug 15, 2022 9:45 am
Nevertheless there are valid reasons why Puppy users want to still have PPM available
What are they?
The main reason I see in the various pro-PPM posts is compatibility with .pet packages, but 1) pkg can do that too and 2) PPM can be replaced with something smaller in scope and less bug-prone, which handles .pet packages only. Why keep PPM then?
PCs are manufactured to run Windows. A Linux Operating system is an after-market product. Who is your market? Who are your competitors for that market? What advantage does your product have which your competitors can't or won't provide?
Why choose a Puppy rather than one of its binary-compatible Distros; or one of the dozens of other Linux operating systems?
Until you have a market objective you can't make rational design choices. Pyrrenese and dachshunds are both great dogs. But you can't give the former away to chase down badgers, nor the latter to guard sheep.
Almost all newbies are Windows Immigrants: accustomed to having had their hands held when additional applications are installed. Few are from Major Linux Distros; and fewer still Linux experts. One of Puppy's objectives is to be 'User-Friendly'; another to work on old-resource-poor computers.
Although newbies may not be familiar with PPM, its learning curve is vastly shorter than apt or apt's equivalents on other Distros. So when you talk about replacing PPM, the replacement would have to be synaptic (or its equivalents on other distros).
Really user-friendly package management has progressed beyond synaptic to systems like Linux Mint Software Center, https://www.fossmint.com/wp-content/upl ... Center.png which not only installs applications and all their respective dependencies but prior to installation provides a User with recommendations, reviews and alternatives.
Puppys are not a distro but rather a family of distros; each Puppy being woofed using the binaries of some distro, most often debian, ubuntu and slackware. To a large extent, applications for the last are incompatible with the former and vice-versa. [Well, at a minimum lacking dependencies].
Major distros are designed as a unity, constantly reading from and writing to storage. Puppys are designed to operate in RAM. With the exception of the optional SaveFile/Folder, Puppys' operating system is cached in RAM on boot-up. Even with the compression used when creating that cache some amount of RAM will no longer be available to do actual work. The amount of RAM remaining is important if it is remembered that Puppys may be run from 'old-resource-limited' computers. To achieve that, a Puppys replaces much of its binary-compatible's infrastructure with 'home-grown' light-weight scripts: Heavy-weight foundation applications such as Qt5 are not included.
On its own, PPM limited to its own unique repositories --and especially with Quickpet, when available and Fan-built-packages available for download from the Additional Software Forum-- is fine because the packages so obtained include required dependencies.
The real problem with PPM is that it relies on its binary-compatible-distro's assessment of what libraries are dependencies. Apt (or equivalent) alone could do no better and would require a steeper learning curve. My experience using synaptic under Puppys is that it too, occasionally, will miss dependencies.
One of the ways Puppys achieve their small foot-print in RAM is the employment of SFSes under aufs. An SFS under aufs can be loaded and unloaded at will. An unloaded SFS requires NO RAM. [An unloaded SFS also does not conflict with a different application employing other libraries: note the conflicts between KDEnlive and Openshot whose IIRC python modules were incompatible]. [As far as I know overlay does not provide the same flexibility as aufs.]
PPM facilitates the creation of SFSes. It can be configured to download but not install an application and all its dependencies; and the user can specify a unique location for that download. Apt, synaptic, and such like Linux Mint Software Center AFAICT download AND Store applications and libraries ONLY in /var. The User has to choose not to keep files being installed or remember to clear /var after each install otherwise (a) its contents will waste space (and perhaps RAM, see below) and (b) present the user with the problem of figuring out which are the required files for the new application and which are there from applications previously installed.
[How does Remastering handle /var? I assume remastering doesn't include its contents. An the same would be the case using amethyst's nicOS-Utility-Suite's Save2SFS which will capture a adrv.sfs, ydrv.sfs, savefile/folder and the content of RAM to create a new adrv.sfs or ydrv.sfs. And while it may not use much RAM to do so, some RAM will still be employed on boot-up to 'index' the unneeded contents of /var in a SaveFile/Folder or overlay].
That addition of synaptic (not apt alone) to Puppys would be a step forward for most newbies as it is likely they have computers with sufficient Storage Space and RAM to eliminate the need for application SFSes: have all new applications installed into SaveFile/Folders or overlays. But for most of the 'Third-World' and many others who can not afford Resource-Rich computers PPM should continue to be a Puppy feature, albeit with some modifications.
The problem PPM poses when another package manager also exists is that the 'left-hand doesn't know what the right-hand is doing'. Apt/synaptic is unaware of the libraries PPM installs, and vice-versa. I've avoided that problem under VoidPup and VanillaDpup by employing PaDS, https://www.forum.puppylinux.com/viewtopic.php?t=933 to create SFSes and the Save2SFS module, https://www.forum.puppylinux.com/viewto ... 983#p12983 to create adrv.sfses &/or ydrv.sfses. Both techniques avoid writing files to the SaveFile/Folder. Apt/Synaptic doesn't have to know about their contents. Similarly, Apt/Synaptic doesn't have to know about the contents of an AppImage created using fredx181's Create-portable-AppImage, https://www.forum.puppylinux.com/viewto ... 3250#p3250. An AppImage provides this advantage: it is mounted as an entire file-system rather than, as with SFSes, its contents being distributed to folders in RAM, potentially overwriting and conflicting with the files required by other applications.
Currently PPM offers three significant options: (1) Autoinstall, (3) Download Packages -- no install, and (4) Download All -- packages and dependencies. I suggest adding two other: (5) Create SFS from packages and dependencies, and (6) Create AppImage from packages and dependencies.
Selection of the latter 2 should leave the 'build folder' to be manually deleted by the User, or 'fleshed-out' with additional libraries should that prove necessary.
Recognizing that coding is not my forte, I would guess that such additions would not require an entire re-write of PPM; and that much of the necessary coding already exists via PaDS and Create-portable-AppImage.
@ sc0ttman and mistfire: IIRC, pkg-cli has the abilities to (a) just download specific libs and (b) on its own create SFSes. I haven't been able to figure out how. Perhaps you could be so kind as to post examples to the pkg-cli thread.