在编译软件时,我总是使用. ./configure
& make
&& checkinstall -D make install
来构建软件。
现在我遇到了问题,当我使用检查时,我得到了错误。
“试图覆盖‘/var/backups/infodir.bak’,这也在包libtasn1-3.2中”。
我还创建了libtasn1-3.2和./configure
& make
&& checkinstall -D make install
。
我试图删除文件/var/backups/infodir.bak,,但仍然得到了错误。有人知道我怎么能解决这个问题吗?
Building Debian package...OK
Installing Debian package... FAILED!
Failed to install the package
Do you want to see the log file? [y]: y (Reading database ... dpkg:
serious warning: files list file for package `squeezecenter-readynas'
missing, assuming package has no files currently installed. 30739
files and directories currently installed.) Unpacking libgcrypt-1.5.1
(from .../libgcrypt-1.5.1_1.5.1-1_sparc.deb) ... dpkg: error
processing
/c/backup/zarafa/libgcrypt-1.5.1/libgcrypt-1.5.1_1.5.1-1_sparc.deb
(--install): trying to overwrite `/var/backups/infodir.bak', which is
also in package libtasn1-3.2 dpkg-deb: subprocess paste killed by
signal (Broken pipe) Errors were encountered while processing:
/c/backup/zarafa/libgcrypt-1.5.1/libgcrypt-1.5.1_1.5.1-1_sparc.deb
发布于 2013-03-21 19:13:42
在debian中,禁止两个包安装相同的文件。
因此,每当您试图安装一个包含文件"/path/ to /foo“的包,并且已经安装了另一个包含文件"/path/to/foo”的包时,就会出现冲突,从而导致错误。
维护人员的工作之一就是确保这类事情不会发生,
维护debian包通常是一项很大的工作。
现在,这个工具checkinstall
是一个“可怜人”的包维护工具,因为它使从“makes”创建包变得非常容易。由于它是一个自动化工具,它根本无法取代维护人员的工作和复杂性。(否则,我们将不再需要任何debian维护人员;只需将源代码包上传到某个构建服务器,并在其上运行"checkinstall“)。
因此,您遇到问题的原因,是因为您正在安装维护不善的软件包(或者更确切地说,是自动创建的,因此不是全部维护的)。删除违规文件不起作用的原因是,包管理不仅仅是下载和提取档案。除其他外,它在数据库中维护一个已安装文件列表,此列表表明您已经安装了/var/backups/infodir.bak
(无论该文件是否实际位于硬盘上).导致你看到的冲突。
所以解决你的问题的方法是,在维护上投入更多的时间。
无论如何,您应该研究为什么这两个“包”都需要/var/backups/infodir.bak
(以及它们是否需要它)。
可以通过以下方式从checkinstall
中省略某些文件
checkinstall --exclude /var/backups/infodir.bak -D make install
这是否会破坏你的任何包裹,我不能说。
https://stackoverflow.com/questions/15546064
复制相似问题