I intend to package skarnet softwares in Debian. When packaging execline, I find it produces a lot of binaries with common names. Thus I want to put them in path like /usr/lib/execline/.
Do not do this. Several programs, including s6 and s6-rc, rely on execline binaries to be in their PATH. They will not work if you segregate execline binaries. If you insist on doing so, you'll have to make sure that /usr/lib/execline is in everyone's PATH, so there will be no benefit for you and more runtime overhead for everyone. There is no reason why execline binaries can't be first-class citizens on your system. The existence of an "if" program does not conflict with the "if" reserved word in the shell. Having lots of files in /bin hasn't been an issue since the ext2 filesystem. There was a command ("import") with a conflicting name, but it has been removed. The presence of "lots of binaries with common names" is simply not a problem. -- Laurent