Newsgroup: it.comp.os.linux.ubuntu
Titolo: librerie invisibili

Lo so che è estate, e lo so che il mio è un sistema Debian e non Ubuntu,
ma magari un'anima buona che mi aiuta la trovo :)
 
Ho un sistema Debian multiarchitettura (i386+amd64) che ha qualche
guaio di librerie che non riesco a diagnosticare.
 
Il caso più eclatante è questo:
 
$ ffmpeg
ffmpeg:: error while loading shared libraries: libjson.so.0: cannot open shared object file: No such file or directory
 
In effetti, se faccio un ldd ottengo questo (tagliato per brevità):
 
$ ldd `which ffmpeg`
        linux-vdso.so.1 (0x00007fff1637c000) libavdevice.so.53 => /usr/lib/x86_64-linux-gnu/libavdevice.so.53
        (0x00007f13a63c6000) libavfilter.so.2 => /usr/lib/x86_64-linux-gnu/libavfilter.so.2
        (0x00007f13a6192000) libavformat.so.53 => /usr/lib/x86_64-linux-gnu/libavformat.so.53
        (0x00007f13a5e8d000) libavcodec.so.53 => /usr/lib/x86_64-linux-gnu/libavcodec.so.53
...
	libcap.so.2 => /lib/x86_64-linux-gnu/libcap.so.2 (0x00007f139d833000)
	libjson.so.0 => not found
	libdbus-1.so.3 => /lib/x86_64-linux-gnu/libdbus-1.so.3 (0x00007f139d5ed000)
...
 
Cioè non trova la libreria libjson.  C'erano installate sia la versione
a 32 che a 64 bit.  Ho disinstallato la prima, che apparentemente non
serviva, ho reinstallato la seconda.  Ho rigenerato la cache delle
librerie con ldconfig.  Non cambia nulla: non la trova e non capisco
perché.
 
Sul disco la libreria è al suo posto, c'è ed è leggibile:
 
$ ls -l /lib/x86_64-linux-gnu/libjson*
lrwxrwxrwx 1 root root    18 Jun  6 20:23 /lib/x86_64-linux-gnu/libjson-c.so.2 -> libjson-c.so.2.0.1
-rw-r--r-- 1 root root 43808 Jun  6 20:23 /lib/x86_64-linux-gnu/libjson-c.so.2.0.1
lrwxrwxrwx 1 root root    14 Jun  6 20:23 /lib/x86_64-linux-gnu/libjson.so.0 -> libjson-c.so.2
 
$ file -L /lib/x86_64-linux-gnu/libjson.so.0
/lib/x86_64-linux-gnu/libjson.so.0: ELF 64-bit LSB  shared object, x86-64, version 1 (SYSV),
 dynamically linked, BuildID[sha1]=436a8b1ee93f944a69cb6510c3f498abbe936232, stripped
 
Ma ldconfig non la registra:
 
$ /sbin/ldconfig -p | grep libjson
	libjson-glib-1.0.so.0 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libjson-glib-1.0.so.0
	libjson-c.so.2 (libc6,x86-64) => /lib/x86_64-linux-gnu/libjson-c.so.2
	libjson-c.so.2 (libc6) => /lib/i386-linux-gnu/libjson-c.so.2
 
Qualcuno mi sasuggerire qual è il prossimo passo di indagine?

 
 
ffmpeg in Debian e` deprecato in favore di avconv.
 
 

ffmpeg in Debian e` deprecato in favore di avconv.
 
Ma questo non risolve il problema, a me serve ffmpeg :(
 
In ogni caso, il problema è curioso: perché una libreria che
evidentemente esiste non viene vista dal caricatore?

 evidentemente esiste non viene vista dal caricatore?
 
Non lo so, la butto li`...: perche` non necessita?
 
In effetti da me:


	libjson-c.so.2 (libc6,x86-64) => /lib/x86_64-linux-gnu/libjson-c.so.2
 
In che senso non necessita?
 
ffmpeg la vuole, c'è ma non viene caricata...

 ffmpeg la vuole, c'è ma non viene caricata...
 
E` che da me avconv la /lib/i386-linux-gnu/libjson-c.so.2 non la vuole, non c'e` 
e, ovviamente, non viene caricata...
 
 


 
 
Dici di avere disinstallato la versione a 32 bit di libjson ma come 
output di ldconfig leggo:
  libjson-c.so.2 (libc6) => /lib/i386-linux-gnu/libjson-c.so.2
 
 
 
 

:

Va bene, ma io ho il problema con ffmpeg, non con avconv :)

 libjson-c.so.2 (libc6) => /lib/i386-linux-gnu/libjson-c.so.2
 
