[Slackbuilds-users] Slackbuilds: doinst.sh and douninst.sh

Alessandro Baggi alessandro.baggi at gmail.com
Fri Jul 19 08:24:04 UTC 2024



Il 19/07/24 02:38, Willy Sudiarto Raharjo ha scritto:
> 
> if you notice on postgresql.SlackBuild, we have this commands:
> 
> mkdir -p $PKG/var/lib/pgsql/$PG_VERSION/data
> chown -R postgres:postgres $PKG/var/lib/pgsql
> 
> without having postgres user and group, this would fail and the 
> files/directories will not have correct permission for the application

Hi Willy,

in this way, yes if user will not be created the chown command will 
fail, but at this point why not put the chown,user/group creation 
commands in doinst.sh and remove the statement that requires postgres 
user/group?

I think it is more genuine. For example I build my packages inside a VM, 
then I install on my workstation. Here, on my workstation (and on other 
machines where I will install postgresql package) without the user/group 
creation postgresql "cannot be used" as configured so I'm forced to 
create them manually, plus configuring rc.local/rc.local_shutdown, while 
this should be done during package installation.

For example, I have an automated build script to compile all needed 
slackbuilds. If I add a new package that requires a specific user/group 
definition the automated script will be stopped by that requirement but 
if provided inside doinst.sh the automation will work. From my point of 
view if an operation needs to be done many times, the right solution is 
automate it (this is one big advantages of IT).

Another thing that could be inserted in the doinst.sh (for services that 
require to start on boot) is populating rc.local with the correct 
statement (if ..... /etc/rc.d/rc.service start...fi) with the caution to 
not rewrite the same "starts statements" if already defined (maybe used 
in upgrading the package)

In the current state the package installation is not complete because it 
misses some points:

1. User/group privileges configuration that are required by the software 
to run (as shipped in the slackbuild)
2. Configuring and prepare the system to start/stop the service (if 
enabled) during boot/reboot/shutdown process
3. A clean process during package uninstall that clean created 
user/group, start/stop system configuration in rc.local/rc.local_shutdown

My 2 cents,

Alessandro.





More information about the SlackBuilds-users mailing list