Philipp Schafft wrote: > Can you please try installing and purging again? if you only install > muroard there should be no problem with *dnet* as it is a depends of > libroar0 not muroard.
I have done that with the following results: $ sudo apt-get remove --purge muroard Reading package lists... Done Building dependency tree Reading state information... Done The following packages will be REMOVED: muroard* 0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded. After this operation, 81.9 kB disk space will be freed. Do you want to continue [Y/n]? (Reading database ... 282131 files and directories currently installed.) Removing muroard ... Stopping muRoarD: muroard. Purging configuration files for muroard ... userdel: user muroard is currently logged in Processing triggers for man-db ... The message "userdel: user muroard is currently logged in" is telling. That is the root of the problem. Processes are still running and therefore the userdel is failing to remove the user. The manual says: userdel will not allow you to remove an account if there are running processes which belong to this account. In that case, you may have to kill those processes or lock the user's password or account and remove the account later. The -f option can force the deletion of this account. I instrumented the postrm with a 'ps|grep' and found: The following packages will be REMOVED: muroard* 0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded. After this operation, 81.9 kB disk space will be freed. Do you want to continue [Y/n]? (Reading database ... 282131 files and directories currently installed.) Removing muroard ... Stopping muRoarD: muroard. Purging configuration files for muroard ... root 28472 26580 0 15:39 pts/25 00:00:00 sudo apt-get remove --purge muroard root 28473 28472 22 15:39 pts/25 00:00:00 apt-get remove --purge muroard root 28477 28473 32 15:39 pts/28 00:00:00 /usr/bin/dpkg --status-fd 15 --force-depends --force-remove-essential --purge muroard root 28501 28477 0 15:39 pts/28 00:00:00 /bin/sh /var/lib/dpkg/info/muroard.postrm purge root 28503 28501 0 15:39 pts/28 00:00:00 grep muroard muroard 28463 1 1 15:39 ? 00:00:00 /usr/bin/muroard --bind /tmp/roar --unix userdel: user muroard is currently logged in Processing triggers for man-db ... The problem appears to be that the muroard process takes a non-zero time to exit after having been told to stop in the init.d script. I wondered how long this process continued to run. I modified the postrm script in this way: case "$1" in purge) while [ $(ps -ef | awk '$1 == "muroard"' | wc -l) -gt 0 ]; do echo "Waiting for muroard process to exit..." sleep 1 done if getent passwd|grep -q ^muroard: ; then That is not intended for any deployment but made an interesting test case to get some debug information. It produced the following output: The following packages will be REMOVED: muroard* 0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded. After this operation, 81.9 kB disk space will be freed. Do you want to continue [Y/n]? (Reading database ... 282131 files and directories currently installed.) Removing muroard ... Stopping muRoarD: muroard. Purging configuration files for muroard ... Waiting for muroard process to exit... Processing triggers for man-db ... That tells me that for perhaps one second the process is still running. But I am NOT proposing making any changes in the postrm. That was just part of the investigation. I believe the best corrective action is to ensure in the init script file /etc/init.d/muroard that start-stop-daemon ensures that the process has actually exited before the script exits. Currently it does: start-stop-daemon --stop --pidfile /var/run/muroard.pid --user muroard --exec /usr/bin/muroard || true I believe that start-stop-daemon can do all of the required action here. I recall --stop and --retry=schedule but will need to look into it a bit further. I will investigate that a little more and reply with more in a bit. The best case is so that when the script asks for the daemon to stop that it does the right thing there. Bob
signature.asc
Description: Digital signature