Problèmes de compilation - ne trouve pas la librairie

Bonjour,

j’ai commencé à me faire une VM OpenVAS.
J’ai compilé la première librairie sans problèmes tel que défini par Greenbones.
Quand je passe à la compilation suivante, il ne me trouve pas la librairie précédente
je ne trouve pas pourquoi il ne la trouve pas.

Pourtant:

sudo ldconfig -p | grep libgvm_base
        libgvm_base.so.22 (libc6,x86-64) => /usr/local/lib/libgvm_base.so.22
        libgvm_base.so (libc6,x86-64) => /usr/local/lib/libgvm_base.so

mais à chaque fois:

cmake $SOURCE_DIR/gvmd-$GVMD_VERSION   -DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX   -DCMAKE_BUILD_TYPE=Release   -DLOCALSTATEDIR=/var   -DSYSCONFDIR=/etc   -DGVM_DATA_DIR=/var   -DGVMD_RUN_DIR=/run/gvmd   -DOPENVAS_DEFAULT_SOCKET=/run/ospd/ospd-openvas.sock   -DGVM_FEED_LOCK_PATH=/var/lib/gvm/feed-update.lock   -DSYSTEMD_SERVICE_DIR=/lib/systemd/system   -DLOGROTATE_DIR=/etc/logrotate.d
-- Configuring Greenbone Vulnerability Manager...
-- Could NOT find Git (missing: GIT_EXECUTABLE)
-- Install prefix: /usr/local
-- Checking for module 'libgvm_base>=22.4'
--   No package 'libgvm_base' found
CMake Error at /usr/share/cmake-3.18/Modules/FindPkgConfig.cmake:545 (message):
  A required package was not found
Call Stack (most recent call first):
  /usr/share/cmake-3.18/Modules/FindPkgConfig.cmake:733 (_pkg_check_modules_internal)
  src/CMakeLists.txt:29 (pkg_check_modules)


-- Configuring incomplete, errors occurred!
See also "/home/zargos/build/gvmd/CMakeFiles/CMakeOutput.log".
See also "/home/zargos/build/gvmd/CMakeFiles/CMakeError.log".
zargos@vmssrvstd:~/build/gvmd$ vim CMakeCache.txt
zargos@vmssrvstd:~/build/gvmd$ cmake $SOURCE_DIR/gvmd-$GVMD_VERSION   -DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX   -DCMAKE_BUILD_TYPE=Release   -DLOCALSTATEDIR=/var   -DSYSCONFDIR=/etc   -DGVM_DATA_DIR=/var   -DGVMD_RUN_DIR=/run/gvmd   -DOPENVAS_DEFAULT_SOCKET=/run/ospd/ospd-openvas.sock   -DGVM_FEED_LOCK_PATH=/var/lib/gvm/feed-update.lock   -DSYSTEMD_SERVICE_DIR=/lib/systemd/system   -DLOGROTATE_DIR=/etc/logrotate.d
-- Configuring Greenbone Vulnerability Manager...
-- Could NOT find Git (missing: GIT_EXECUTABLE)
-- Install prefix: /usr/local
-- Checking for module 'libgvm_base>=22.4'
--   No package 'libgvm_base' found
CMake Error at /usr/share/cmake-3.18/Modules/FindPkgConfig.cmake:545 (message):
  A required package was not found
Call Stack (most recent call first):
  /usr/share/cmake-3.18/Modules/FindPkgConfig.cmake:733 (_pkg_check_modules_internal)
  src/CMakeLists.txt:29 (pkg_check_modules)


-- Configuring incomplete, errors occurred!

Que te renvoi :

echo $PKG_CONFIG_PATH

Sinon genre :

Le lien est trop ancien :slight_smile: la version est en 22.4
je pense que c’est lié au fait que la machine est faite via un preseed avec un certain nombre de durcissement. Mais pas de log qui donnent la moindre information utile :confused:
Pour le PKG_CONFIG_PATH, il faut que je refasse tout car entre temps j’ai fait une fausse manip, et je viens de voir que j’avais oublié de faire un snapshot :slight_smile:

sudo ldconfig -p | grep libgvm_base
libgvm_base.so.22 (libc6,x86-64) => /usr/local/lib/libgvm_base.so.22

Etrange; il n’y a pas de libgvm22 chez Debian, mais libgvm21.

Que dit ceci
apt policy libgvm2*

Non pas packages Debian, mais compilation des sources. Le package Débian ne suis pas.

apt-cache search --names-only gvm

résultat : rien. OpenVAS n’est pas packagé dans Debian
reste le PKG_CONFIG_PATH de @Clochette mais malheureusement je crois que c’est une fausse piste dans mon cas.

A voir je viens par curiosité regarder la documentation pour obtenir via les sources GVM, à la limite remonte en rw les quelques répertoires que tu as basculé en ro mais à première vue ce serait bien le chemin vers tes fameuses librairies qu’il te manquent ou qu’il ne peux atteindre.

A fortiori si tu cherche à installé des trucs sur une machine qui doit être durci, fais le avant durcissement ça te fera moins de nœuds à la tête :stuck_out_tongue_closed_eyes:

Le makefile va vérifier si le paquet ‹ -dev › de libgvm est installé, qui s’appelle libgvm-dev , qui lui est en version 21, et dont le contenu est :
Debian – Liste des fichiers du paquet libgvm-dev/sid/amd64

Le makefile se moque de savoir si libgvm_base.so.22 est installé, ce n’est pas ça dont il a besoin.
C’est le binaire une fois compilé qui cherchera libgvm_base.so.22.

Le soucis, c’est qu’en utilisant une machine installée vite fait de base sans truc particulier, il n’y a besoin d’aucuns packages autres que ceux indiqué sur la documentation de Greenbones. et en tout cas aucun paquet SID.
je pense que @Clochette est dans le vrai. Un des paramètres de durcissement doit interférer. Ne me reste plus qu’à identifier lequel.

je n’en ai aucun en ro. Mais par contre peut être qu’un NOSUID, un NODEV ou un NOEXEC interfère peut etre. Mais les messages d’erreurs indique qu’il ne trouve pas, et non qu’il n’accède pas.

En fait ca ne change pas trop. Ce qui pose problème, c’est l’UMASK. Je suis en UMASK 027. je pense que c’est ça qui pose problèmes.
Mes librairies sont en 0750, et du coup j’ai un problème d’accès au fichiers.
Donc faire ma compilation en $USER pose un problème du fait du niveau de protection qui est implémenté.
Il faudrait que je teste la compilation en ROOT pour voir si j’ai le même problème.

EDIT: en root je n’ai plus le problème.

enfin, plus ce problème là :slight_smile: il faut maintenant que je vois pourquoi la BDD ne marche pas (un soucis coté pg-gvm me semble-t-il) mais je créerais peut etre un autre sujet.
Et si j’y arrive enfin, un article Trucs et Astruces sur OpenVAS :slight_smile: .

J’ai trouvé d’où venait le problème.
Le umask normal d’une installation debian est de 0022, pour des raisons de durcissement sécurité, mon installation Preseed utilise umask 0027.
sauf que pour les compilations ça ne passe pas. en refaisant mon Preseed sans umask 0027, maintenant ma compilation marche; pas besoin de la faire en root.