Como ignorar dependencias dos pacotes deb

Provavelmente você já passou por este problema: ao tentar instalar um pacote .deb o programa insiste em depender de uma versão antiga de uma biblioteca ou outro programa, mesmo funcionando perfeitamente com a versão mais nova desta dependencia.

Provavelmente você sabe que é possível ignorar a depencia acrescentando a opção “–no-deps=nomedadependencia” como argumento junto ao “apt-get install” ou usando “–ignore-depends=nomedadependencia” como argumento junto ao “dpkg -i”, porém ao tentar instalar outro programa o dpkg ou apt-get irão reclamar do problema da dependência.

Felizmente existem algumas formas de resolver este problema. A primeira e mais complicada é esta opção:

Decompacte o deb:

$ ar x youpackage-linux.deb (serão criados 3 arquivos: debian-binary control.tar.gz data.tar.gz)

Descompacte o arquivo control:

$ tar xzf control.tar.gz (serão criados: postinst postrm preinst prerm md5sums control)

Remova as dependencias editando o arquivo control.

Reempacote control.tar.gz:

$ tar c {post,pre}{inst,rm} md5sums control | gzip -c > control.tar.gz

Compacte o pacote deb:

$ ar rcs newpackage.deb debian-binary control.tar.gz data.tar.gz

Fonte: http://serverfault.com/questions/250224/how-do-i-get-apt-get-to-ignore-some-dependencies

A segunda opção é bem mais simples, use o equivs p/ criar um pacote vazio:

$ sudo aptitude install equivs
$ mkdir /tmp/tl-equivs && cd /tmp/tl-equivs
$ equivs-control nome_pacote_depencia
Edite o arquivo "nome_pacote_depencia" e coloque o nome do pacote e versão
$ equivs-build texlive-local
$ sudo dpkg -i nome_pacote_depencia_versao-1_all.deb

Fonte: http://askubuntu.com/questions/74523/how-can-i-install-a-package-without-installing-some-dependencies

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s