Come posso creare un pacchetto .deb con la mia compilazione OpenCV compilata?


9

OpenCV 2.4.2 ha impiegato 6 ore per compilare sul Raspberry Pi e mi piacerebbe impacchettare tutto come un deb ma non l'ho mai fatto prima. Come posso pacchetto i file compilati in modo che scarichino o includano le altre librerie necessarie?


È più una domanda specifica su Linux piuttosto che una relativa a Pi? Forse è meglio chiedere a Debain di questo?

Ciao. Dato che si tratta di un Debian generico, ti dispiacerebbe spostarlo su Ask Ubuntu o Unix & Linux ?
Jivings,

@Jivings Penso che sia legato a PI poiché non so nulla di float vs float soft e so che ci sono avvertimenti con Pi su questo. Se c'è un consenso generale sul fatto che qualcuno possa aiutare a rispondere a questa domanda, non ho alcun problema con il suo spostamento

Risposte:


4

Se per OpenCV intendi le librerie di computer vision su http://opencv.willowgarage.com/, allora sono già impacchettate per debian dal Debian Science Team.

La soluzione migliore è scaricare il pacchetto sorgente debianizzato dal mirror debian più vicino, modificare debian / rules e / o Makefile o configurare ecc. Secondo necessità per compilare correttamente su raspberry pi e ricostruire i pacchetti.

Il lavoro di confezionamento è già terminato, non è necessario ripeterlo .... e ancora e ancora ogni volta che vuoi aggiornarli.

C'è un sacco di pacchetti binari, ma probabilmente libopencv-dev è quello che vuoi iniziare con http://packages.debian.org/search?keywords=libopencv-dev


I pacchetti pubblicati funzioneranno su un'architettura ARM come Raspberry Pi? Vorrei capire meglio i pacchetti e le dipendenze, ma mi sembra che a meno che Willowgarage non abbia rilasciato un pacchetto specifico per il processore in Raspberry Pi, i loro pacchetti non funzioneranno.
Dan B,

Devi aver letto male quello che ho scritto. Ho detto di scaricare i pacchetti debian SOURCE e ricompilare per Raspberry Pi. 'onlinemarketresults' ha già un ambiente di compilazione (o cross-compilation) RPi impostato e sa come compilare per RPi, voleva solo sapere come creare un pacchetto.
Cas

11

Ho pensato di aggiungere una risposta migliore a chiunque osservasse questa discussione.

Quindi, se hai già avuto il problema di creare opencv sul dispositivo, probabilmente hai seguito le istruzioni qui:

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

Nel qual caso, se non si aggiunge il -D argsper sovrascrivere dinamicamente i parametri CMake nel passaggio due e si esegue invece semplicemente cmake ..nella directory di build (creata), verrà generato un CMakeCache.txtfile.

Se modifichi il CMakeCache.txtfile, puoi modificare:

CPACK_BINARY_DEB:BOOL=ON

... oltre alle altre variabili specificate nel link sopra aperto. Invece di correre makeo make install... corri make packagee la magia accade.

Avvertenza: se lo hai WITH_CUDA:BOOL=ONpotresti avere problemi di dipendenza con il packager - e questa è una domanda completamente diversa ...

Per maggiori informazioni consultare i CPACK_*_*:BOOLparametri nei file cmake e consultare la documentazione di CPack:

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


Questo produce un paio di file .deb, un paio di file tar e uno script. Quali di questi devono essere distribuiti ed eseguiti su un sistema di destinazione? Tutti? Hanno bisogno di file di supporto?
Alex

@Alex, ho dimenticato questo post l'anno scorso. Quindi, dovresti avere OpenCV-*-{libs,dev}.deb Hai bisogno di entrambi. Penso che dev abbia le intestazioni che usa per collegarsi al .so nelle librerie. Puoi anche capirlo eseguendo dpkg -c OpenCV-*.debsul pacchetto, per elencare i contenuti. Inoltre, se lo hai creato da source.tar, potresti non avere un numero di versione e dpkg -i $pkgnon ti piacerà. Puoi sapere se dice OpenCV-unknown-*{dev,libs}.debIn quale caso git clone github.com/Itseez/opencve git checkout $tagnella scheda Rilasci. Se costruisci dalla cima dell'albero, ottieni anche il tag su deb.
hhony,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.