Як я можу створити .deb пакет зі складеною збіркою OpenCV?


9

На компіляцію OpenCV 2.4.2 пішло 6 годин, і я хотів би спакувати все як деб, але я цього ніколи не робив. Як я можу упакувати складені файли, щоб вони завантажили або включили необхідні інші бібліотеки?


Це більше питання для Linux, а не для Pi? Можливо, краще запитати у Дебейна про це?

Привіт там. Оскільки це універсальний Debian, чи не заперечуєте ви, якщо я переміщу його до Ask Ubuntu або Unix & Linux ?
Відхилення

@ Jivings Я думаю, що це пов'язано з PI, оскільки я нічого не знаю про жорсткий поплавок проти м'якого поплавця, і я знаю, що з Пі в цьому є застереження. Якщо існує загальна думка про те, що хтось там може допомогти відповісти на це запитання, у мене немає проблем з цим переміщенням

Відповіді:


4

Якщо під OpenCV ви маєте на увазі бібліотеки комп'ютерного зору на http://opencv.willowgarage.com/, вони вже упаковані для debian науковою командою Debian.

Ваша найкраща ставка - завантажити пакет дебіанізованого джерела з найближчого дзеркала Debian, змінити debian / правила та / або Makefile або налаштувати тощо за необхідності, щоб правильно скласти програму малинового пі та відновити пакети.

Робота з упаковкою вже зроблена, не потрібно робити це знову .... і знову і знову кожного разу, коли ви хочете їх оновлювати.

Існує ціла купа двійкових пакетів, але libopencv-dev - це, мабуть, те, що ви хочете почати з http://packages.debian.org/search?keywords=libopencv-dev


Чи будуть опубліковані пакети працювати в архітектурі ARM, як Raspberry Pi? Я хотів би, щоб я краще зрозумів пакети та залежності, але мені здається, що якщо willowgarage не випустить пакет спеціально для процесора в Raspberry Pi, то їхні пакети не працюватимуть.
Dan B

Ви, мабуть, неправильно прочитали те, що я написав. Я сказав , щоб завантажити DEBiAN SOURCE пакети і перекомпіліровать для Raspberry Pi. 'onlinemarketresults' вже має середовище компіляції RPi (або крос-компіляції), яке знає, як компілювати RPI, він просто хотів знати, як зробити пакет.
cas

11

Я думав, що додам кращої відповіді для всіх, хто спостерігає цю тему.

Отже, якщо ви вже зіткнулися з проблемою створення opencv на пристрої, ви, ймовірно, дотримувались тут інструкцій:

http://docs.opencv.org/doc/tutorials/introduction/linux_install/linux_install.html

У такому випадку, якщо ви не додасте -D argsпараметри CMake, що динамічно переосмислюється, на другому кроці, а ви замість цього просто запустіть cmake ..всередині каталогу збирання (ви створили), він створить CMakeCache.txtфайл.

Якщо ви редагуєте CMakeCache.txtфайл, ви можете змінити:

CPACK_BINARY_DEB:BOOL=ON

... крім інших вказаних змінних у вищенаведеному посиланні opencv. Замість того, щоб бігати makeабо make install... просто бігайте, make packageі чарівництво відбувається.

Попередження: Якщо у WITH_CUDA:BOOL=ONвас можуть виникнути проблеми із залежністю з пакувальником - і це зовсім інше питання ...

Для отримання додаткової інформації див. CPACK_*_*:BOOLПараметри у файлах cmake та ознайомтесь із документацією на CPack:

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


Це створює пару файлів .deb, пару файлів tar та сценарій. До кого з них потрібно розповсюджувати та працювати за цільовою системою? Усі? Чи потрібні їм якісь підтримуючі файли?
Алекс

@ Алекс, минулого року забув про цю посаду. Отже, ви повинні мати OpenCV-*-{libs,dev}.deb Вам потрібно обоє. Я думаю, що у Dev є заголовки, які ld використовує для посилання на .so в libs. Ви також можете це зрозуміти, запустивши dpkg -c OpenCV-*.debна пакунку, щоб перерахувати вміст. Крім того, якщо ви створили це з source.tar, у вас може не бути номер версії, і dpkg -i $pkgце не сподобається. Ви можете сказати, чи йдеться OpenCV-unknown-*{dev,libs}.debУ цьому випадку git clone github.com/Itseez/opencvта git checkout $tagна вкладці випусків. Якщо ви будуєте зверху дерева, ви також отримуєте тег на деб.
хоні

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.