in s6-portable-utils software, why copying 'library.so/s6-memoryhog' when, I think, It should be 'command/s6-memoryhog'.
Actually, it should be /usr/libexec/s6-memoryhog . You must have changed conf-compile/conf-install-libexec to /library.so ; this is wrong, library.so is for dynamically linked libraries, not executables (even if .so files are indeed executables, they are generally not supposed to be used as such). Unexported commands are a pain without slashpackage. FHS has no way to specify that a command should be available to commands belonging to the same package, but not externally. Historically, /usr/libexec was used for those commands, but that's just a poor way of doing what slashpackage is doing (guaranteed access paths to executables). Some packages use the /usr/lib/$package hierarchy to store their data, including unexported commands, and this is another poor way of doing the same thing. The place where binaries are stored and the way they are accessed is ultimately the admin's responsibility. Slashpackage helps. For people who don't want to use it, conf-compile/conf-install-* are the files to customize. Anyway, s6-memoryhog is undocumented and dangerous, I only wrote it for testing purposes, and that's why it's unexported in the first place. Maybe I should remove it entirely. -- Laurent