2012. július 25., szerda

apt-get update/upgrade és insserv hiba

Apt-get telepítés közben valamilyen hiba történt, ekkor találkoztam a következő esettel. Telepítés közben valami tönkre ment, és onnantól frissítésnél, telepítésnél az apt-get közölte egy csomó hibaüzenet kíséretében, hogy nem hajlandó dolgozni.
Ilyesmi hibaüzeneteket kaptam:
insserv: warning: script 'smfpd' missing LSB tags and overrides
insserv: Starting smfpd depends on rc.local and therefore on system facility `$all' which can not be true!
Rövid olvasgatás után találtam egy hasonló esetet, kiderült, hogy az init.d szkripteknél az egyiknél hiányoznak az LSB mezők. Ezekben a mezőkben megadhatóak az init szkripteknél futás idejű függőségek, melyek segítségével könnyebben megállapítható egy helyes szkript lefutási sorrend bootolásnál, és fel is gyorsítható a bootolás több szkript párhuzamos futtatásával. Azonban egy optimális sorrend eldöntéséhez szükségesek ezek a függőségi információk. Először a Debian Lenny változat kiadásakor jelentek meg, Squeeze-ben pedig már alapértelmezett beállítás volt a függőség alapú boot sorrend meghatározás.
A hiba megoldásához csak a hiányzó függőségeket kell pótolnunk:

Nyissuk meg a hibás init scriptet (az error-ban az smfpd szkriptben hiányolt valamit, ez amúgy a Samsung nyomtató driver):

sudo gedit /etc/init.d/smfpd
Majd a megnyíló Gedit-ben a kommentek után helyezzük el a következő LSB mezőket:
### BEGIN INIT INFO
# Provides: smfpd # Required-Start: $syslog
# Required-Stop: $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Samsung Unified Linux Driver LPT Support daemon
# Description: Enable support for LPT port service provided by Samsung Unified Linux Driver package.
### END INIT INFO

Mentsük el a változásokat, és már kész is! :)

Kiegészítés: A hibát okozó csomagra, amúgy nem sok szükség van induláskor, mert LPT nyomtatók esetén (párhuzamos porton keresztül csatlakozó nyomtató) kapcsolja be a TCP porton keresztüli elérést. Nem sokan használnak manapság már ilyen eszközöket, szóval a hiba kijavítása után nyugodtan kikapcsolhatjuk. Ehhez ajánlom az rcconf nevű programot, mellyel kikapcsolhatjuk milyen service-ek induljanak a rendszer elindulásakor:
sudo apt-get install rcconf 
majd:
sudo rcconf 

Több információ az LSBInitScriptekről

Nincsenek megjegyzések:

Megjegyzés küldése