undefined symbol: _cupsStrAlloc

Einrichten des Druckers und des Drucksystems, Scannerkonfiguration und Software zum Scannen und Faxen.
Antworten
thyseus
Beiträge: 8
Registriert: 14.02.2004 12:11:59
Kontaktdaten:

undefined symbol: _cupsStrAlloc

Beitrag von thyseus » 29.05.2006 22:27:16

Hallo. Folgendes Problem tritt bei mir unter CUPS 1.1.23, CUPS 1.2.1 und CUPS 1.3CVS auf:

Code: Alles auswählen

root@thyseus:/etc/init.d/cups start
/usr/sbin/cupsd: symbol lookup error: /usr/sbin/cupsd: undefined symbol: _cupsStrAlloc
cups: unable to start scheduler.
in /var/log/cups/error_log erscheint überhaupt nichts.

der cupsd möchte einfach nicht hochfahren. Ich habe bisher nirgendswo eine Lösung für dieses Problem gefunden.

Der Drucker, den ich irgendwann mal zum laufen kriegen möchte ist ein Brother DCP-115, der bereits am USB-Port hängt und vom Kernel auch als Drucker (und von Sane auch als Scanner) erkannt wurde. Nur cups möchte sich nicht starten lassen :-(

hat jemand eine Idee?

Nachtrag:

Mir ist aufgefallen das ein aufruf vom "lpd" folgende Nachricht wirft:

Code: Alles auswählen

lpr: symbol lookup error: lpr: undefined symbol: cupsLangDefault
hat das etwas damit zu tun???

Benutzeravatar
lisan
Beiträge: 658
Registriert: 22.02.2003 19:05:04
Wohnort: Berlin
Kontaktdaten:

Beitrag von lisan » 30.05.2006 07:28:40

Hast du die cups libs installiert ?
z.B. libcupsys2

Was sagt ein:

Code: Alles auswählen

/sbin/ldconfig -v|grep cups
und

Code: Alles auswählen

ld -lcups

thyseus
Beiträge: 8
Registriert: 14.02.2004 12:11:59
Kontaktdaten:

Beitrag von thyseus » 30.05.2006 15:17:31

Hmm, sieht bis auf ein paar Fehlermeldungen, die nichts mit cups zu tun haben, ganz gut aus, oder? :

Code: Alles auswählen

root@thyseus:~# /sbin/ldconfig -v|grep cups
/sbin/ldconfig: Path `/lib' given more than once
/sbin/ldconfig: Can't stat /lib64: No such file or directory
/sbin/ldconfig: Path `/usr/lib' given more than once
/sbin/ldconfig: Cannot stat /usr/lib/libtk8.3.so: No such file or directory
        libgnomecups-1.0.so.1 -> libgnomecups-1.0.so.1.0.0
        libkdeinit_cupsdconf.so -> libkdeinit_cupsdconf.so
        libcupsimage.so.2 -> libcupsimage.so.2
        libcups.so.2 -> libcups.so.2
        libcupsimage.so.2 -> libcupsimage.so.2
        libcups.so.2 -> libcups.so.2
root@thyseus:~# ld -lcups
ld: warning: cannot find entry symbol _start; not setting start address
was bedeutet letztere Meldung??

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 30.05.2006 19:31:11

thyseus hat geschrieben: was bedeutet letztere Meldung??
bedeutet, daß keine libcups.so gefunden wird. Wird aber nur benötigt, wenn du ein Programm mit der cups-Library linken möchtest und ist normalerweise daher nur in den devel Paketen enthalten (siehe libcups2-dev). Die gelinkten Programme erhalten dann eine Referenz auf eine spezielle Version dieser Library, also z.B. libcups.so.2

Welche Libraries von "lpr" benötigt werden und welche Symbole nicht aufgelöst werden konnten, zeigt dir

Code: Alles auswählen

ldd -r /usr/bin/lpr
Kann es sein, daß du verschiedene Versionen von "libcups.so.2" auf deinem System installiert hast ? Wenn ja, dann dürften diese auch nicht ganz kompatibel zueinander sein.

Gruß
gms

[edit]
vielleicht noch zwei andere hilfreiche Kommandos:
deine fehlenden Symbole konnte ich auf meinem System zwar auch nicht finden, daher ein Beispiel mit einem anderem Symbol "cupsPrintFile":

Dieses Kommando zeigt dir, ob das Programm "/usr/bin/lpr" das Symbol "cupsPrintFile" benötigt:

Code: Alles auswählen

root@gms1:~# readelf -Ws /usr/bin/lpr | grep ' UND ' | grep -w cupsPrintFile
    26: 00000000    51 FUNC    GLOBAL DEFAULT  UND cupsPrintFile
Dieses Kommando zeigt dir, ob die Library "/usr/lib/libcups.so.2" das Symbol "cupsPrintFile" exortiert (zur Verfügung stellt)

Code: Alles auswählen

root@gms1:~#  readelf -Ws /usr/lib/libcups.so.2 | egrep -v ' (LOCAL|UND) ' | grep -w cupsPrintFile
   152: 00016cd0    51 FUNC    GLOBAL DEFAULT   10 cupsPrintFile
[/edit]

Benutzeravatar
lisan
Beiträge: 658
Registriert: 22.02.2003 19:05:04
Wohnort: Berlin
Kontaktdaten:

Beitrag von lisan » 31.05.2006 09:46:52

Ich habe die beiden Referenzen, welche er bei dir nicht findet in den cupslibs nicht finden koennen. Evtl. ist dein cups gegen eine andere cups lib gelinkt als bei dir installiert ist.

Hast du zwei cups systeme am laufen ?

thyseus
Beiträge: 8
Registriert: 14.02.2004 12:11:59
Kontaktdaten:

Beitrag von thyseus » 01.06.2006 14:31:18

Ich habe die .deb Pakete entfernt (dpkg --purge) und habe eine make uninstall bei den sourcen gemacht. rm -rf /var/share/cups /etc/cups /usr/lib/cups* usw.

ich habe alles entfernt was ich nur entfernen konnte. Anschliessend habe ich versucht das .deb Paket (1.1.23) zu installieren. Wieder alles entfernt. Dann die 1.2.1 probiert, trotzdem kein erfolg. Ich bin mir ziemlich sicher, nur EINE Version installiert zu haben.

Die Start-Skripte /etc/init.d/cupsd bzw. /etc/init.d/cupsys wechseln auch ständig je nach installierter Version. Zum laufen kriege ich sie trotzdem noch nicht.

Gibt es eine Bibliothek (.so) in der das verlange _cupsStrAlloc vorhanden ist?? Oder kann ich cups bei kompilieren im Makefile vielleicht sagen dass er _cupsStrAlloc nicht verwenden soll?

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 01.06.2006 19:40:52

thyseus hat geschrieben:Gibt es eine Bibliothek (.so) in der das verlange _cupsStrAlloc vorhanden ist??
"cupsd" wurde mit einer Bibliothek gelinkt, in der das verlangte _cupsStrAlloc corhanden war.
"lpr" wurde mit einer Bibliothek gelinkt, in der das verlangte cupsLangDefault vorhanden war.

Die Pakete "cupsys", "cupsys-bsd" , "cupsys-client", "libcupsimage2", "libcupsys2" und "libcupsys2-gnutls10" stammen von dem selben Sourcepaket. Diese Pakete müssen also die gleiche Versionsnummer besitzen und von der gleichen Quelle installiert worden sein, dann muß auch alles zusammenpassen.

Gruß
gms

thyseus
Beiträge: 8
Registriert: 14.02.2004 12:11:59
Kontaktdaten:

Beitrag von thyseus » 02.06.2006 13:43:30

Ich habe die /usr/lib/libcups.so.2 nach .old verschoben und manuell die libcups.so.2 aus dem sources-verzeichnis hinkopiert, nun funktioniert es.

Auf die Idee hätte ich auch früher kommen können ;) danke für die Hilfe

Antworten