Yaz funzionalità per gestire protocollo Z39.50

Intanto scusate ma non sapevo in quale sezione postare.

Dobbiamo installare il pacchetto yaz su una fedora 27 per comunicare attraverso il protocollo z39.50.

Sembra che tutto funzioni bene ma in realtà al lancio dell’utility abbiamo il seguente errore:

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/yaz.so' - /usr/lib64/php/modules/yaz.so: cannot open shared object file: No such file or directory in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/yaz.so' - /usr/lib64/php/modules/yaz.so: cannot open shared object file: No such file or directory in Unknown on line 0

E’ un errore documentato ma di cui non ho trovato una soluzione.

Nel file php.ini è stato indicato di mettere la linea:

dynamic=yaz.so ma questo file non esiste da nessuna parte nel server.

Abbiamo provato ad installare diversi pacchetti indicati da varie istruzioni ma alla fine il risultato è lo stesso con in più l’aver installato un sacco di roba forse inutile.

Qualcuno ha qualche idea ?

Grazie e buone feste a tutti

Con # dnf provides yaz.sodovresti sapere quale pacchetto contiene (e installa) la libreria e di conseguenza installare il pacchetto corretto.
Per disinstallare la “roba forse inutile” puoi verificare, se installata con dnf, quale ID di dnf sia ed annullare quell’installazione, però per non combinare pasticci sarebbe meglio che ti seguisse qualcuno con più esperienza di me.

Come hai installato il pacchetto yaz?

[quote=andreamal]Con # dnf provides yaz.sodovresti sapere quale pacchetto contiene (e installa) la libreria e di conseguenza installare il pacchetto corretto.
Per disinstallare la “roba forse inutile” puoi verificare, se installata con dnf, quale ID di dnf sia ed annullare quell’installazione, però per non combinare pasticci sarebbe meglio che ti seguisse qualcuno con più esperienza di me.[/quote]

Ecco la risposta:

Ultima verifica della scadenza dei metadati: 1:13:47 fa il gio 28 dic 2017 08:23:16 CET. Errore: Nessuna corrispondenza trovata

Semplicemente
dnf install yaz, se lo rifaccio adesso mi dice:

Ultima verifica della scadenza dei metadati: 1:15:52 fa il gio 28 dic 2017 08:23:16 CET.
Il pacchetto yaz-5.14.11-6.fc26.x86_64 è già installato, viene ignorato.
Dipendenze risolte.
Nothing to do.
Fatto!

Suppongo che tu abbia già provato a cercare “yaz.so” nel computer# updatedb;locate yaz.soupdatedb ci mette tempo per completare per cui abbi pazienza, se yaz.so è stata installata probabilmente è in una posizione errata, in tal caso si può rimediare (spostandola, creando un link, aggiungendo la posizione al path di sistema).

Ci ha messo un attimo (macchina vuota) ma non ha trovato nulla, è tornato il prompt senza segnalazioni

Prova con

[code]# mkdir -p /usr/lib64/php/modules

ln -s /usr/lib64/libyaz.so.5 /usr/lib64/php/modules/yaz.so[/code]

Fatto.

Adesso l’errore segnalato dalla procedura è il seguente:

PHP Warning: PHP Startup: Invalid library (maybe not a PHP library) 'yaz.so' in Unknown on line 0 PHP Warning: PHP Startup: Invalid library (maybe not a PHP library) 'yaz.so' in Unknown on line 0

Ovviamente ho fatto restartare il servizio httpd prima di riprovare, magari serve altro ?

Allora rimuovilo, non è lui:

# rm /usr/lib64/php/modules/yaz.so

Partiamo da qui:

$ dnf repoquery -l libyaz | grep ".so" Ultima verifica della scadenza dei metadati: 0:45:24 fa il gio 28 dic 2017 11:38:59 CET. /usr/lib64/libyaz.so.5 /usr/lib64/libyaz.so.5.0.0 /usr/lib64/libyaz_icu.so.5 /usr/lib64/libyaz_icu.so.5.0.0 /usr/lib64/libyaz_server.so.5 /usr/lib64/libyaz_server.so.5.0.0 /usr/lib/libyaz.so.5 /usr/lib/libyaz.so.5.0.0 /usr/lib/libyaz_icu.so.5 /usr/lib/libyaz_icu.so.5.0.0 /usr/lib/libyaz_server.so.5 /usr/lib/libyaz_server.so.5.0.0
Si tratta di capire se uno di questi file è quello che serve a te, per esempio

# ln -s /usr/lib64/libyaz.so.5 /usr/lib64/php/modules/yaz.so

Tieni conto del fatto che non conosco yaz, quindi sto andando a tentativi. Se uno dei files indicati è quello che serve a te, magari in una posizione diversa da quella attesa, con un link simbolico forse risolvi. In caso contrario, non so.

mi metto a fare le prove e poi riferisco.

Grazie

Guarda anche l’output di

$ dnf provides /**/*yaz* | egrep "\.so$|\.so\." | sort | uniq | sed "s/Nome file   : //g"

Nei repository altro non c’è.
Per vedere quale pacchetto fornisce un file specifico devi dare, per esempio,

$ dnf provides /usr/lib64/libyaz.so

e non

$ dnf provides libyaz.so

(altrimenti non trovi nulla).

il file sembra essere disponibile su un pacchetto presente nei repository di https://fedora.pkgs.org/27/remi-x86_64/php-pecl-yaz-1.2.1-5.fc27.remi.7.1.x86_64.rpm.html
vedi se può esserti utile

[quote=beggar]il file sembra essere disponibile su un pacchetto presente nei repository di https://fedora.pkgs.org/27/remi-x86_64/php-pecl-yaz-1.2.1-5.fc27.remi.7.1.x86_64.rpm.html
vedi se può esserti utile[/quote]

Ho visitato e ho provato ad installare.

Ho prima messo il repo di remi e scaricata/installata la chiave pubblica poi ho lanciato l’installazione:

Risultato:

La chiave pubblica per php-pecl-yaz-1.2.2-1.fc26.remi.7.1.x86_64.rpm non è installataIl pacchetto difettoso è: php-pecl-yaz-1.2.2-1.fc26.remi.7.1.x86_64 Le chiavi GPG sono configurate come segue: http://rpms.famillecollet.com/RPM-GPG-KEY-remi

[quote=marcomotta]Guarda anche l’output di

$ dnf provides /**/*yaz* | egrep "\.so$|\.so\." | sort | uniq | sed "s/Nome file   : //g"

Nei repository altro non c’è.
[/quote]

Risultato del comando:
Errore: Nessuna corrispondenza trovata