Проблемы с созданием файла .deb с зависимостями - PullRequest
1 голос
/ 29 марта 2012

Я создал структуру каталогов с исполняемым файлом.Ниже приводится вывод дерева:

program-5
├── debian
│   ├── DEBIAN
│   │   ├── changelog
│   │   ├── compat
│   │   ├── control
│   │   ├── copyright
│   │   ├── docs
│   │   ├── emacsen-install.ex
│   │   ├── emacsen-remove.ex
│   │   ├── emacsen-startup.ex
│   │   ├── init.d.ex
│   │   ├── manpage.1.ex
│   │   ├── manpage.sgml.ex
│   │   ├── manpage.xml.ex
│   │   ├── menu.ex
│   │   ├── postinst.ex
│   │   ├── postrm.ex
│   │   ├── preinst.ex
│   │   ├── prerm.ex
│   │   ├── program.cron.d.ex
│   │   ├── program.debhelper.log
│   │   ├── program.default.ex
│   │   ├── program.doc-base.EX
│   │   ├── README.Debian
│   │   ├── README.source
│   │   ├── rules
│   │   └── watch.ex
│   └── usr
│       └── local
│           └── include
│               └── myprog
│                   ├── file.txt
└── program *(executable)*

Это, однако, не работает с "file.txt".Я хочу, чтобы этот файл помещался в / usr / local / include / myprog /, но этого не происходит.это дает мне ошибку:

(Reading database ... 
(Reading database ... 5%
...
(Reading database ... 100%
(Reading database ... 204105 files and directories currently installed.)
Unpacking program-v5 (from .../program-5_1.4.2_i386.deb) ...
dpkg: error processing /tmp/program-5/debian/program-5_1.4.2_i386.deb (--install):
 trying to overwrite '/usr/local/include/myprog/file.txt', which is also in package program2 20120329-1
dpkg-deb (subprocess): data: internal gzip write error: Broken pipe
dpkg-deb: error: subprocess <decompress> returned error exit status 2
dpkg-deb (subprocess): failed in write on buffer copy for failed to write to pipe in copy: Broken pipe
Errors were encountered while processing:
 /tmp/program-5/debian/program-5_1.4.2_i386.deb

Может кто-нибудь предложить какой-нибудь совет?

Ответы [ 2 ]

4 голосов
/ 29 марта 2012

Ошибка довольно очевидна: вы пытаетесь установить program-v5, и он пытается перезаписать файл, уже существующий и принадлежащий пакету program2.

Так что вам нужно либо

  • вручную удалить program2 перед установкой program-v5 или

  • добавить необходимые Conflicts:, Provides:, Replaces: флаги в debian/control - см. Документы.

Наконец, для пакетов /usr является более естественным выбором, чем /usr/local.

2 голосов
/ 29 марта 2012

Из сообщения об ошибке:

пытается переписать '/usr/local/include/myprog/file.txt', который также в пакете program2

Похоже, в вашей системе уже установлен пакет program2, который уже установил этот файл usr/local/include/myprog/file.txt.

Вы должны сначала удалить этот пакет dpkg -r program2

...