# [RISOLTO] revdep-rebuild nessusclient

## geps2

Se faccio revdep-rebuild ho sempre la stessa cosa:

```
jimi geps # revdep-rebuild -p

 * Configuring search environment for revdep-rebuild

 * Checking reverse dependencies

 * Packages containing binaries and libraries broken by a package update

 * will be emerged.

 * Collecting system binaries and libraries

 * Generated new 1_files.rr

 * Collecting complete LD_LIBRARY_PATH

 * Generated new 2_ldpath.rr

 * Checking dynamic linking consistency

[ 2% ]  *   broken /opt/nessus/bin/NessusClient (requires libcrypto.so.7

libssl.so.7)

[ 100% ]

 * Generated new 3_broken.rr

 * Assigning files to packages

 *   /opt/nessus/bin/NessusClient -> net-analyzer/nessus-client

 * Generated new 4_raw.rr and 4_owners.rr

 * Cleaning list of packages to rebuild

 * Generated new 4_pkgs.rr

 * Assigning packages to ebuilds

 * Generated new 4_ebuilds.rr

 * Evaluating package order

 * Generated new 5_order.rr

 * All prepared. Starting rebuild

emerge --oneshot --pretend  net-analyzer/nessus-client:0

These are the packages that would be merged, in order:

Calculating dependencies... done!

[ebuild   Rf  ] net-analyzer/nessus-client-4.0.2

 * Now you can remove -p (or --pretend) from arguments and re-run revdep-rebuild.

```

Cioè, se lo lancio senza il pretend, reinstalla il pacchetto. Poi se lo rilancia lo reinstalla un'altra volta!

Qualche suggerimento?Last edited by geps2 on Sat Jan 01, 2011 7:12 pm; edited 1 time in total

----------

## ago

prova a lanciare il revdep sulle librerie vedi se risolvi il problema e/o trovi qualche problema analogo su bugzilla

----------

## geps2

Così?

```
revdep-rebuild --library '/usr/lib/libcrypto.so.7

revdep-rebuild --library '/usr/lib/libssl.so.7
```

MA IO QUESTE LIB NON LE HO!

Su bugzilla nessusclient, libcrypto.so.7 e libssl.so.7 danno zarro boogs found.

revdep-rebuild nemmeno lo cerco.

----------

## djinnZ

Come al solito trovo assai difficile intendere l'esistenziale quesito insito in quanto sopra riportato ma, chino sulla mia fida sfera di cristallo (che ripeto il mio adorato e pestifero nipotino ha frantumato per gioco, quindi non vi lamentate se funziona male), scruto e mi par d'intuire, assai vagamente peraltro, che revdep-rebuild appare volersi accinger sempre alla ricompilazione del medesimo pacchetto, che si suppone, una volta reistallato, dovrebbe essere ormai indenne dai loschi propositi di detto programma di servizio.

Prima cosa si potrebbe garbatamente suggerire il ricorso alla misconosciuta opzione -i a garanzia che la laboriosa analisi di quanto presente sul sistema, normalmente condotta con perizia dal buon revdep-rebuild, non tenga conto dell'elenco delle librerie e quant'altro precedentemente raccolto.

Qualora anche codesto metodo non dovesse sortire l'effetto desiderato si potrebbe pensare di ispezionare i file 3_broken.rr e 3_errors.rr in /var/cache/revdep-rebuild al fine di determinare quale sia la causa di codesto errore. Alle volte potrebbe essere semplicemente un file appartenete ad una precedente versione del pacchetto o conseguente a diversa impostazione delle use flag che per strane ragioni non è stato cancellato.

Od infine l'anomalo comportamento potrebbe essere imputato alla solita questione dei file la.

Si potrebbe finache paventare un temerario ricorso all'opzione FEATURES="-collision-protect" ma mi auguro che non si sia innanzi a tanta incoscienza.

Al termine di cotanto eloquio e nell'accingerti alle verifiche sopra indicate ti rimando infine al render grazie secondo le usanze gentoo

Non ho saputo resistere alla tentazione...  :Twisted Evil: 

----------

## geps2

grazie...

----------

## geps2

3_errors.rr

```
ldd: warning: you do not have execution permission for `/lib/libgcc_s.so.1'

lddlibc4: cannot read header from `/usr/bin/krdb'

lddlibc4: cannot read header from `/usr/bin/muttbug'

lddlibc4: cannot read header from `/usr/bin/pnmtoplainpnm'

ldd: warning: you do not have execution permission for `/usr/lib/gcc/i686-pc-linux-gnu/4.4.4/libgcc_s.so.1'

/usr/lib/metasploit3.5/data/meterpreter/ext_server_networkpug.lso: error while loading shared libraries: /usr/lib/libc.so: invalid ELF header

/usr/lib/metasploit3.5/data/meterpreter/ext_server_sniffer.lso: error while loading shared libraries: /usr/lib/libc.so: invalid ELF header

lddlibc4: cannot read header from `/usr/lib/python2.6/site-packages/cairo/__init__.py'

ldd: warning: you do not have execution permission for `/usr/lib/python2.6/site-packages/plist/_plist.so'

```

# lafilefixer --justfixit -> tutti i file .la sono already clean, skipping update

----------

## djinnZ

```
/usr/lib/metasploit3.5/data/meterpreter/ext_server_networkpug.lso: error while loading shared libraries: /usr/lib/libc.so: invalid ELF header

/usr/lib/metasploit3.5/data/meterpreter/ext_server_sniffer.lso: error while loading shared libraries: /usr/lib/libc.so: invalid ELF header
```

sottointendo quindi che 3_broken.rr è vuoto e che nonostante tu abbia lanciato revdep-rebuild -i continua a voler ricompilare nessus-client.

Gli unici veri errori sono questi due ma questi file dovrebbero appartenere a metasploit non a nessus (possibile che nessus includa una sua versione di metasploit nei sorgenti).

Hai verificato con qfile a chi appartengono i vari file riportati come non validi?

Inizierei da questi due. Altrimenti dovresti verificare anche gli altri. Trovato il file che genera l'errore provvedi a sistemarlo (non conosco nessus ma è possibile che abbia una qualche libreria anomala che trae in errore revdep-rebuild in tal caso l'unica è metter mano in /etc/revdep-rebuild ed escluderla dalla scansione).

Prova ad abilitare esplicitamente il collision-protect tra l'altro.

----------

## geps2

Grazie.

3_broken non è vuoto e contiene appunto il riferimento a nessusclient. Come si fa ad escludere questo package dalla scansione? Devo creare un file tipo XX-nessu-sclient dentro /etc/revdep-rebuild? La pagina man non dice niente in merito, e non sono stato molto fortunato googlando "exclude package revdep-rebuild"...

----------

## djinnZ

ti spiacerebbe postare anche 3_broken? Comunque mi pare strano che l'unico errore sia su una libreria di un altro pacchetto.

Comunque il sistema è: trovare la libreria che crea i problemi e creare un file in /etc/revdep-/revdep-rebuild/98-nessus-client (per esempio) con la riga LD_LIBRARY_MASK="nomelibreria.so" per evitare che sia controllata.

Ovviamente è buona norma aprire un bug così chi mantiene l'ebuild lo aggiunge direttamente quando nessus viene installato.

Non azzardarti a fare cose del tipo SEARCH_DIR_MASK="/usr/lib" che serve solo a far smettere di funzionare revdep-rebuild.

Considera che una volta sono ammattito solo perché il filesystem era corrotto ed un file, inaccessibile e non rimovibile, mandava in crisi revdep-rebuild.

----------

## geps2

```
# cat 3_broken.rr 

obj /opt/nessus/bin/NessusClient

```

L'output di revdep-rebuild è il seguente:

```
# revdep-rebuild -p

 * Configuring search environment for revdep-rebuild

 * Checking reverse dependencies

 * Packages containing binaries and libraries broken by a package update

 * will be emerged.

 * Collecting system binaries and libraries

 * Generated new 1_files.rr

 * Collecting complete LD_LIBRARY_PATH

 * Generated new 2_ldpath.rr

 * Checking dynamic linking consistency

