Who and how is it decided that a application goes into a software repository?

Are snaps integrated into the package system in any way, or is their update process entirely separate.?

1 Like

Strickly speaking, snap is the package system or package format anyway. If you install a deb, then deb is the package system. Right?

In the default Ubuntu App Center, many apps are supplied in the snap format, but some of those are also available in deb format. You can choose which to install.

The graphical Software Updater runs automatically too. It only notifies you of updates and doesn’t install them. This is for kernel versions and debs. The snaps do update themselves when they check four times a day.

Snaps have channels you can ā€˜subscribe’ to, so they don’t update past a certain version or can just be locked so they don’t update at all. Pretty flexible but all that is via command line.

1 Like

Right, it seems.
Snaps are treated as just another package, but with a different structure to .deb packages.

afaik there is no way to treat flatpak or appimage like that… They are independent

1 Like

Some of them do so.
I’ve added repos for devolo-updates, docker, syncthing and vscodium on my desktop.

Meanwhile, I’m maintaining my own apt-repo, for distributing my home-brewed packages to all my machines.

2 Likes

Hey, that is neat. Only works if they are all Debian based.
The variety of distros I have make that impossible.

2 Likes

Yes, I’m steady on Debian. I tried some others, but… :roll_eyes:

4 Likes

Linux Mint (Cinnamon) user here.

In LM there is a GUI way to manage repositories manually. After that you can add you can add any .deb files to your system from that repository (BTW: any .deb files show up in the store).

I have not seen a GUI way to manage flatpak repositories manually in LM.

4 Likes

In my day, a program was a single executable file, and you installed it by copying it into a suitable bin directory, or maybe used make install. There was no such thing as a separate config file. If there were options for a user to choose, you included those at the head of the input file. There were no problems with dependencies, because it was a static binary. To run it, you typed the file name… when unix sees a name on the cli, it invokes the loader, finds the binary , and runs it.

Modern ideas like config files and dynamic linking and packages and desktop environments and launchers, have introduced unnecessary complexity.
I like to keep my package system ’ pure-distro’ , and do everything else the old fashioned way in /usr/local/bin. BSD still encourages that by reserving /bin and /usr/bin for system programs only.

2 Likes

:+1:
I do the same.
I store there the.deb files I collected. Every night a script runs via timer, that recollects some of those.

This snippet downloads the possible newer packages:

#!/bin/sh
cd /opt/
dl1=$(/usr/bin/curl -L  https://4kdownload.com | /bin/grep 'href="/downloads/'| /bin/grep -Eo 'downloads[^">]+' -m1)
echo $dl1
dl4k=$(/usr/bin/curl https://www.4kdownload.com/$dl1 | /bin/grep /app/4kvideo | /bin/grep amd64.deb | /bin/grep -Eoi -m 1 '<a [^>]+>' |/bin/grep -Eo 'href="[^\"]+"'|/bin/sed -r  's/^href="//' | /bin/sed 's/.$//')
echo $dl4k
/usr/bin/wget -O /home/gazda/4kvideodownloader.deb $dl4k
if [ $? -eq 0 ]; then
mv /home/gazda/4kvideodownloader.deb /srv/www/wwwroot/repo/bookworm/4kvideodownloader.deb
fi

/usr/bin/wget -O /home/gazda/XnViewMP-linux-x64.deb https://download.xnview.com/XnViewMP-linux-x64.deb
if [ $? -eq 0 ]; then
mv /home/gazda/XnViewMP-linux-x64.deb /srv/www/wwwroot/repo/bookworm/xnview.deb
fi

/usr/bin/wget -O /home/gazda/zoom_amd64.deb https://zoom.us/client/latest/zoom_amd64.deb
if [ $? -eq 0 ]; then
/bin/sleep 3
mv /home/gazda/zoom_amd64.deb /srv/www/wwwroot/repo/bookworm/zoom_amd64.deb
fi

/usr/bin/wget -O /home/gazda/discord.deb https://discord.com/api/download?platform=linux&format=deb
if [ $? -eq 0 ]; then
mv /home/gazda/discord.deb /srv/www/wwwroot/repo/bookworm/discord.deb
fi

And this one is actually run by the timer, that invokes the downloader script:

#!/bin/sh
echo Backing up current repository content
/usr/bin/rsync -av --delete /srv/www/wwwroot/repo /home/gazda/repo-backup

echo Download some packages
/opt/repoimport.sh

echo Rebuilding APT repository:
/bin/chown www-data:www-admin /srv/www/wwwroot/repo -R

cd /srv/www/wwwroot/repo/bookworm

/usr/bin/apt-ftparchive packages . > Packages
/bin/bzip2 -kf Packages

/usr/bin/apt-ftparchive release . > Release
/usr/bin/gpg --yes -abs -u ###masked### -o Release.gpg Release
4 Likes

I hope my explanation helps (It’s based on my understanding of how distributions work)

Ernie

2 Likes