2013-07-22 36 views
7

Tôi đang phát triển ứng dụng giao diện điều khiển nhỏ và tôi đã cố gắng tạo gói Ubuntu bằng CPack. Phiên bản Ubuntu là 13.04 và tệp CPack chính của tôi ở bên dưới. Gói được tạo chính xác, nhưng trong khi cố gắng cài đặt nó bằng giao diện đồ họa (về cơ bản nhấp đúp vào tập tin deb trong Ubuntu), cảnh báo sau xuất hiện:Máy phát điện DEB CPack: các tập tin kiểm soát-file-has-bad-permissions 0644! = 0644

Gói có chất lượng xấu-file-has-bad-permissions mdsums 0644 ! = 0644

Có ai biết lý do đó là gì không? Và quan trọng hơn, làm thế nào để sửa chữa nó? Phiên bản CMake là 2.8.10.1 nhưng tôi cũng đã cố gắng sử dụng 2.8.11.2 và không có gì thay đổi.

Tôi đã thấy, rằng họ đã có vấn đề tương tự ở đây, nhưng không có gì về bản chất của các fix

tập tin CPack chính của tôi:

INCLUDE(InstallRequiredSystemLibraries) 
SET(CPACK_GENERATOR DEB) 
SET(CPACK_PACKAGE_NAME "color") 
SET(CPACK_PACKAGE_VERSION "0.8") 
SET(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "amd64") 
SET(CPACK_DEBIAN_PACKAGE_DEPENDS "libc6 (>= 2.3.1-6), libgcc1 (>= 1:3.4.2-12)") 
SET(CPACK_DEBIAN_PACKAGE_PRIORITY "optional") 

SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "color - unix console tool for log syntax coloring") 

SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_SOURCE_DIR}/README.txt") 
SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/Copyright.txt") 
SET(CPACK_PACKAGE_VERSION_MAJOR "1") 
SET(CPACK_PACKAGE_VERSION_MINOR "0") 
SET(CPACK_PACKAGE_VERSION_PATCH "0") 
SET(CPACK_STRIP_FILES "color") 
SET(CPACK_PACKAGE_EXECUTABLES "color") 
INCLUDE(CPack) 

Nếu ai đó muốn nhìn thấy gói hoặc làm nghiên cứu thêm , github repo (tệp deb nằm trong bản phát hành đầu tiên).

+0

tại sao lại sử dụng công cụ khi bạn có thể tự làm? – Bytemain

+0

@Phpdna Nếu bạn biết cách khắc phục sự cố bằng cách chỉnh sửa gói deb, đó cũng là thông tin hữu ích. – lisu

Trả lời

3

Ngày tốt, tôi bị mắc kẹt cùng một vấn đề. Sau khi googling và một số nỗ lực không thành công tôi tạo workaround. Sau khi cpack tôi bắt đầu kịch bản của riêng tôi, nơi tôi sửa quyền trên tập tin mdsums. Bạn có thể xem giải pháp của tôi trên liên kết tiếp theo: https://github.com/paralect/robomongo/blob/master/install/linux/fixup_deb.sh.in

+0

nhưng làm thế nào tôi có thể làm cho kịch bản này chạy tự động sau khi gói được thực hiện? – nithin

3

Điều này được khắc phục trong nhánh phát triển của CMake, phiên bản sắp tới 3.3.

1

Có thể xác nhận, CMake 3.3.0-rc2 sửa lỗi, nhưng nếu bạn có tệp nguồn trên ổ đĩa cứng định dạng NTFS (như tôi), lỗi sẽ vẫn ở đó. Để khắc phục sự cố, bạn có thể xây dựng gói của mình từ bất kỳ phân vùng EXT có sẵn nào, nó hoạt động trong trường hợp của tôi.