Defino o empacotamento de vários bancos de dados grandes em alguns pacotes debian muito básicos, de modo a facilitar a vida no meu trabalho. No entanto, agora estou encontrando alguns problemas. A maioria dos bancos de dados será instalada de maneira feliz, no entanto, os três maiores falharão.
find . -name "*.deb" -exec du -h '{}' \; | sort -h
# These install fine
4.0K ./hh-suite-data_1.0_all.deb
422M ./hh-suite-data-env70/package/hh-suite-data-env70_1.0.0_amd64.deb
660M ./hh-suite-data-env90/package/hh-suite-data-env90_1.0.0_amd64.deb
795M ./hh-suite-data-env/package/hh-suite-data-env_1.0.0_amd64.deb
1.6G ./hh-suite-data-scop70/package/hh-suite-data-scop70_1.0.0_amd64.deb
2.6G ./hh-suite-data-nr70/package/hh-suite-data-nr70_1.0.0_amd64.deb
2.8G ./hh-suite-data-pfamA/package/hh-suite-data-pfama_1.0.0_amd64.deb
3.2G ./hh-suite-data-nr90/package/hh-suite-data-nr90_1.0.0_amd64.deb
# These fail to install
4.3G ./hh-suite-data-nr20/package/hh-suite-data-nr20_1.0.0_amd64.deb
6.2G ./hh-suite-data-pdb70/package/hh-suite-data-pdb70_1.0.0_amd64.deb
7.4G ./hh-suite-data-nr/package/hh-suite-data-nr_1.0.0_amd64.deb
As falhas são assim:
sudo dpkg -i package/hh-suite-data-nr20_1.0.0_amd64.deb
[sudo] password for esr:
(Reading database ... 276172 files and directories currently installed.)
Unpacking hh-suite-data-nr20 (from .../hh-suite-data-nr20_1.0.0_amd64.deb) ...
dpkg: error processing package/hh-suite-data-nr20_1.0.0_amd64.deb (--install):
corrupted filesystem tarfile - corrupted package archive
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Errors were encountered while processing:
package/hh-suite-data-nr20_1.0.0_amd64.deb
Estou um pouco convencido de que é por causa do tamanho dos arquivos, algo entre 3,2 e 4,3G.
Alguém tem alguma experiência com grandes pacotes muito e seus modos de falha? Alguém tem alguma idéia do porquê isso está acontecendo? Eu não tenho nenhuma razão para acreditar que o arquivo tar está corrompido, eu construí o pacote muitas vezes e ainda vejo esse erro na instalação
Estou reescrevendo meus pacotes para apenas wget
dos arquivos a partir de um espelho, em vez de realmente conter os bancos de dados, já que isso contorna o problema do tar.
Executando com -D10
# This file unpacks fine
D000010: tarobject ti->name='./usr/share/hh-suite-data/pdb70/pdb70_19Oct13_a3m_db.index' mode=100644 owner=0.0 type=48(-) ti->linkname='' namenode='/usr/share/hh-suite-data/pdb70/pdb70_19Oct13_a3m_db.index' flags=2 instead='<none>'
D000010: ensure_pathname_nonexisting '/usr/share/hh-suite-data/pdb70/pdb70_19Oct13_a3m_db.index.dpkg-tmp'
D000010: ensure_pathname_nonexisting '/usr/share/hh-suite-data/pdb70/pdb70_19Oct13_a3m_db.index.dpkg-new'
# This is a 16G file and fails IMMEDIATELY.
D000010: tarobject ti->name='./usr/share/hh-suite-data/pdb70/pdb70_19Oct13_a3m_db' mode=100644 owner=0.0 type=48(-) ti->linkname='' namenode='/usr/share/hh-suite-data/pdb70/pdb70_19Oct13_a3m_db' flags=2 instead='<none>'
D000010: ensure_pathname_nonexisting '/usr/share/hh-suite-data/pdb70/pdb70_19Oct13_a3m_db.dpkg-tmp'
D000010: ensure_pathname_nonexisting '/usr/share/hh-suite-data/pdb70/pdb70_19Oct13_a3m_db.dpkg-new'
dpkg: error processing hh-suite-data-pdb70_1.0.0_amd64.deb (--install):
corrupted filesystem tarfile - corrupted package archive
Correndo com -D100
Existem duas entradas nessa parte, uma boa e a ruim, e algumas após a falha. O que me preocupa é o bit "tarobject file open size = 0".
D000100: setupvnamevbs main='/usr/share/hh-suite-data/pdb70/pdb70_19Oct13_a3m_db.index' tmp='/usr/share/hh-suite-data/pdb70/pdb70_19Oct13_a3m_db.index.dpkg-tmp' new='/usr/share/hh-suite-data/pdb70/pdb70_19Oct13_a3m_db.index.dpkg-new'
D000100: tarobject already exists
D000100: tarobject file open size=900749
D000100: tarobject nondirectory, 'link' backup
D000100: tarobject done and installation deferred
D000100: setupvnamevbs main='/usr/share/hh-suite-data/pdb70/pdb70_19Oct13_a3m_db' tmp='/usr/share/hh-suite-data/pdb70/pdb70_19Oct13_a3m_db.dpkg-tmp' new='/usr/share/hh-suite-data/pdb70/pdb70_19Oct13_a3m_db.dpkg-new'
D000100: tarobject already exists
D000100: tarobject file open size=0
D000100: tarobject nondirectory, 'link' backup
D000100: tarobject done and installation deferred
dpkg: error processing hh-suite-data-pdb70_1.0.0_amd64.deb (--install):
corrupted filesystem tarfile - corrupted package archive
D000100: setupvnamevbs main='//usr/share/hh-suite-data/pdb70/pdb70_19Oct13_a3m_db' tmp='//usr/share/hh-suite-data/pdb70/pdb70_19Oct13_a3m_db.dpkg-tmp' new='//usr/share/hh-suite-data/pdb70/pdb70_19Oct13_a3m_db.dpkg-new'
D000100: cu_installnew restoring atomic
D000100: secure_remove '//usr/share/hh-suite-data/pdb70/pdb70_19Oct13_a3m_db.dpkg-new' unlink OK