Recommended way to install additional packages

Hi, is opkg a recommended way to add new packages, which are not a part of the standard image? Just hoping to find a way that does terribly conflict with the updater.


Yes. Why it shouldn’t be?

Well, there is also pkgupdate tool, but I am still confused about how to use it.
So, if I use opkg, will the next automatic update upversion all the packages I installed via opkg?

because of cases like this ntpd package collision with busybox-ntpd (#289) · Issues · Turris / Turris OS / Turris OS packages · GitLab

Opkg allows that because it has not problem with packages breakage.

Yes, I am aware of those. Btw, the last to commits to OpenWRT master might be trying to address the issue you referred to. But I could be wrong.

Unless for testing I do not use opkg but rather this methodology working well with updater (pkgupdate)

Please, don’t confuse other users!

root@turris:~# opkg install ntpd
Installing ntpd (4.2.8p11-1.0) to root...
Installing ntp-utils (4.2.8p11-1.0) to root...
Configuring ntp-utils.
Collected errors:
 * check_data_file_clashes: Package ntpd wants to install file /sbin/ntpd
	But that file is already provided by package  * busybox
 * opkg_install_cmd: Cannot install package ntpd.
root@turris:~# opkg list-installed | grep ntpd

So, ntpd is not installed due to conflict. You will not avoid it editing file user.lua in /etc/updater/conf.d.


That is neither what I said or implied.

It worked until a month ago with TOS4 beta 1, might have been cleaned up since then.

Plus it would appear still be working in TOS3.x

Actually, via LuCI it is even installing ntpd in TOS4.x beta 2 | 3, albeit it should not.

Thank you both. I think I got the main idea about the package management in Omnia. Using /etc/updater/conf.d/user.lua with something like opkg whatconflicts -A ntpd might just be what I have been looking for.

1 Like

Hm… I see. This seems like a bug for me. Reported to OpenWrt:

The response is:

LuCI uses --force-overwrite

From my point of view, thought the current approach is not much user-friendly. What I would like if the LuCI asked me if I want to solve the conflict by overwriting the file or not. Hopefully, they will change it.

BTW: About the linked Turris OS 3.x thread. There is the same issue. With opkg it cannot be installed due to the same conflict, but for LuCI it’s not a problem at all. :wink:

1 Like

Talk about confusing. upstream closed the issue now with this statement

This is intentional and will be kept for the time being until the package universe is mature enough to handle alternatives, conflicts and replacements cleanly.

Does not make much sense to take a sledgehammer approach on UI whilst being sensitive on the cli… :woman_facepalming:

1 Like

Surprisingly, I agree with you. However, we must solve this issue for our users to avoid misunderstandings while installing packages via LuCI.

Once it is reviewed by colleagues and merged for Turris OS 4.x, I will backport it to Turris OS 3.x and apply it for Turris OS 5.x and also for Turris OS 6.x as it requires more changes. :slight_smile:

1 Like

One more related question: why is my Omnia complaining about some contract when running pkgupdate?

root@turris:~# pkgupdate

cat: can't open '/usr/share/server-uplink/registration_code': No such file or directory

WARN:Contract wasn't verified

WARN:Requested package luci-i18n-ddns-en that is missing, ignoring as requested.

Btw: @dibdot rocks!