2012-03-29 99 views
1

我已经创建了一个包含可执行文件的目录结构。以下是树的输出:创建具有依赖关系的.deb文件的问题

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 

任何人都可以提供任何建议吗?

+0

非常感谢您。 – 2012-03-29 14:50:57

回答

4

错误很明显:您尝试安装program-v5,它会尝试覆盖已存在并由包program2所有的文件。

所以,你需要或者

  • 手动安装program-v5,或

  • 之前卸载program2添加所需Conflicts:Provides:Replaces:debian/control - 请参阅该文档。

最后,对于包,/usr是一种更自然的选择,然后/usr/local

2

从错误消息:

trying to overwrite '/usr/local/include/myprog/file.txt', which is also in package program2

它看起来像你有一个包program2已经安装在系统中已经安装了此文件usr/local/include/myprog/file.txt上。

您应该先卸载该软件包dpkg -r program2