Software installation/removal

Hi there,

This is probably a silly question in the unix-world (forgive my noobness);

Under system-software one can download a bunch of software to install on TO.
Take Adblock as an example; Apparently it uses “adblock” as some core and “luci-app-adblock” as a kind of GUI, maybe also some extra libraries and components.
Where can i find or how do i know which pieces of software belong together?

How is the removal of this software suppose to work; is there some kind of (windows-like) uninstall (uninstall Adblock and all components) or should every piece be uninstalled separately?

What about software that is installed via Foris and is removed via system-software and vice versa? Doesn’t this potentially create a conflict?

TIA

Turris OS is based on OpenWRT and it uses its package Manager „opkg“. See OpenWRT docs for more info:

https://openwrt.org/docs/guide-user/additional-software/opkg

In addition to it Turris OS has its own „Updater“ which is built around opkg. You can read about it here:

https://doc.turris.cz/doc/en/howto/updater

Both LuCi Software and Foris Updater (and opkg via CLI, of course) is based on opkg. So they all use the same database.

There are some conflicts that might occur because of some Updater config lists that you can read about in the second link.

So, I think you are saying that to install a complete package one should use "opkg install " (like opkg install adblock) rather than installing seperate components of the package via system-software? Is this assumption correct?

No. Opkg is just what foris uses and you can use it directly.

No

Yes :smiley:

To be more precise: If a package can be installed through foris -> Updater you should install it there. If it is not available there go to LuCi -> Software, search for it and install it there if it is available. LuCi uses opkp in the background and it will install all necessary dependencies for you.

Uninstall a package where you installed it.

And please try to understand especially the second link, especially the FAQs in it because it explains the most common problems when installing something both through LuCi (or opkg) and Foris.

You can use opkg on CLI (see first link for full explanation):

root@MarPort:~# opkg info python
Package: python
Version: 2.7.12-10
Depends: libc, python-light, python-codecs, python-compiler, python-ctypes, python-db, python-decimal, python-distutils, python-email, python-gdbm, python-logging, python-multiprocessing, python-ncurses, python-openssl, python-pydoc, python-sqlite3, python-unittest, python-xml
Status: install user installed
Architecture: mvebu
Installed-Time: 1561229486

The line “Depends:” shows to you all packages that the package you asked for (python in this case) depends on.

I’m sorry. I’m appreciating your efforts but it is still not clear to me.

Back to my example; There is a package “Adblock” and a package “Luci-app-adblock”. “Luci-app-adblock” has a dependancy to “Adblock”. This means that when the package “Luci-app-adblock” gets installed the package “Ablock” installs automatically. Right?

What i’m struggling with is this: I install “Luci-app-adblock”. Because of its dependency “Adblock” gets installed also. Everything runs. Next i remove only the package “Adblock”. “Adblock” knows nothing of the package “Luci-app-Adblock” and it stays behind, remains on the system. Right?
Does “Luci-app-Adblock” know that its dependencies are removed from the system? As a consequence does it shuts down or will it still be visible in Luci? And does what?

If adblock is a dependency of luci-app-adblock then opkg will notice this if you try to uninstall adblock. It will either prevent you from uninstalling it or will uninstall luci-app-adblock, too. The Behaviour depends on the command arguments you (or Luci -> Software as it uses opkg as I said) use while uninstalling.

This should be described in the first link in
detail…

EDIT: Just as a hint: You can make a backup using schnapps (see official Turris docs) and then just try it out. If you mess things up you can just go back to your backup.