debuild перестал работать в dh_install с CP: не может статистика 'debian/tmp//путь/к/установка/мусорное ведро /': Никакой такой файл или каталог

Я создаю двоичный пакет для локального использования путем чтения разговора http://chat.stackexchange.com/transcript/message/1313226#1313226. Я выполнил шаги, упомянутые в списке.

My environment:
ubuntu 12.04
Project: MakeFile based C++ project which contains several sub directories and creating several shared libraries.

Ниже выполненные шаги.

  1. создайте gpg ключ с помощью gpg - ключ генерала
  2. создайте необходимые каталоги для упаковки (папка для пакета с версией имени, debian sub папка) и работайте dh_make --createorig в консоли. Этот шаг генерировал требуемые файлы для упаковки внутри debian папка
  3. отредактируйте необходимые файлы в./debian папке

список файлов в./debian папке

source //folder
compat
rules
copyright
changelog
control
install

Ниже содержание важных файлов.

Управление кошкой $

Source: cscore
Section: misc
Priority: extra
Maintainer: dwft78 <aaaa@bbbb.com>
Build-Depends: debhelper (>= 8.0.0), autotools-dev
Standards-Version: 3.9.2
Homepage: <insert the upstream URL, if relevant>

Package: cscore
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: CoreScanner
CoreScanner for Ubuntu-12.04

Установка кошки $

/opt/installation-dir/bin/

это - то, где двоичные файлы должны быть установлены.

журнал изменений кошки

cscore (1.0-1) precise; urgency=low

  * Initial release (Closes: #nnnn)  <nnnn is the bug number of your ITP>

 -- name <name@xxx.com>  Wed, 28 May 2014 14:16:29 +0530

Правила кошки $

#!/usr/bin/make -f
# -*- makefile -*-
# Sample debian/rules that uses debhelper.
# This file was originally written by Joey Hess and Craig Small.
# As a special exception, when this file is copied by dh-make into a
# dh-make output file, you may use that output file without restriction.
# This special exception was added by Craig Small in version 0.37 of dh-make.

# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1

%:
    dh $@ 

наконец я работаю debuild команда, но я получил ошибку рева.

find /home/dwft78/project/cscore/cscore-1.0/lib -name "libcs*" -type f -exec cp -f {} /home/dwft78/project/cscore/cscore-1.0/debian/cscore/opt/motorola-scanner//bin \;
find /home/dwft78/project/cscore/cscore-1.0/lib -name "libcs*" -type l -exec cp -Rf {} /home/dwft78/project/cscore/cscore-1.0/debian/cscore/opt/motorola-scanner//bin \;
make[1]: Leaving directory `/home/dwft78/project/cscore/cscore-1.0'
   dh_install
cp: cannot stat `debian/tmp//opt/motorola-scanner/bin/': No such file or directory
dh_install: cp -a debian/tmp//opt/motorola-scanner/bin/ debian/cscore///opt/motorola-scanner/ returned exit code 1
make: *** [binary] Error 2
dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2

на самом деле нет никакой папки созданного названного tmp внутри debian папка. debhelper отметил состояние выполнения команды debuild, которое это продолжило до dh_install уровень. выходные файлы, также созданные за исключением вышеупомянутого набора файлов.

Кошка $ cscore.debhelper.log

dh_auto_configure
dh_auto_build
dh_auto_test
dh_prep
dh_installdirs
dh_auto_install

Кто-то помогает продвинуться.Спасибо.

3
задан 11 July 2016 в 07:30

2 ответа

Поскольку в странице справочника для dh_install говорится, цель dh_install и файлы, которые это читает, обычно используются для одной из двух целей:

  • Укажите, какие файлы входят в несколько двоичных пакетов из единственного источника; или
  • Файлы установки, не обработанные системой сборки пакета или файлами перемещения к различным каталогам

Если у Вас есть система сборки, которая может уже создать и установить все файлы, необходимые для двоичного пакета в правильных каталогах, и Вы только создаете один двоичный пакет из своего источника, то Вам не нужен a debian/install файл вообще.

Вы упомянули, что работаете с a Makefile- основанный проект. Пока это поддерживает стандартные цели как make all и make install и отношения $DESTDIR переменная для установки, нет никакой потребности в a debian/install вообще.

На самом деле в выводе Вы отправили Вас, видят, что пара строк запускается с find выполнение сразу прежде dh_install. Я предполагаю, что это - Ваш проект make install целевое выполнение, и это смотрит на меня как он, уже устанавливает файлы в корректном пути, а именно, debian/cscore/opt/motorola-scanner/bin. Таким образом, я думаю, что Ваша сборка могла бы работать без a debian/install.

3
ответ дан 11 July 2016 в 07:30

Хорошо, я понимаю проблему.

Случаются

, dh_auto_install поместит пакеты под debian/<project-name>, если будет только один пакет.

случай B

Однако это разместит их под debian/tmp, если у Вас будет несколько пакетов (т.е. приблизительно blah.install файлы и несколько объявлений пакета в control файл.)

Посмотрите информацию здесь:

http://manpages.ubuntu.com/manpages/trusty/en/man1/dh_auto_install.1.html

Так или иначе, dh_install только берет файлы, если они находятся под debian/tmp, и перестал работать полностью, если у Вас был только один пакет. Так выполнение dh_install, вероятно, не требуется..., но если Вы используете pdebuilder-dist, оно выполняется по умолчанию.

Решением

Там является переопределение эти dh_install, который создает проблему:

override_dh_install:
    @echo "skip dh_install"
0
ответ дан 11 July 2016 в 07:30

Другие вопросы по тегам:

Похожие вопросы: