EDIT: Ok, como mencionado abaixo, a coisa "rejeitando a remoção ..." em aptitude
não funciona - foi isso que funcionou para mim, embora ...
Enquanto procura, digamos, Package: ipe
, pode-se acessar arquivos como:
$ grep -r 'Package: ipe' /var/lib/apt/lists/
...
/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_natty_universe_binary-i386_Packages:Package: ipe
...
/var/lib/apt/lists/old-releases.ubuntu.com_ubuntu_dists_natty_universe_binary-i386_Packages:Package: ipe
...
... no entanto, isso não está certo - aparentemente, as informações de tempo de execução para apt-get
etc. são armazenadas em /var/lib/dpkg/status
(via Como faço para corrigir um" problema com MergeList "ou" arquivo de status não pôde ser analisado "erro ao tentar fazer uma atualização? ).
Então, eu abri o arquivo via sudo nano /var/lib/dpkg/status
, procurei "Package: ipe" e tentei comentar a porção texlive-latex-base
de "Depends:" - primeiro colocando-a em uma linha separada, comentando com um sinal de número / hash #
. Observe que isso não funciona - primeiro você obterá erros como:
dpkg: error: parsing file '/var/lib/dpkg/status' near line 8140 package 'ipe':
field name '#,' must be followed by colon
E: Sub-process /usr/bin/dpkg returned an error code (2)
... então, se você tentar adicionar esses dois pontos, como em #:
, você verá:
dpkg: error: parsing file '/var/lib/dpkg/status' near line 8141 package 'ipe':
user-defined field name '#' too short
E: Sub-process /usr/bin/dpkg returned an error code (2)
Aparentemente, esses arquivos não usam comentários; e eles parecem estar documentados no Manual de Normas Debian - Arquivos de controle e seus campos . Então eu encontrei:
O caminho certo para incluir um campo no .deb é usar campos chamados "XB - *".
... então, basicamente, em vez de usar um caractere de comentário para "comentar" - eu usei um campo definido pelo usuário, que eu chamei arbitrariamente de XB-Ignore:
; então essa porção de /var/lib/dpkg/status
acabou parecendo assim:
Package: ipe
...
Depends: libc6 (>= 2.4), libcairo2 (>= 1.2.4), libgcc1 (>= 1:4.1.1), libipe7.0.10, liblua5.1-0, libqtcore4 (>= 4:4.6.$
XB-Ignore: , texlive-latex-base, gsfonts
...
Com essa alteração salva, consegui executar a instalação usando apt-get
diretamente, sem problemas:
$ sudo apt-get install dropbox
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
python-gpgme
The following NEW packages will be installed:
dropbox
0 upgraded, 1 newly installed, 0 to remove and 1 not upgraded.
1 not fully installed or removed.
Need to get 0 B/93,0 kB of archives.
After this operation, 410 kB of additional disk space will be used.
Selecting previously deselected package dropbox.
...
Setting up dropbox (1.6.1) ...
Processing triggers for menu ...
Eu apenas observo que /var/lib/dpkg/status
não é um arquivo persistente - na verdade, logo após o apt-get install
, se você verificar o arquivo novamente, Depends:
e XB-Ignore:
não estarão mais nas linhas vizinhas ( como eram originalmente, como mostrado no trecho acima)!
Enquanto a questão sobre ignorar a dependência não satisfeita ainda está aberta indicada - acontece que eu fiz interpreto mal essas "novas soluções": são as escolhas que você é oferecido por aptitude
se você responder "não" ao "Aceitar esta solução?" pergunta:
...
The following packages have unmet dependencies:
ipe: Depends: texlive-latex-base but it is not going to be installed.
The following actions will resolve these dependencies:
Remove the following packages:
1) ipe
Accept this solution? [Y/n/q/?] r 1
Rejecting the removal of ipe
The following actions will resolve these dependencies:
Remove the following packages:
1) R ipe
Accept this solution? [Y/n/q/?] n # <==== here not accepting above solution
The following actions will resolve these dependencies: # <==== new solution offered here:
Install the following packages:
1) lmodern [2.004.1-3 (natty)]
2) luatex [0.65.0-1ubuntu3 (natty)]
3) tex-common [2.09 (natty)]
4) texlive-base [2009-11 (natty)]
5) texlive-binaries [2009-8ubuntu2 (natty)]
6) texlive-common [2009-11 (natty)]
7) texlive-doc-base [2009-2 (natty)]
8) texlive-latex-base [2009-11 (natty)]
9) texlive-latex-base-doc [2009-11 (natty)]
10) texlive-luatex [2009-11 (natty)]
Accept this solution? [Y/n/q/?] r 1
Rejecting the installation of lmodern version 2.004.1-3 (natty)
The following actions will resolve these dependencies:
Install the following packages:
1) R lmodern [2.004.1-3 (natty)]
2) luatex [0.65.0-1ubuntu3 (natty)]
...
Accept this solution? [Y/n/q/?] r 10
Rejecting the installation of texlive-luatex version 2009-11 (natty)
The following actions will resolve these dependencies:
Install the following packages:
1) R lmodern [2.004.1-3 (natty)]
2) R luatex [0.65.0-1ubuntu3 (natty)]
3) R tex-common [2.09 (natty)]
4) R texlive-base [2009-11 (natty)]
5) R texlive-binaries [2009-8ubuntu2 (natty)]
6) R texlive-common [2009-11 (natty)]
7) R texlive-doc-base [2009-2 (natty)]
8) R texlive-latex-base [2009-11 (natty)]
9) R texlive-latex-base-doc [2009-11 (natty)]
10) R texlive-luatex [2009-11 (natty)]
Accept this solution? [Y/n/q/?] n
*** No more solutions available ***
The following actions will resolve these dependencies:
Install the following packages:
1) R lmodern [2.004.1-3 (natty)]
2) R luatex [0.65.0-1ubuntu3 (natty)]
3) R tex-common [2.09 (natty)]
4) R texlive-base [2009-11 (natty)]
5) R texlive-binaries [2009-8ubuntu2 (natty)]
6) R texlive-common [2009-11 (natty)]
7) R texlive-doc-base [2009-2 (natty)]
8) R texlive-latex-base [2009-11 (natty)]
9) R texlive-latex-base-doc [2009-11 (natty)]
10) R texlive-luatex [2009-11 (natty)]
Accept this solution? [Y/n/q/?] y
The following NEW packages will be installed:
dropbox lmodern{a} luatex{a} tex-common{a} texlive-base{a} texlive-binaries{a} texlive-common{a}
texlive-doc-base{a} texlive-latex-base{a} texlive-latex-base-doc{a} texlive-luatex{a}
The following partially installed packages will be configured:
ipe
0 packages upgraded, 11 newly installed, 0 to remove and 1 not upgraded.
Need to get 87,4 MB of archives. After unpacking 181 MB will be used.
Do you want to continue? [Y/n/?] n
Abort.
Então, sim - se eu continuar rejeitando todas as soluções, no final eu vou pegar "*** Sem mais soluções disponíveis ***", e aptitude
pode ir com essas soluções, ou abortar - mas infelizmente não pode ignorá-los com esta técnica ...