site  contact  subhomenews

PKGget now syncs with APT

July 01, 2025 — BarryK

This is one of the items on the to-do list, see item-6 in this blog post:

Got stuck into it, worked intensely the last few days. Looking good...

The Synaptic package manager GUI is, to my thinking, primitive. I know that it is the default GUI in a lot of Linux distributions, but that is because better GUIs have a lot more dependencies -- I'm thinking of some KDE-based package manager GUIs.

PKGget forked from the PPM (Puppy Package Manager), quite a long time ago; 2013. It has steadily evolved, firstly running in Quirky Linux, then in 2017 in EasyOS.

Now, with the new-generation V7 EasyOS, the backend package manager is APT. PKGget now has to become a GUI wrapper around APT. But, it must not lose it's chameleon ability to install other packages, such as PETs.

It's a work-in-progress, but two-way sync'ing between PKGget and APT is now basically working, so time for a demo...

When PKGget is started, it first sync's with the online package databases. I decided to do this up-front, as it avoids potential issues with local stale databases. So, at startup, get this (I have lengthened the terminal window so that you can see everything that has happened):

img1

Then the PKGget GUI will run, and you can see extra buttons:

img2

...the "main" repository has 68,678 packages. That's a lot to look at, if you just want to browse. Yes, there are category radibuttons; however, even choosing one category can still return thousands of packages. So, the display can now be shown by first-letter; the above snapshot shows the "Desktop" category has two entries starting with the letters "a" and "b".

Though, if you want the traditional behaviour of displaying all matches for a category, see "ALL" at the right side.

As before, click on the "blackbox" entry, and it will install, as well as any missing dependencies. The difference, is that PKGget will call 'apt' to do the install, so this terminal will come up:

img3

Then back in the PKGget GUI 'blackbox' and 'libbt0' will show as installed:

img4

Then, as before, can click on the 'blackbox' entry to uninstall it; again 'apt' will be called to uninstall.

The great thing is that it works the other way. That is, you can run 'apt' and 'apt-get' directly in a terminal, and they will automatically sync with PKGget. Doing this, to uninstall 'blackbox':

img5

...after 'blackbox' is uninstalled, unneeded dependencies, in this case 'libbt0', are automatically removed (well, user is asked for confirmation). Then, run PKGget, and those two packages will no longer be installed.

I messed around with various ways to implement APT sync'ing back to PKGget, eventually decided to use the Linux "alias" feature. woofQ2 creates this in file /etc/profile.d/apt-alias:

alias apt="/usr/local/petget/alias/apt"
alias apt-get="/usr/local/petget/alias/apt-get"

...for those interested in the technical side of things, when the next release of Easy V7 is uploaded, you can look at those alias scripts to see how the sync'ing is achieved.

Note, to run 'apt' directly without that alias kicking in, do it with the full path, for eample:

# /usr/bin/apt --help

There are still things to do with PKGget. For example, I might remove the "Configure package manager" button; there is really nothing much to configure. It used to be mainly for updating the local package databases; however, that is now done at every PKGget startup (once only per session).

One thing that has been requested; to be able to resize the window. I'll have a look at that.

I have posted to the forum, in case anyone wants to discuss, or offer suggestions:

https://forum.puppylinux.com/viewtopic.php?t=14681    

Tags: easy