è meglio che rispondi sempre in lista, potresti trovare aiuto da altri,
se invece scrivi solo a una persona può essere che perdi l'aiuto che ti
permette di risolvere.
Quoto poco o meglio elimino poche cose che non fanno più parte del
discorso per far capire anche a chi non ha letto la risposta intermedia.
On 11/10/21 09:03, Diego Zuccato wrote:
> Non mi pare.
>> Sarebbe meglio evitare di aggiungere repository terzi, se si necessita
>> di un applicativo particolare che non c'è in Debian l'ottimale sarebbe
>> installarselo in locale o se non si può in otp facendo attenzione che
>> non vada a sovrascrivere librerie o altro di sistema
> Sto cercando una soluzione per eliminare PBIS (ex Likewise-open), ma
> purtroppo ho necessità di autenticare utenti in un AD sul quale non ho
> controllo. Prima usavo winbind, ma era instabile. Adesso con PBIS ho
> sempre problemi di UID e GID in conflitto (più di 200k utenti e 800k
> gruppi, con range fissati per domini molto più piccoli!). La soluzione
> potrebbe essere Kerberos per l'autenticazione più un LDAP per
> l'autorizzazione e gli attributi.
>> Io lo commenterei e verificherei quali pacchetti sono stati installati
>> da questo... puoi usare i comandi che ti avevo indicato:
>> 1) rintracci i pacchetti installati non più presenti nei repository
>> 2) commenti
repo.pbis.beyondtrust.com
>> 3) esegui # apt update
>> 4) riesegui il punto 1 e vedi le differenze
> Ho usato un sistema più drastico:
> - disinstallato pbis-open cdo octave
ma questo non è detto che rimuova tutto ciò che è stato installato da
quel repository
> - effettuato un autoremove
neanche questo ti assicura la rimozione di tutto ciò che è stato
installato da quel repository
> - reinstallato octave
> di nuovo segfault. Uff! Eppure venerdì *con* pbis e *senza* cdo
> funzionava... Qua ci esco pazzo. Mi sa che sia qualcosa nelle lib mpi.
>> Però io ho octave installato, ma octave-linear-algebra no... potresti
>> anche provare a rimuoverli entrambi e installare solo octave
> Fatto. Ma non va.
>>>> # apt update; apt upgrade; apt dist-upgrade
>>> Il problema c'è stato proprio al termine dell'aggiornamento :)
>> sì, intendevo rimuovi i pacchetti che non riesci ad installare e rifai
>> quei comandi per assicurarti che il tuo sistema sia aggiornato... se
>> non lo era, allora dopo l'aggiornamento riprovi ad installare octave
> Altra prova:
> - disabilitati repo pbis e backports
> - apt remove octave cdo libopenblas0 libopenblas0-pthread
> - apt autoremove
> - update + full-upgrade
> - apt-show-versions -i
> - # apt-show-versions | grep available
> pbis-open:amd64 9.1.0.551 installed: No available version in archive
> pbis-open-upgrade:amd64 9.1.0.551 installed: No available version in
> archive
> [quindi pare non ci fosse nulla da backports e nessuna lib da pbis]
ma quando rimuovevi sopra pbis-open, poi rimuoveva anche pbis-open-upgrade?
Tieni presente che se installi qualcosa da sistemi terzi gli script di
installazione potrebbero modificare file/link di sistema...
> - apt install octave-linear-algebra
> [*FUNZIONA!*]
> - apt install cdo
> [si porta dietro anche *libopenblas0* e *libopenblas0-pthread*]
> - octave va in segfault
> La mia conclusione è che octave tenti di usare (male?) libblas0-pthread,
> o che ci sia un bug in libblas0-pthread quando viene usata da octave.
però non capisco, se installi solo Octave funziona e sembra non usare
tale libreria, se installi anche cdo si ha che Octave va in crash...
probabilmente cdo, o le librerie che carica, modificano qualche
configurazione di sistema
>> cosa riportano i seguenti comandi?
>> $ ls -l /usr/lib/x86_64-linux-gnu/libopenblas.so.0
> lrwxrwxrwx 1 root root 51 11 ott 08.42
> /usr/lib/x86_64-linux-gnu/libopenblas.so.0 ->
> /etc/alternatives/libopenblas.so.0-x86_64-linux-gnu
>
>> $ dpkg -S /usr/lib/x86_64-linux-gnu/libopenblas.so.0
> dpkg-query: nessun percorso corrispondente a
> /usr/lib/x86_64-linux-gnu/libopenblas.so.0
>
>> $ dpkg -l | grep "libopenblas0-openmp\|libjulia"
> ii libjulia1 1.5.3+dfsg-3
> amd64 high-performance programming language for technical
> computing (runtime library)
>
>> o è un link simbolico creato da qualche script di postream o è stata
>> installata da un repository terzo, come quello indicato sopra. Nel
>> secondo caso è possibile che rimuovendo il pacchetto terzo che la
>> installa risolvi.
> E' un link creato automaticamente da update-alternatives:
> update-alternatives --config libblas.so.3-x86_64-linux-gnu
> Sono disponibili 3 scelte per l'alternativa
> libblas.so.3-x86_64-linux-gnu (che fornisce
> /usr/lib/x86_64-linux-gnu/libblas.so.3).
>
> Selezione Percorso Priorità Stato
> ------------------------------------------------------------
> * 0 /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3
> 100 modalità automatica
> 1 /usr/lib/x86_64-linux-gnu/atlas/libblas.so.3 35
> modalità manuale
> 2 /usr/lib/x86_64-linux-gnu/blas/libblas.so.3 10
> modalità manuale
> 3 /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3
> 100 modalità manuale
>
>> Se invece è un link simbolico arriva fino al file vero e verifica in
>> quale pacchetto è presente
> Fatto :)
>
>> però non puoi farmi partire octave da root... devi farlo partire da
>> utente...
> Quando la libopenblas0-pthread non è installata, non ha problemi. E la
> configurazione lo lancia da root. Comunque anche da utente fa uguale.
no, da root non devi mai eseguire dei programmi utente, mai.
>> $ ldd /usr/bin/octave
> ldd /usr/bin/octave
> linux-vdso.so.1 (0x00007ffef04ec000)
> libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6
> (0x00007fc3e75fa000)
> libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6
> (0x00007fc3e742d000)
> libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1
> (0x00007fc3e7413000)
> libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0
> (0x00007fc3e73f1000)
> libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fc3e722c000)
> libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1
> (0x00007fc3e7201000)
> libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2
> (0x00007fc3e71f9000)
> libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fc3e70b5000)
> /lib64/ld-linux-x86-64.so.2 (0x00007fc3e776c000)
> libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6
> (0x00007fc3e70b0000)
> libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6
> (0x00007fc3e6eaa000)
> libbsd.so.0 => /usr/lib/x86_64-linux-gnu/libbsd.so.0
> (0x00007fc3e6e93000)
> libmd.so.0 => /usr/lib/x86_64-linux-gnu/libmd.so.0
> (0x00007fc3e6e84000)
>
> Sembra che octave sia "furbo" e che carichi dinamicamente altre lib :(
no, al massimo vedevi qui che necessitava di una libreria, ma non la
trovata (alcuni mettono negli script di avio i path per trovare le
librerie).
In questo caso può essere che una di queste o altro componente chiamato
da Octave quando è in esecuzione chiami quelle librerie.
>> ma se vai partire cdo funziona? (non l'ho installato ho guardato con
>> apt-file i file che installa)
>> $ cdo
>> $ cdi
> In entrambi i casi ottengo l'help.
> Quindi (senza conoscerlo) posso dire che "funziona". Per lo meno non va
> in errore immediatamente.
>
>> che libreria usa
>> $ ldd /usr/bin/cdo
> # ldd /usr/bin/cdo
> linux-vdso.so.1 (0x00007ffdb89a8000)
> libcdi.so.0 => /usr/lib/x86_64-linux-gnu/libcdi.so.0
> (0x00007f51f193a000)
> libMagPlus.so.3 => /usr/lib/x86_64-linux-gnu/libMagPlus.so.3
> (0x00007f51f0d7b000)
> libproj.so.19 => /usr/lib/x86_64-linux-gnu/libproj.so.19
> (0x00007f51f0a08000)
> libfftw3.so.3 => /usr/lib/x86_64-linux-gnu/libfftw3.so.3
> (0x00007f51f0801000)
> libudunits2.so.0 => /usr/lib/x86_64-linux-gnu/libudunits2.so.0
> (0x00007f51f07e1000)
> libnetcdf.so.18 => /usr/lib/x86_64-linux-gnu/libnetcdf.so.18
> (0x00007f51f06b0000)
> libhdf5_serial.so.103 =>
> /usr/lib/x86_64-linux-gnu/libhdf5_serial.so.103 (0x00007f51f032d000)
> libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0
> (0x00007f51f030b000)
> libcurl-gnutls.so.4 =>
> /usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4 (0x00007f51f0273000)
> libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6
> (0x00007f51f00a6000)
> libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f51eff62000)
> libgomp.so.1 => /usr/lib/x86_64-linux-gnu/libgomp.so.1
> (0x00007f51eff22000)
> libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1
> (0x00007f51eff06000)
> libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f51efd41000)
> /lib64/ld-linux-x86-64.so.2 (0x00007f51f212f000)
> libeccodes.so.0 => /usr/lib/x86_64-linux-gnu/libeccodes.so.0
> (0x00007f51efa75000)
> libsz.so.2 => /usr/lib/x86_64-linux-gnu/libsz.so.2
> (0x00007f51efa70000)
> libterralib.so.3 => /usr/lib/x86_64-linux-gnu/libterralib.so.3
> (0x00007f51ef6c1000)
> libodccore.so.0d => /usr/lib/x86_64-linux-gnu/libodccore.so.0d
> (0x00007f51ef58d000)
> libQt5Widgets.so.5 =>
> /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 (0x00007f51eef01000)
> libgeotiff.so.5 => /usr/lib/x86_64-linux-gnu/libgeotiff.so.5
> (0x00007f51eeecb000)
> libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1
> (0x00007f51eee9c000)
> libpangocairo-1.0.so.0 =>
> /usr/lib/x86_64-linux-gnu/libpangocairo-1.0.so.0 (0x00007f51eee8b000)
> libpango-1.0.so.0 =>
> /usr/lib/x86_64-linux-gnu/libpango-1.0.so.0 (0x00007f51eee39000)
> libglib-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
> (0x00007f51eed0a000)
> libcairo.so.2 => /usr/lib/x86_64-linux-gnu/libcairo.so.2
> (0x00007f51eebe3000)
> libeckit.so.0d => /usr/lib/x86_64-linux-gnu/libeckit.so.0d
> (0x00007f51ee954000)
> libQt5Gui.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
> (0x00007f51ee292000)
> libQt5Core.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
> (0x00007f51edd47000)
> libsqlite3.so.0 => /usr/lib/x86_64-linux-gnu/libsqlite3.so.0
> (0x00007f51edc04000)
> libtiff.so.5 => /usr/lib/x86_64-linux-gnu/libtiff.so.5
> (0x00007f51edb7e000)
> libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2
> (0x00007f51edb76000)
> libhdf5_serial_hl.so.100 =>
> /usr/lib/x86_64-linux-gnu/libhdf5_serial_hl.so.100 (0x00007f51edb51000)
> libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f51edb34000)
> libnghttp2.so.14 => /usr/lib/x86_64-linux-gnu/libnghttp2.so.14
> (0x00007f51edb07000)
> libidn2.so.0 => /usr/lib/x86_64-linux-gnu/libidn2.so.0
> (0x00007f51edae6000)
> librtmp.so.1 => /usr/lib/x86_64-linux-gnu/librtmp.so.1
> (0x00007f51edac5000)
> libssh2.so.1 => /usr/lib/x86_64-linux-gnu/libssh2.so.1
> (0x00007f51eda90000)
> libpsl.so.5 => /usr/lib/x86_64-linux-gnu/libpsl.so.5
> (0x00007f51eda7c000)
> libnettle.so.8 => /usr/lib/x86_64-linux-gnu/libnettle.so.8
> (0x00007f51eda34000)
> libgnutls.so.30 => /usr/lib/x86_64-linux-gnu/libgnutls.so.30
> (0x00007f51ed834000)
> libgssapi_krb5.so.2 =>
> /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x00007f51ed7e1000)
> libldap_r-2.4.so.2 =>
> /usr/lib/x86_64-linux-gnu/libldap_r-2.4.so.2 (0x00007f51ed789000)
> liblber-2.4.so.2 => /usr/lib/x86_64-linux-gnu/liblber-2.4.so.2
> (0x00007f51ed778000)
> libbrotlidec.so.1 =>
> /usr/lib/x86_64-linux-gnu/libbrotlidec.so.1 (0x00007f51ed76a000)
> libpng16.so.16 => /usr/lib/x86_64-linux-gnu/libpng16.so.16
> (0x00007f51ed730000)
> libaec.so.0 => /usr/lib/x86_64-linux-gnu/libaec.so.0
> (0x00007f51ed727000)
> libopenjp2.so.7 => /usr/lib/x86_64-linux-gnu/libopenjp2.so.7
> (0x00007f51ed6c8000)
> libjpeg.so.62 => /usr/lib/x86_64-linux-gnu/libjpeg.so.62
> (0x00007f51ed644000)
> libeckit_sql.so.0d =>
> /usr/lib/x86_64-linux-gnu/libeckit_sql.so.0d (0x00007f51ed4da000)
> libpangoft2-1.0.so.0 =>
> /usr/lib/x86_64-linux-gnu/libpangoft2-1.0.so.0 (0x00007f51ed4c1000)
> libgobject-2.0.so.0 =>
> /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 (0x00007f51ed467000)
> libfontconfig.so.1 =>
> /usr/lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007f51ed41f000)
> libgio-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
> (0x00007f51ed241000)
> libfribidi.so.0 => /usr/lib/x86_64-linux-gnu/libfribidi.so.0
> (0x00007f51ed225000)
> libthai.so.0 => /usr/lib/x86_64-linux-gnu/libthai.so.0
> (0x00007f51ed21a000)
> libharfbuzz.so.0 => /usr/lib/x86_64-linux-gnu/libharfbuzz.so.0
> (0x00007f51ed132000)
> libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3
> (0x00007f51ed0bf000)
> libpixman-1.so.0 => /usr/lib/x86_64-linux-gnu/libpixman-1.so.0
> (0x00007f51ed012000)
> libfreetype.so.6 => /usr/lib/x86_64-linux-gnu/libfreetype.so.6
> (0x00007f51ecf4f000)
> libxcb-shm.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0
> (0x00007f51ecf4a000)
> libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1
> (0x00007f51ecf1f000)
> libxcb-render.so.0 =>
> /usr/lib/x86_64-linux-gnu/libxcb-render.so.0 (0x00007f51ecf10000)
> libXrender.so.1 => /usr/lib/x86_64-linux-gnu/libXrender.so.1
> (0x00007f51ecd06000)
> libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6
> (0x00007f51ecbc1000)
> libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6
> (0x00007f51ecbac000)
> libsnappy.so.1 => /usr/lib/x86_64-linux-gnu/libsnappy.so.1
> (0x00007f51ecba1000)
> librsync.so.2 => /usr/lib/x86_64-linux-gnu/librsync.so.2
> (0x00007f51ecb92000)
> liblz4.so.1 => /usr/lib/x86_64-linux-gnu/liblz4.so.1
> (0x00007f51ecb6f000)
> libbz2.so.1.0 => /lib/x86_64-linux-gnu/libbz2.so.1.0
> (0x00007f51ecb5c000)
> libcrypto.so.1.1 => /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1
> (0x00007f51ec866000)
> libxxhash.so.0 => /usr/lib/x86_64-linux-gnu/libxxhash.so.0
> (0x00007f51ec84d000)
> librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1
> (0x00007f51ec842000)
> libGL.so.1 => /usr/lib/x86_64-linux-gnu/libGL.so.1
> (0x00007f51ec7bb000)
> libmd4c.so.0 => /usr/lib/x86_64-linux-gnu/libmd4c.so.0
> (0x00007f51ec7a9000)
> libdouble-conversion.so.3 =>
> /usr/lib/x86_64-linux-gnu/libdouble-conversion.so.3 (0x00007f51ec790000)
> libicui18n.so.67 => /usr/lib/x86_64-linux-gnu/libicui18n.so.67
> (0x00007f51ec48a000)
> libicuuc.so.67 => /usr/lib/x86_64-linux-gnu/libicuuc.so.67
> (0x00007f51ec2a1000)
> libpcre2-16.so.0 => /usr/lib/x86_64-linux-gnu/libpcre2-16.so.0
> (0x00007f51ec217000)
> libzstd.so.1 => /usr/lib/x86_64-linux-gnu/libzstd.so.1
> (0x00007f51ec13c000)
> libwebp.so.6 => /usr/lib/x86_64-linux-gnu/libwebp.so.6
> (0x00007f51ec0d3000)
> liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5
> (0x00007f51ec0a9000)
> libjbig.so.0 => /usr/lib/x86_64-linux-gnu/libjbig.so.0
> (0x00007f51ebe9b000)
> libdeflate.so.0 => /usr/lib/x86_64-linux-gnu/libdeflate.so.0
> (0x00007f51ebe7f000)
> libunistring.so.2 =>
> /usr/lib/x86_64-linux-gnu/libunistring.so.2 (0x00007f51ebcfd000)
> libhogweed.so.6 => /usr/lib/x86_64-linux-gnu/libhogweed.so.6
> (0x00007f51ebcb4000)
> libgmp.so.10 => /usr/lib/x86_64-linux-gnu/libgmp.so.10
> (0x00007f51ebc31000)
> libgcrypt.so.20 => /usr/lib/x86_64-linux-gnu/libgcrypt.so.20
> (0x00007f51ebb11000)
> libp11-kit.so.0 => /usr/lib/x86_64-linux-gnu/libp11-kit.so.0
> (0x00007f51eb9dd000)
> libtasn1.so.6 => /usr/lib/x86_64-linux-gnu/libtasn1.so.6
> (0x00007f51eb9c7000)
> libkrb5.so.3 => /usr/lib/x86_64-linux-gnu/libkrb5.so.3
> (0x00007f51eb8ed000)
> libk5crypto.so.3 => /usr/lib/x86_64-linux-gnu/libk5crypto.so.3
> (0x00007f51eb8bd000)
> libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2
> (0x00007f51eb8b5000)
> libkrb5support.so.0 =>
> /usr/lib/x86_64-linux-gnu/libkrb5support.so.0 (0x00007f51eb8a6000)
> libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2
> (0x00007f51eb88c000)
> libsasl2.so.2 => /usr/lib/x86_64-linux-gnu/libsasl2.so.2
> (0x00007f51eb86f000)
> libbrotlicommon.so.1 =>
> /usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1 (0x00007f51eb84c000)
> libffi.so.7 => /usr/lib/x86_64-linux-gnu/libffi.so.7
> (0x00007f51eb83e000)
> libuuid.so.1 => /usr/lib/x86_64-linux-gnu/libuuid.so.1
> (0x00007f51eb835000)
> libgmodule-2.0.so.0 =>
> /usr/lib/x86_64-linux-gnu/libgmodule-2.0.so.0 (0x00007f51eb82f000)
> libmount.so.1 => /usr/lib/x86_64-linux-gnu/libmount.so.1
> (0x00007f51eb7d2000)
> libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1
> (0x00007f51eb7a6000)
> libdatrie.so.1 => /usr/lib/x86_64-linux-gnu/libdatrie.so.1
> (0x00007f51eb79c000)
> libgraphite2.so.3 =>
> /usr/lib/x86_64-linux-gnu/libgraphite2.so.3 (0x00007f51eb76e000)
> libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6
> (0x00007f51eb769000)
> libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6
> (0x00007f51eb563000)
> libb2.so.1 => /usr/lib/x86_64-linux-gnu/libb2.so.1
> (0x00007f51eb544000)
> libGLdispatch.so.0 =>
> /usr/lib/x86_64-linux-gnu/libGLdispatch.so.0 (0x00007f51eb48c000)
> libGLX.so.0 => /usr/lib/x86_64-linux-gnu/libGLX.so.0
> (0x00007f51eb456000)
> libicudata.so.67 => /usr/lib/x86_64-linux-gnu/libicudata.so.67
> (0x00007f51e993d000)
> libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0
> (0x00007f51e9917000)
> libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1
> (0x00007f51e9910000)
> libblkid.so.1 => /usr/lib/x86_64-linux-gnu/libblkid.so.1
> (0x00007f51e98bd000)
> libpcre2-8.so.0 => /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0
> (0x00007f51e9825000)
> libbsd.so.0 => /usr/lib/x86_64-linux-gnu/libbsd.so.0
> (0x00007f51e980e000)
> libmd.so.0 => /usr/lib/x86_64-linux-gnu/libmd.so.0
> (0x00007f51e9801000)
>
>> $ ldd /usr/bin/cdi# ldd /usr/bin/cdi
> linux-vdso.so.1 (0x00007ffd5c0c5000)
> libcdi.so.0 => /usr/lib/x86_64-linux-gnu/libcdi.so.0
> (0x00007f9108716000)
> libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f9108551000)
> libeccodes.so.0 => /usr/lib/x86_64-linux-gnu/libeccodes.so.0
> (0x00007f9108285000)
> libnetcdf.so.18 => /usr/lib/x86_64-linux-gnu/libnetcdf.so.18
> (0x00007f9108154000)
> libsz.so.2 => /usr/lib/x86_64-linux-gnu/libsz.so.2
> (0x00007f910814f000)
> libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f910800b000)
> libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0
> (0x00007f9107fe7000)
> /lib64/ld-linux-x86-64.so.2 (0x00007f9108854000)
> libpng16.so.16 => /usr/lib/x86_64-linux-gnu/libpng16.so.16
> (0x00007f9107fad000)
> libaec.so.0 => /usr/lib/x86_64-linux-gnu/libaec.so.0
> (0x00007f9107fa4000)
> libopenjp2.so.7 => /usr/lib/x86_64-linux-gnu/libopenjp2.so.7
> (0x00007f9107f47000)
> libgomp.so.1 => /usr/lib/x86_64-linux-gnu/libgomp.so.1
> (0x00007f9107f07000)
> libhdf5_serial_hl.so.100 =>
> /usr/lib/x86_64-linux-gnu/libhdf5_serial_hl.so.100 (0x00007f9107ee2000)
> libhdf5_serial.so.103 =>
> /usr/lib/x86_64-linux-gnu/libhdf5_serial.so.103 (0x00007f9107b5f000)
> libcurl-gnutls.so.4 =>
> /usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4 (0x00007f9107ac7000)
> libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f9107aaa000)
> libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2
> (0x00007f9107aa4000)
> libnghttp2.so.14 => /usr/lib/x86_64-linux-gnu/libnghttp2.so.14
> (0x00007f9107a77000)
> libidn2.so.0 => /usr/lib/x86_64-linux-gnu/libidn2.so.0
> (0x00007f9107a54000)
> librtmp.so.1 => /usr/lib/x86_64-linux-gnu/librtmp.so.1
> (0x00007f9107a35000)
> libssh2.so.1 => /usr/lib/x86_64-linux-gnu/libssh2.so.1
> (0x00007f9107a00000)
> libpsl.so.5 => /usr/lib/x86_64-linux-gnu/libpsl.so.5
> (0x00007f91079ec000)
> libnettle.so.8 => /usr/lib/x86_64-linux-gnu/libnettle.so.8
> (0x00007f91079a4000)
> libgnutls.so.30 => /usr/lib/x86_64-linux-gnu/libgnutls.so.30
> (0x00007f91077a4000)
> libgssapi_krb5.so.2 =>
> /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x00007f910774f000)
> libldap_r-2.4.so.2 =>
> /usr/lib/x86_64-linux-gnu/libldap_r-2.4.so.2 (0x00007f91076f9000)
> liblber-2.4.so.2 => /usr/lib/x86_64-linux-gnu/liblber-2.4.so.2
> (0x00007f91076e8000)
> libbrotlidec.so.1 =>
> /usr/lib/x86_64-linux-gnu/libbrotlidec.so.1 (0x00007f91076da000)
> libunistring.so.2 =>
> /usr/lib/x86_64-linux-gnu/libunistring.so.2 (0x00007f9107558000)
> libhogweed.so.6 => /usr/lib/x86_64-linux-gnu/libhogweed.so.6
> (0x00007f910750d000)
> libgmp.so.10 => /usr/lib/x86_64-linux-gnu/libgmp.so.10
> (0x00007f910748c000)
> libgcrypt.so.20 => /usr/lib/x86_64-linux-gnu/libgcrypt.so.20
> (0x00007f910736c000)
> libp11-kit.so.0 => /usr/lib/x86_64-linux-gnu/libp11-kit.so.0
> (0x00007f9107238000)
> libtasn1.so.6 => /usr/lib/x86_64-linux-gnu/libtasn1.so.6
> (0x00007f9107222000)
> libkrb5.so.3 => /usr/lib/x86_64-linux-gnu/libkrb5.so.3
> (0x00007f9107146000)
> libk5crypto.so.3 => /usr/lib/x86_64-linux-gnu/libk5crypto.so.3
> (0x00007f9107116000)
> libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2
> (0x00007f9107110000)
> libkrb5support.so.0 =>
> /usr/lib/x86_64-linux-gnu/libkrb5support.so.0 (0x00007f9107101000)
> libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2
> (0x00007f91070e7000)
> libsasl2.so.2 => /usr/lib/x86_64-linux-gnu/libsasl2.so.2
> (0x00007f91070ca000)
> libbrotlicommon.so.1 =>
> /usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1 (0x00007f91070a5000)
> libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0
> (0x00007f910707f000)
> libffi.so.7 => /usr/lib/x86_64-linux-gnu/libffi.so.7
> (0x00007f9107073000)
> libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1
> (0x00007f910706c000)
>
> Nessuno dei due è linkato con libopenblas0 o libopenblas0-pthread, ma il
> pacchetto cdo dipende da entrambe.
questo non vuol dire. Può essere che chiami altro binario
(eseguibile/libreria) che dipende da queste librerie
>
> Tra l'altro, direi che a questo punto posso confermare che l'errore con
> python è collegato:
> # python3
> Python 3.9.2 (default, Feb 28 2021, 17:03:44)
> [GCC 10.2.1 20210110] on linux
> Type "help", "copyright", "credits" or "license" for more information.
> >>> import numpy
> Errore di segmentazione (core dump creato)
$ apt rdepends libopenblas0
[...]
Dipende: python3-qiskit-aer
|Raccomanda: octave
[...]
$ apt show octave
[...]
Recommends: gnuplot-qt | gnuplot-x11 | gnuplot-nox, libopenblas0 |
libatlas3-base, pstoedit, epstool, default-jre-headless, octave-doc
[...]
ma hai installato anche libatlas3-base? hai provato ad installare questo
quando non è installato cdo e libopenblas0 per vedere se ti va in segfault?
Magari se installi questo poi non ti installa libopenblas0
> # gdb /usr/bin/python3 core
> GNU gdb (Debian 10.1-1.7) 10.1.90.20210103-git
> Copyright (C) 2021 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later
> <
http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.
> Type "show copying" and "show warranty" for details.
> This GDB was configured as "x86_64-linux-gnu".
> Type "show configuration" for configuration details.
> For bug reporting instructions, please see:
> <
https://www.gnu.org/software/gdb/bugs/>.
> Find the GDB manual and other documentation resources online at:
> <
http://www.gnu.org/software/gdb/documentation/>.
>
> For help, type "help".
> Type "apropos word" to search for commands related to "word"...
> Reading symbols from /usr/bin/python3...
> (No debugging symbols found in /usr/bin/python3)
> [New LWP 314439]
> [New LWP 314432]
> [New LWP 314434]
> [New LWP 314435]
> [New LWP 314433]
> [New LWP 314436]
> [New LWP 314438]
> [New LWP 314437]
> [New LWP 314440]
> [New LWP 314429]
> [Thread debugging using libthread_db enabled]
> Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
> Core was generated by `python3'.
> Program terminated with signal SIGSEGV, Segmentation fault.
> #0 0x0000000000000000 in ?? ()
> [Current thread is 1 (Thread 0x7f6e9d75e700 (LWP 314439))]
> (gdb) bt
> #0 0x0000000000000000 in ?? ()
> #1 0x00007f6ed15c9709 in blas_memory_alloc () from
> /usr/lib/x86_64-linux-gnu/libopenblas.so.0
> #2 0x00007f6ed15c9f04 in ?? () from
> /usr/lib/x86_64-linux-gnu/libopenblas.so.0
> #3 0x00007f6ed42e1ea7 in start_thread (arg=<optimized out>) at
> pthread_create.c:477
> #4 0x00007f6ed4074def in clone () at
> ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
>
> E questo mi fa pensare *molto* seriamente ad un bug in libopenblas che
> non controlla un'allocazione...
prova con valgrind, individui qualcosa di "piccolo" che va in crash
subito ed esegui:
$ valgrind --leak-check=full --num-callers=50 --show-reachable=no \
--show-possibly-lost=no --track-origins=yes --trace-children=yes \
--read-var-info=yes $ESEGUIBILE > risultato.txt
dove al posto di $ESEGUIBILE metti il nome, esempio octave e lo fai
seguire degli eventuali parametri, poi esegui i passi che portano al
segfault
Nel file risultato.txt dovresti avere l'indicazione di errati usi di
memoria. Il file potrebbe essere molto lungo.
Interessanti sono:
* doppi free o delete
* uso di puntatore non allocato
* uso di puntatore non inizializzato
se trovi qualcosa di tutto questo è possibile capire al volo dove si
trovi il problema.
In realtà prima serve sapere in che sorgente c'è il problema e quindi
bisogna installare i simboli di debug:
aggiungendo in /etc/apt/sources.list
deb
https://deb.debian.org/debian-debug/ stable-debug main
aggiornando la chace:
# apt update
e installando i simboli di debug del pacchetto che ti indica come
contenente una delle chiamate al problema per arrivare all'errore.
A questo punto rieseguendo l'istruzione con valgrind ti riporta il nome
del sorgente e la riga di quel sorgente.
Ad esempio puoi vedere questo bug report che ho segnalato e in cui ho
usato valgrind per trovare il bug: individuare la libreria e individuare
l'istruzione della libreria che causava il problema
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=975658
Poi se vuoi indagare su sorgenti di grosse dimensioni, senza sapere
nulla di cosa fanno c'è l'eccezionale cscope... ti permette in un batter
d'occhio di individuare quello che cerchi e di apportare modifiche senza
sapere nulla del 99,999999% del restante codice sorgente
Altra strada che seguirei è:
1) verificare se i pacchetti installati non hanno problemi (mancanza di
file o "errori" nei file installati)
# debsums -as
2) verificare se ci sono file in più o mancano file nel tuo sistema...
il risultato del comando è quasi di sicuro enorme ed è da analizzare
accuratamente... dovresti escludere tutte le directory che contengono
dati/file non di sistema
$ apt show cruft