сборке hardinfo на CentOS8 не удается найти библиотеки, даже если они установлены в местах по умолчанию

#cmake #centos8

#cmake #centos8

Вопрос:

Я настраиваю новую установку CentOS 8 на одной из своих машин и пытаюсь собрать пакет hardinfo (см. https://github.com/lpereira/hardinfo ). Согласно инструкциям, я создал пустой каталог сборки в дереве исходных текстов, изменил его и запустил «cmake ..» но вот что происходит:

 $ cmake ..
-- The C compiler identification is GNU 8.3.1
-- The CXX compiler identification is GNU 8.3.1
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c  
-- Check for working CXX compiler: /usr/bin/c   -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- LOCALEDIR = /usr/local/share/locale
-- Building HardInfo for architecture: linux-x86
-- Found PkgConfig: /usr/bin/pkg-config (found version "1.4.2") 
-- Building for GTK2
-- Checking for modules 'gtk -2.0>=2.10;glib-2.0>=2.10;gthread-2.0>=2.10;gmodule-export-2.0>=2.10'
--   Found gtk -2.0, version 2.24.32
--   Found glib-2.0, version 2.56.4
--   Found gthread-2.0, version 2.56.4
--   Found gmodule-export-2.0, version 2.56.4
-- Checking for module 'libsoup-2.4>=2.42'
--   Package 'libsoup-2.4', required by 'virtual:world', not found
-- Checking for module 'json-glib-1.0'
--   Package 'json-glib-1.0', required by 'virtual:world', not found
CMake Error at /usr/share/cmake/Modules/FindPkgConfig.cmake:418 (message):
  A required package was not found
Call Stack (most recent call first):
  /usr/share/cmake/Modules/FindPkgConfig.cmake:585 (_pkg_check_modules_internal)
  CMakeLists.txt:92 (pkg_check_modules)


-- Configuring incomplete, errors occurred!
See also "/home/tgirsch/Downloads/hardinfo-master/build/CMakeFiles/CMakeOutput.log".
  

Но пакеты есть:

 $ sudo yum -y list installed | egrep "libsoup|json-glib"
json-glib.x86_64                                         1.4.4-1.el8                                    @BaseOS      
libsoup.i686                                             2.62.3-1.el8                                   @BaseOS      
libsoup.x86_64                                           2.62.3-1.el8                                   @BaseOS      
  

И библиотеки находятся в / usr / lib64, как я и ожидал:

 $ ls -la /usr/lib64 | egrep "libsoup|json-glib"
lrwxrwxrwx.   1 root root       27 May 11  2019 libjson-glib-1.0.so.0 -> libjson-glib-1.0.so.0.400.4
-rwxr-xr-x.   1 root root   175896 May 11  2019 libjson-glib-1.0.so.0.400.4
lrwxrwxrwx.   1 root root       20 May 11  2019 libsoup-2.4.so.1 -> libsoup-2.4.so.1.8.0
-rwxr-xr-x.   1 root root  1072744 May 11  2019 libsoup-2.4.so.1.8.0
lrwxrwxrwx.   1 root root       26 May 11  2019 libsoup-gnome-2.4.so.1 -> libsoup-gnome-2.4.so.1.8.0
-rwxr-xr-x.   1 root root    13216 May 11  2019 libsoup-gnome-2.4.so.1.8.0
  

В инструкциях утверждается, что содержимое libsoup можно пропустить, запустив cmake с помощью -DHARDINFO_NOSYNC=1, но я получаю те же результаты:

 $ cmake .. -DHARDINFO_NOSYNC=1
-- The C compiler identification is GNU 8.3.1
-- The CXX compiler identification is GNU 8.3.1
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
[ ... snip ... ]
-- Building HardInfo for architecture: linux-x86
-- Found PkgConfig: /usr/bin/pkg-config (found version "1.4.2") 
-- Building for GTK2
-- Checking for modules 'gtk -2.0>=2.10;glib-2.0>=2.10;gthread-2.0>=2.10;gmodule-export-2.0>=2.10'
--   Found gtk -2.0, version 2.24.32
--   Found glib-2.0, version 2.56.4
--   Found gthread-2.0, version 2.56.4
--   Found gmodule-export-2.0, version 2.56.4
-- Checking for module 'libsoup-2.4>=2.42'
--   Package 'libsoup-2.4', required by 'virtual:world', not found
-- Checking for module 'json-glib-1.0'
--   Package 'json-glib-1.0', required by 'virtual:world', not found
CMake Error at /usr/share/cmake/Modules/FindPkgConfig.cmake:418 (message):
  A required package was not found
Call Stack (most recent call first):
  /usr/share/cmake/Modules/FindPkgConfig.cmake:585 (_pkg_check_modules_internal)
  CMakeLists.txt:92 (pkg_check_modules)
  

Кто-нибудь успешно собрал этот пакет для CentOS 8 или столкнулся с этой проблемой?

TIA,

  • TJG

Комментарии:

1. libsoup Библиотеки, по /usr/lib64 -видимому, имеют версию, отличную от указанной через yum , нет? Эта версия слишком низкая, так как для CMake требуется версия 2.42 или выше.

2. Ага. Это странно, потому что в установленном списке yum четко указано, что установлен 2.62. Интересно, почему в каталогах lib (как / usr / lib, так и / usr / lib64) отображается только 2.4