2013-03-21 42 views
2

编译软件时,我常. ./configure & & make & & checkinstall -D make install打造的软件。试图覆盖`/var/backups/infodir.bak”,这也是包X

现在我使用检查安装的是我得到的错误

时遇到问题“,试图重写`/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 

回答

3

Debian中是禁止两包安装相同的文件。因此,每当您尝试安装包含文件“/ path/to/foo”的软件包,并且已经安装了包含文件“/ path/to/foo”的另一个软件包时,就会发生冲突,从而导致错误。维护人员的工作

部分是通过设置两个包(所以你甚至不能标注在同一时间在两个包之间的外在冲突,以确保这样的事情不会发生,

  • 用于安装)

  • 或通过重命名文件在一个封装(或两者),并相应地调整软件

  • 或通过防止一个(或两者)从安装这种文件封装(例如在在安装的文件确实是没有必要的情况下)

维护Debian软件包通常是大量的工作。

现在工具checkinstall是一个“穷人的”包维护工具,因为它使得从“make install”创建包变得非常容易。因为它是一个自动化工具,所以它不能代替维护者的工作和复杂性。 (否则我们不再需要任何debian维护者;只需将源代码包上传到某个构建服务器并在其上运行“checkinstall”)

所以你得到问题的原因是因为你安装的很糟糕维护(或更确切地说:自动创建并因此不被维护)包。 删除违规文件不起作用的原因是因为软件包管理不仅仅是下载档案并提取它们。除其他外,它维护数据库中安装文件的列表,并且此列表表明您已安装/var/backups/infodir.bak(无论该文件是否实际位于硬盘上)。导致你看到的冲突。

所以解决您的问题,在维修投入更多的时间。

在任何情况下,你应该调查为什么两个“套餐”都需要/var/backups/infodir.bak(以及他们是否需要它在所有)。

你可以从checkinstall通过

checkinstall --exclude /var/backups/infodir.bak -D make install 

省略某些文件,这是否会破坏任何你的包,我不能说。