Я не уверен, что это точно отвечает на вопрос, но вот что я получил до сих пор (на Ubuntu lucid, checkinstall 1.6.1):
Я пытался построить проект с открытым исходным кодом, который просто отлично работал. Затем я попытался упаковать его для Debian:
checkinstall -D --install=no --pkgname=$PKGNAME --pkgversion=0.0.1 --pkgrelease="svn-001" --maintainer=test@test.com --strip=no --stripso=no --addso=yes
Это в основном не удалось в то же время Building file list... FAILED!
; и аналогичные grep: /var/tmp/tmp.NaoiwTHT6F/newfile: No such file or directory
сообщили.
Я также пытался добавить make
в конце команды checkinstall
выше - это тоже мало что дало.
Наконец, я попробовал это:
make clean<br>
checkinstall -D --install=no --pkgname=$PKGNAME --pkgversion=0.0.1 --pkgrelease="svn-001" --maintainer=test@test.com --strip=no --stripso=no --addso=yes -d2 make
Переключатель -d2
предназначен для включения отладки; и ... make
будет выполнен повторно еще раз.
-d2
распечатает временный каталог:
debug: The temporary directory is: [ /var/tmp/tmp.NaoiwTHT6F ]
, так что его можно проверить, перечислив ... И действительно, я могу подтвердить, что
newfile
не генерируется там в моем случае (однако, там
newfiles
,
newfiles.installwatch
,
newfiles-tar
и
newfiles.tmp
). На самом деле получается, что
checkinstall
- это скрипт
bash
, и поэтому можно подтвердить, что
newfile
появляется в нем только один раз:
$ grep 'newfile ' `which checkinstall`
grep '^/home' ${TMP_DIR}/newfile > /${TMP_DIR}/unwanted
Кроме того, отладка укажет эти файлы / каталоги:
debug: INSTW_EXCLUDE=/dev,/path/to/myproject-build,/proc,/tmp,/var/tmp,
debug: INSTW_ROOTPATH=/var/tmp/tmp.NaoiwTHT6F
debug: INSTW_LOGFILE=/var/tmp/tmp.NaoiwTHT6F/newfiles.tmp
debug: INSTW_DBGFILE=/var/tmp/tmp.NaoiwTHT6F/dbgfile
Обратите внимание, что по умолчанию путь к моей папке сборки /path/to/myproject-build
исключен, и именно здесь этот проект также хранит встроенные исполняемые файлы!
По-видимому, когда make
в пределах checkinstall
впервые собирается при сборке, он может захватывать вновь созданные исполняемые файлы - они будут перечислены в ${TMP_DIR}/newfile<b>s</b>
; однако в моем случае проблема заключается в том, что исполняемые файлы попадают в тот же каталог, где вызывается checkinstall
; таким образом, в этом диалоге:
Some of the files created by the installation are inside the build
directory: /path/to/myproject-build
You probably don't want them to be included in the package,
especially if they are inside your home directory.
Do you want me to list them? [n]: y
Should I exclude them from the package? (Saying yes is a good idea) [y]: n
... Я должен , на самом деле, отвечу n
- иначе я бы ничего не получил! Затем я могу проверить содержимое с помощью:
dpkg --contents mytest.deb | less
Однако тогда проблема в том, что checkinstall
:
- также включает
.o
файлы, а также .svn
каталоги
- считает абсолютный путь как относительный (автоматически не «отправляет» исполняемые файлы, скажем,
/usr/bin
и .so
с /usr/lib
Вкратце - на некоторых из вышеперечисленных подходов можно получить .deb
, который не является полностью пустым; но это не значит, что у вас есть только необходимые файлы или они будут перенаправлены в обычные места установки ...
Ну, надеюсь, это поможет хоть немного,
Ура!