1

我创建了一个带有可执行文件的目录结构。以下是树的输出:

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

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

4

2 回答 2

4

错误很明显:您尝试安装program-v5,但它试图覆盖已经存在并由 package 拥有的文件program2

所以你需要要么

  • program2安装前手动卸载program-v5,或

  • 添加所需的Conflicts:, Provides:,Replaces:标志debian/control- 请参阅文档。

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

于 2012-03-29T14:18:16.960 回答
2

从错误消息中:

试图覆盖'/usr/local/include/myprog/file.txt',它也在包program2中

看起来你program2的系统上已经安装了一个已经安装了这个文件的包usr/local/include/myprog/file.txt

你应该先卸载这个包dpkg -r program2

于 2012-03-29T14:20:24.190 回答