Làm cách nào tôi có thể tạo gói .deb với bản dựng OpenCV đã biên dịch của mình?


9

OpenCV 2.4.2 mất 6 giờ để biên dịch trên Raspberry Pi và tôi rất thích đóng gói mọi thứ như một cuộc tranh luận nhưng tôi chưa bao giờ làm điều đó trước đây. Làm cách nào tôi có thể đóng gói các tệp đã biên dịch để chúng tải xuống hoặc bao gồm các thư viện cần thiết khác?


Đây có phải là một câu hỏi cụ thể của Linux hơn là một câu hỏi liên quan đến Pi không? Có lẽ tốt hơn hỏi về Debain về nó?

Chào bạn Vì đây là Debian chung chung, bạn có phiền nếu tôi chuyển cái này sang Hỏi Ubuntu hoặc Unix & Linux không?
Jivings

@Jivings Tôi nghĩ rằng nó có liên quan đến PI vì tôi không biết gì về phao cứng và phao mềm và tôi biết có những cảnh báo với Pi về điều đó. Nếu có sự đồng thuận chung rằng ai đó ở đó có thể giúp trả lời câu hỏi này thì tôi không có vấn đề gì với việc nó được chuyển đi

Câu trả lời:


4

Nếu theo OpenCV, bạn có nghĩa là các thư viện thị giác máy tính tại http: //opencv.wvelgarage.com/ thì chúng đã được Nhóm Khoa học Debian đóng gói để gỡ lỗi.

Đặt cược tốt nhất của bạn là tải xuống gói nguồn đã được gỡ lỗi từ máy nhân bản gần nhất của bạn, sửa đổi debian / quy tắc và / hoặc Makefile hoặc cấu hình, vv khi cần để biên dịch chính xác trên raspberry pi và xây dựng lại các gói.

Công việc đóng gói đã được thực hiện, không cần phải làm lại .... và lặp đi lặp lại mỗi khi bạn muốn cập nhật chúng.

Có cả đống gói nhị phân, nhưng libopencv-dev có lẽ là thứ bạn muốn bắt đầu với http://packages.debian.org/search?keywords=libopencv-dev


Các gói được xuất bản có hoạt động trên kiến ​​trúc ARM như Raspberry Pi không? Tôi ước tôi hiểu rõ hơn về các gói và phụ thuộc nhưng dường như với tôi, trừ khi willowgarage phát hành một gói dành riêng cho bộ xử lý trong Raspberry Pi thì các gói của chúng sẽ không hoạt động.
Dan B

Bạn phải đọc sai những gì tôi đã viết. Tôi đã nói để tải xuống các gói SOURCE debian và biên dịch lại cho Raspberry Pi. 'onlinemarketresults' đã có môi trường biên dịch RPi (hoặc biên dịch chéo) được thiết lập và biết cách biên dịch cho RPi, anh ta chỉ muốn biết cách tạo một gói.
cas

11

Tôi nghĩ rằng tôi sẽ thêm một câu trả lời tốt hơn cho bất cứ ai khác quan sát chủ đề này.

Vì vậy, nếu bạn đã gặp phải sự cố khi xây dựng opencv trên thiết bị, có lẽ bạn đã làm theo hướng dẫn tại đây:

http://docs.opencv.org/doc/tutorials/int sinhtion / linux_install / linux_install.html

Trong trường hợp đó, nếu bạn không thêm -D argsđộng để ghi đè động các tham số CMake ở bước hai và thay vào đó bạn chỉ chạy cmake ..trong thư mục bản dựng (bạn đã tạo), nó sẽ tạo một CMakeCache.txttệp.

Nếu bạn chỉnh sửa CMakeCache.txttệp, bạn có thể thay đổi:

CPACK_BINARY_DEB:BOOL=ON

... Ngoài các biến được chỉ định khác trong liên kết opencv ở trên. Thay vì chạy makehoặc make install... chỉ chạy make packagevà điều kỳ diệu xảy ra.

Cảnh báo: Nếu bạn có WITH_CUDA:BOOL=ONvấn đề phụ thuộc với người đóng gói - và đó là một câu hỏi hoàn toàn khác ...

Để biết thêm thông tin, hãy xem các CPACK_*_*:BOOLtham số trong tệp cmake và tham khảo tài liệu CPack:

http://www.cmake.org/Wiki/CMake:CPackPackageGenerators


Điều này tạo ra một vài tệp .deb, một vài tệp tar và tập lệnh. Cái nào trong số này cần được phân phối và chạy trên hệ thống đích? Tất cả? Họ có cần bất kỳ tập tin hỗ trợ?
Alex

@Alex, quên bài này năm ngoái. Vì vậy, bạn nên có OpenCV-*-{libs,dev}.deb Bạn cần cả hai. Tôi nghĩ rằng dev có các tiêu đề ld sử dụng để liên kết với .so trong libs. Bạn cũng có thể tìm ra điều này bằng cách chạy dpkg -c OpenCV-*.debtrên gói, để liệt kê nội dung. Ngoài ra, nếu bạn đã tạo cái này từ source.tar, bạn có thể không có số phiên bản và dpkg -i $pkgsẽ không thích cái này. Bạn có thể biết nếu nó nói OpenCV-unknown-*{dev,libs}.debTrong trường hợp nào git clone github.com/Itseez/opencvgit checkout $tagtrong tab phát hành. Nếu bạn xây dựng từ ngọn cây, bạn cũng nhận được thẻ trên deb.
hhony

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.