[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Fixing a half-configured package



Hello


Excerpt from sirquijote@lavabit.com:


-- <snip> --

> Setting up nfs-kernel-server (1:1.2.2-4squeeze2) ...
> insserv: Service nfs-common has to be enabled to start service

compare this with yours:


,----[  head -n 14 /etc/init.d/nfs-common  ]---------------------------


#!/bin/bash

### BEGIN INIT INFO
# Provides:          nfs-common
# Required-Start:    $portmap $time
# Required-Stop:     $time
# Default-Start:     2 3 4 5 S
# Default-Stop:      0 1 6
# Short-Description: NFS support files common to client and server
# Description:       NFS is a popular protocol for file sharing across
#                    TCP/IP networks. This service provides various
#                    support functions for NFS mounts.
### END INIT INFO
`-----------------------------------------------------------------------

I suppose the line '# Default-Start:' to be different on your computer.


-- <snip> --

> So, the LSB error is absent, but the nfs-kernel-server error still exists..

No clearly there is a LSB header issue. insserv complaints that it the
initscript 'nfs-kernel-server' tells it, that 'nfs-kernel-server' depends on on
the functionality provided by 'nfs-common'. But since 'nfs-common' is disabled
it can't fullfill the requirtment.


>  Clearly they're not connected, and I'm not sure how necessary moving my
> command to rc.local actually was.

well at least the error message from earlier is gone.

> I then ran "/etc/init.d/nfs-common start" and used aptitude to upgrade
> another package, and received the exact same error messages - oddly it
> still says, "Service nfs-common has to be enabled to start service
> nfs-kernel-server" even though I checked and idmapd and statd (the
> processes initiated by the previous init command) were definitely running..

The idea behind insserv and the LSB headers are to provide a system to declare
dependencies between initscripts. Look at the code snipped above it says
'# Required-Start:'.
This means '/etc/init.d/nfs-common' can only function after the
'$portmap $time' are available. '/etc/init.d/nfs-common' by it self also has
such a '# Provides:' so that other initscript can tell "only start me after
'/etc/init.d/nfs-common' is already running".

So this LSB headers are there to managed initscripts and insserv uses them to
create/resemble the start scripts below '/etc/rc[S0-6].d/' depending on the
actually installed services.

you can use:
insserv -v

to manually call insserv. It will tell you the same error messages as during apt
operation until the initscripts are fixed.



So in the end it is possible that insserv complaints that there are unfulfilled
dependencies, but it is still possible to start those services manually. Which
is what you did.



-- 
Regards,
Thilo

4096R/0xC70B1A8F
721B 1BA0 095C 1ABA 3FC6  7C18 89A4 A2A0 C70B 1A8F



Reply to: