2016-10-17 6 views
0

Ich habe ein CMake-Projekt und verwende CPack, um RPMs für mein CentOS YUM-Repository zu generieren. Allerdings, wenn ich versuchen, meine generierte RPM zu installieren, ich diesen Fehler:CPack fügt dem generierten RPM Systemverzeichnisse hinzu

file /usr from install of clstrd-0.1.0-1.x86_64 conflicts with file from package filesystem-3.2-20.el7.x86_64 
file /usr/bin from install of clstrd-0.1.0-1.x86_64 conflicts with file from package filesystem-3.2-20.el7.x86_64 
file /usr/lib from install of clstrd-0.1.0-1.x86_64 conflicts with file from package filesystem-3.2-20.el7.x86_64 

Weitere die Drehzahl des Inhalts Inspektion, ich sehe, dass es diese Dateien und Verzeichnisse enthält:

$ rpm -qlp clstrd-0.1.0-Linux.rpm 
/usr 
/usr/bin 
/usr/bin/clstrd 
/usr/lib 
/usr/lib/libclstrd.a 

Meine Frage ist, : Wie erzwinge ich CMake, um gemeinsame Verzeichnisse wie /usr oder /usr/bin aus dem RPM auszuschließen? Sollte dies nicht automatisch geschehen?

Ich habe CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION ohne Glück versucht.

Edit: Hier sind die relevanten Teile meines CMakeLists.txt

# Targets 
add_library(clstrd_lib ${SOURCE_FILES}) 
... 
add_executable(clstrd main.cpp) 
target_link_libraries(clstrd clstrd_lib) 
... 
# Installation configuration. 
install(TARGETS clstrd_lib clstrd 
    ARCHIVE DESTINATION lib 
    LIBRARY DESTINATION lib 
    RUNTIME DESTINATION bin) 

# CPack configuration. 
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "MyAwesomePackage") 
set(CPACK_PACKAGE_VENDOR "MyAwesomeVendor") 
set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README.md") 
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.md") 
set(CPACK_PACKAGE_VERSION_MAJOR "0") 
set(CPACK_PACKAGE_VERSION_MINOR "1") 
set(CPACK_PACKAGE_VERSION_PATCH "0") 
set(CPACK_PACKAGE_INSTALL_DIRECTORY "CMake ${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}") 
set(CPACK_PACKAGE_EXECUTABLES "clstrd", "MyAwesomeExecutable") 
set(CPACK_RPM_PACKAGE_AUTOREQPROV " no") 
set(CPACK_RPM_PACKAGE_REQUIRES, "libpqxx, gtest, gflags, root,  root-netx, xrootd-client-libs") 
set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION, "/usr /usr/bin /usr/lib") 
set(CPACK_SOURCE_GENERATOR "RPM") 
include(CPack) 
+0

Haben Sie auch 'CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST' verwendet? Kannst du deine Verwendung von 'CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION' posten, hast du sie vielleicht falsch benutzt? – nos

+1

schau mal hier: https://public.kitware.com/Bug/view.php?id=13609 –

+0

@nos Nein, ich habe den Beitrag so bearbeitet dass Sie meine ausdrückliche Verwendung sehen können. –

Antwort

Verwandte Themen