[ 2% ]  *   broken /opt/nessus/bin/NessusClient (requires libcrypto.so.7

libssl.so.7)

 *   broken /opt/nessus/bin/a.out (requires libcrypto.so.7

libssl.so.7)

[ 100% ]                 

 * Generated new 3_broken.rr

 * Assigning files to packages

 *   /opt/nessus/bin/NessusClient -> net-analyzer/nessus-client

 *  !!! /opt/nessus/bin/a.out not owned by any package is broken !!!

 *   /opt/nessus/bin/a.out -> (none)

 * Generated new 4_raw.rr and 4_owners.rr

 * Cleaning list of packages to rebuild

 * Generated new 4_pkgs.rr

 * Assigning packages to ebuilds

 * Generated new 4_ebuilds.rr

 * Evaluating package order

 * Generated new 5_order.rr

 * All prepared. Starting rebuild

emerge --oneshot --pretend  net-analyzer/nessus-client:0

These are the packages that would be merged, in order:

Calculating dependencies... done!

[ebuild   Rf  ] net-analyzer/nessus-client-4.0.2 

 * Now you can remove -p (or --pretend) from arguments and re-run revdep-rebuild.

```

ho provato così:

```

# cat 98-nessus-client 

LD_LIBRARY_MASK="/opt/nessus/bin/a.out"
```

e così: 

```

 # cat 98-nessus-client 

LD_LIBRARY_MASK="/opt/nessus/bin/NessusClient"
```

Ma niente.

Naturalmente NessusClient in effetti non parte a causa della mancanza di quella libreria, però reinstallandolo non me la tira dietro. La cosa fastidiosa è che in realtà a me il pacchetto client non serve, ma è nelle dipendenze di nessus-bin: così se disinstallo NessusClient, emerge --depclean mi segnala problemi...

La cosa migliore per me sarebbe escluderlo dalla scansione: dove sbaglio?

----------

## geps2

un'altra cosa: i pacchetti provengono da un overlay (sectools) che non è più mantenuto: il problema può essere legato a quello?

Come faccio ad individuare tutti i pacchetti installati da quell'overlay e toglierli?

UPDATE: sto rimuovendo i package dell'overlay... credo che alla fine l problema lo risolverò così. Grazie mille!

----------

## djinnZ

primo cambiando monitor mi sono reso conto che ho letto male prendendo i vattelappesca.lso per vattleppescal.so, scusa per la svista ma se sono una talpa non posso farci molto ed ora alla miopia si aggiunge anche la presbiopia.

Nel caso specifico dovevi agire con SEARCH_DIRS_MASK="/opt/nessus/bin" (non ho mai provato se funziona per /opt/nessus/bin/ NessusClient / a.out ma teoricamente dovrebbe o forse per *.out NessusClient*). Ovviamente questo disabilita del tutto il controllo per nessus.

A naso direi che nessus si installa una propria versione di libssl (altriemnti come fa a compilare) ma per qualche errore nell'ebuild questa non viene copiata o viene scartata da portage per collisione con i file di openssl.

In ogni caso quell'a.out (riportato come non appartenente a pacchetti installati) mi puzza di errore del makefile di qualche precedente versione o di semplice porcheria finita inquella directory per imperscrutabile volontà del fato, prova semplicemente a toglierlo di mezzo (te lo copi da qualche parte per sicurezza e lo cancelli).

Dato che la directory dove è collocato appartiene a nessus c'è il rischio che revdep-rebuild creda che comunque appartenga a lui, potrebbe capitare.

Per abbandonare un overlay semplicemente lo togli da make.conf e ricompli (oppure adotti il tip nella nostra sezione documentazione su come utilizzare parzialmente un overlay), soprattutto se quei pacchetti sono nel main portage (mascherati ma ci sono, pensavo avessi installato quelli).

In ogni caso eix -I --in-overlay ti dice quali sono i pacchetti installati.

----------