Quella è un'altra libreria.  Comunque, ora ho disinstallato (purge)
anche quella, e non cambia nulla...
 
Quello che non capisco è: come mai esiste una libreria che sta seduta
nella directory canonica e ldconfig non la mette nella cache?


Quella sembrerebbe la versione a 32 bit, visto che libjson.so.0 è un 
symbolic link (a 64 bit) a libjson-c.*
Comunque queste sono disquisizioni
Quello che volevo affermare è (ma credo che sia una domanda un pò 
stupida,in quanto non credo che tu sia un pivellino), sei sicuro di 
avere rigenerato la cache di ldconfig ?
Purtroppo non ho una debian per fare confronti, ho ubuntu e ffmpeg non 
usa libjson


:

ldconfig rigenera la cache sempre, se non gli dici di non farlo, e io
non gliel'ho detto...
 
Comunque, sono venuti i folletti e hanno aggiustato tutto.  Ora ffmpeg
dice di non aver più bisogno di libjson, ma di libjson-c ed è contento.
La libjson.so.0 (link a libjson-c.so.2) è sempre lì, e ldconfig continua
a ignorarla.  L'unica cosa che è successa nel frattempo è stato un
aggiornamento di Apache che ha richiesto l'installazione della nuova
libreria php5-json.  Naturalmente, cosa questo c'entri non ho idea...
 
Grazie a tutti per il tempo perso ad aiutarmi.

 libreria php5-json.  Naturalmente, cosa questo c'entri non ho idea...
 
Un server connesso ad internet non ce l'ho mai avuto pero` ho Apache2 e PHP 
installati nel sistema perche` trovo comodo testare in locale i miei file 
quando, ogni morte di papa, modifico gli script PHP prima di metterli in rete.
 
La libreria php5-json non ce l'ho installata, l'avrai installata tu ma non e` 
una dipendenza necessaria ad apache2, se pero` guardo nella cronologia:
 
Commit Log for Fri Aug  2 12:10:11 2013
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
I seguenti pacchetti sono stati rimossi:
apache2.2-common
 
I seguenti pacchetti sono stati aggiornati:
apache2 (2.2.22-13) to 2.4.6-2
apache2-mpm-prefork (2.2.22-13) to 2.4.6-2
apache2-utils (2.2.22-13) to 2.4.6-2
apache2.2-bin (2.2.22-13) to 2.4.6-2
libapache2-mod-dnssd (0.6-3) to 0.6-3.1
libapache2-mod-php5 (5.4.4-15.1) to 5.5.1+dfsg-1
php5-common (5.4.4-15.1) to 5.5.1+dfsg-1
 
I seguenti pacchetti sono stati installati:
apache2-bin (2.4.6-2)
apache2-data (2.4.6-2)
 
Da li` ad oggi aggiornamenti di apache2 non ce ne sono piu` stati.
 
 
 
 

una dipendenza necessaria ad apache2
 
Questo mi dice:
 
# aptitude why php5-json
i   php5-common Recommends php5-json
 
# aptitude why php5-common
i   php5-pgsql Depends php5-common (= 5.5.1+dfsg-1)
 
# aptitude why php5-pgsql
i   dokuwiki Recommends php5-pgsql
 
Prima di aggiornare apache, però, php5-json non era necessario.

 i   php5-common Recommends php5-json
 
Aah, ecco perche`: io ho un file nominato
/etc/apt/apt.conf
con all'interno:
 
APT::Install-Recommends "false";
APT::Install-Suggests "false";
 
perche` se no mi ritrovo installate in automatico molte applicazioni non 
richieste e non necessarie ne` a me ne` al sistema.