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.
Discussion about packages and package managers in general
Moderator: Forum moderators
- 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
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!
- 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
Welcome to computer operating systems software
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.
Even Windows OS.
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