I think that you can override file clashes with opkg command line options. (After flashing, but not in imagebuilder)
Technical background: The co-existence of some GNU utilities (some findutils, coreutils) and busybox are not perfect, as they try to use the same paths for executables. (Busybox could be patched to place it's utils into /bin, or Makefiles should have "alternatives" definitions)
will do the trick, you can always symlink back to busy later.
for the buildroot you'd have to find the opkg call and mod that.... or grep -v .config etc.... i suppose ideally the .in would deselect the busy variant.... but that is alot more work than rm
that is my issue exactly.
I don't actually need to remove busybox as I suspect it is needed for the openwrt script defaults and so on(maybe).
I just cant install any packages that have the same executable names and that frustrates me.
You might be able to do a little trick with imagebuilder: instead of selecting the package, download its .ipk installation package, extract the binary and include it in the image as "custom file". Custom files are placed last to the image, so they would override the symlink from busybox.
Ps. Even with using the full buildroot, there would be the same path conflict.
I have vague memories of this conflict in the past. I presently install “real” diff and find in my from-source builds. A from-source build will let you disable specific busybox applets. Be aware that disabling the wrong things in busybox can result in upgrades being impossible without major surgery on the upgrade scripts.
Somebody needs to go through all busybox default apps and respective GNU coreutils, findutils, diffutils, etc. packages and evaluate which apps would need patching.
I briefly considered doing a patch for that 1-2 years ago, but did not have energy for completing that.
I still have my notes about coreutils apps:
Default in busybox, but no conflict (in /bin)
cat chgrp chmod chown cp date dd echo kill ln ls mkdir mknod mktemp mv nice pwd rm rmdir sleep sync touch true uname
Default in busybox, conflict in /usr/bin:
basename cut dirname du env head id md5sum mkfifo readlink seq sort sha256sum tail tee test tr uniq uptime wc yes
Default in busybox, conflict in /usr/sbin:
chroot
No conflict or not default in busybox
base64 chcon cksum comm expand factor false fold groups hostid install link logname nl nohup nproc od paste printenv printf realpath runcon sha1sum sha224sum sha384sum sha512sum shred shuf split stat stty sum tac timeout tty unlink users truncate unexpand who whoami
Unevaluated:
COREUTILS_APPLETS := \
csplit \
dir dircolorsexpr \
fmt join \
pathchk pinky pr ptx \
stdbuf \
tsort \
vdir
(That was just for coreutils. Findutils, diffutils, ... are in addition to that)
Possible long-term solutions are to
patch busybox sources so that the bb apps are installed into /bin instead of /usr/*bin
Sources would need to be patched by app in style of changing bb definitions from BB_DIR_USR_BIN to BB_DIR_BIN for each app.
Below are example definitions grepped from bb sources, which show that this approach would require patching dozens of files in busybox sources, increasing the maintenance work at version upgrades:
other alternative would be to define ALTERNATIVES definitions for each app in both busybox and respective GNU utils Makefiles in Openwrt.
This approach might be easier in the long run.