Пытается перезаписать `/var/backups/infodir.bak', который также находится в пакете x
При компиляции программного обеспечения я всегда . ./configure
&& make
&& checkinstall -D make install
построить программное обеспечение.
Теперь я сталкиваюсь с проблемой при использовании checkinstall, что я получаю ошибку
msgstr "попытаться перезаписать`/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
1 ответ
В 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
сломает ли это какой-либо из ваших пакетов, я не могу сказать.