Discussion about packages and package managers in general

Issues and / or general discussion relating to Puppy

Moderator: Forum moderators

Post Reply
User avatar
amethyst
Posts: 2414
Joined: Tue Dec 22, 2020 6:35 am
Has thanked: 57 times
Been thanked: 504 times

Discussion about packages and package managers in general

Post by amethyst »

Okay, so I think this will be a useful topic since I myself find Linux a mystery in general when it comes to installing applications. This has always been a real issue for me because it seems that applications for every other Puppy (don't know if this is the same for other distributions, I have never used any other Linux distro) has to have its own software compiled just for that distribution. Windows is just so easy in this regard (one fits all). Now, I know there are some applications that are compiled to fit all, like for example the already compiled Firefox which can be downloaded from the official site and will run on many Puppys. So what is this, noarch (okay I know debian will be different from redhat and so on)? Why can't all Puppy packages be compiled this way? I know this will probably result in bigger packages produced but just think about the convenience by stopping the hunt for dependencies (my gawd, this can be so tedious and irritating). And then also the package manager itself. Let's assume a (one fits all) package is compiled. Do we have package managers which can actually check the contents of the package "compared" to what is needed by the specific system and only download/install what is necessary. I must admit that I hardly use the Puppy Package manager so am not as up to date with this as I should be. Please add to this discussion, I think this will be beneficial to some, if not most of us.

User avatar
Phoenix
Posts: 341
Joined: Fri Feb 12, 2021 2:03 am
Location: Canada
Has thanked: 4 times
Been thanked: 48 times

Re: Discussion about packages and package managers in general

Post by Phoenix »

Some THINGS do matter such as architecture. A 64-bit compiled binary or library cannot be run by a 32-bit cpu, nor an ARM cpu. noarch means that it works across every cpu architecture. Usually they are scripts. I am not certain about how auto install mode works, but I believe it grabs dependencies even if they aren't absolutely nescessary.

IRC: firepup | Time to hack Puppy!

User avatar
bigpup
Moderator
Posts: 6983
Joined: Tue Jul 14, 2020 11:19 pm
Location: Earth, South Eastern U.S.
Has thanked: 903 times
Been thanked: 1522 times

Re: Discussion about packages and package managers in general

Post by bigpup »

Welcome to computer operating systems software :welcome:

All operating system versions are slightly different, in the core files and programs, in them.

Software has to be compiled, to work using those core files and programs, that are in a specific operating system version.

All operating systems require this. I REPEAT ALL. :o :shock:

Even Windows OS. :shock:
The reason a lot of stuff, compiled for a specific version of Windows, will still run in a newer version of Windows.
Windows OS is close to 20GB in size, installed.
It has stuff in it, going all the way back, to what was in, very early versions of Windows.
So, the software program, is going to find the needed stuff, to let it operate.
Plus Windows is a specific OS that is strictly controlled on what is in it.

Now for Puppy Linux.
The core files and programs, in the different Puppy versions, are the same or very close, for a longer period of time, for different Puppy version releases.
But the stuff does change, over newer and newer Puppy version releases.
Again, software program packages will need to adjust to these changes and be complied to work with what is now there.
Some programs in Puppy Linux, are script files, that use the same code, that is in most Puppy versions, and has not changed much, if any, for a long time.
Those programs will work on about any Puppy version.

Other program packages are more specific, about what is needed, and even what version it is.
Say the code in the program is written for GTK 3.0, but the Puppy version has GTK 2.0 and not 3.0
The program will not run unless it gets compiled to use GTK 2.0 or you install GTK 3.0.
Some Puppy versions, do have several versions of core programs or files, to take care of this need.

Lets say the program package is compiled for the program to use Python.
If the Puppy version does not have Python installed, program will not run.
But what Python version will be needed.
That is usually stated by missing dependency information.

This is good general info for adding software to a Puppy version:
viewtopic.php?t=1819

For sure 32bit software is very different from 64 bit software.
So, the operating system has to support 32bit, 64bit, or both.
Most 64bit Puppy versions, can have loaded, their 32bit compatibility SFS, and be able to run 32bit software.
Basically, this provides the 32bit version of the same core files and programs, that are already there as 64bit versions.
so you have double of that specific stuff.

The things you do not tell us, are usually the clue to fixing the problem.
When I was a kid, I wanted to be older.
This is not what I expected :o

Post Reply

Return to “Users”