As vezes as pessoas querem usar uma versão específica para um programa, uma versão mais nova, só disponível em fontes, sem pacote Debian. Mas o sistema de empacotamento pode atrapalhar esses planos. Suponha que você quer compilar uma nova versão do seu servidor de email. Tudo vai bem, mas inúmeros pacotes no Debian dependem de um MTA (Mail Transport Agent) instalado. Como você instalou algo que você mesmo compilou, o sistema de pacotes não sabe da presença dele.
É aí que entra o equivs
. Para usá-lo instale o pacote de mesmo
nome. O equivs cria um pacote vazio que preenche dependências, fazendo com que
o sistema de pacotes acredite que as dependências estão satisfeitas.
Antes de continuarmos, é bom lembrar que há maneiras mais seguras de se compilar um programa que já está debianizado com opções alteradas, e que não se deve usar o equivs para substituir dependências se você não souber realmente o que está fazendo. Veja a seção Lidando com pacotes fonte, Capítulo 6 para saber mais.
Vamos continuar com o exemplo do MTA, você acaba de instalar seu novo
postfix
compilado e parte para a instalação do mutt
.
Qual não é sua surpresa quando descobre que o mutt
quer instalar
um outro MTA, mas você já tem o seu.
Vá para um diretório qualquer (/tmp
, por exemplo) e execute:
# equivs-control nome
Substitua nome pelo nome do arquivo de controle que você quer criar. O arquivo vai ser criado da seguinte forma:
Section: misc Priority: optional Standards-Version: 3.0.1 Package: <enter package name; defaults to equivs-dummy> Version: <enter version here; defaults to 1.0> Maintainer: <your name and email address; defaults to username> Pre-Depends: <packages> Depends: <packages> Recommends: <packages> Suggests: <package> Provides: <(virtual)package> Architecture: all Copyright: <copyright file; defaults to GPL2> Changelog: <changelog file; defaults to a generic changelog> Readme: <README.Debian file; defaults to a generic one> Extra-Files: <additional files for the doc directory, commaseperated> Description: <short description; defaults to some wise words> long description and info . second paragraph
Basta alterar isso agora para que o que queremos seja feito. Observe bem o formato dos campos e as descrições deles, não há necessidade aqui de discorrer sobre cada um desses, vamos ao que é necessário:
Section: misc Priority: optional Standards-Version: 3.0.1 Package: mta-local Provides: mail-transport-agent
Sim, é só isso. O mutt
depende de
mail-transport-agent, que é um pacote virtual fornecido por todos
os MTAs, eu poderia simplesmente chamar o pacote de
mail-transport-agent, também, mas preferi usar o esquema do pacote
virtual,usando o Provides.
Agora basta construir o pacote:
# equivs-build nome dh_testdir touch build-stamp dh_testdir dh_testroot dh_clean -k # Add here commands to install the package into debian/tmp. touch install-stamp dh_testdir dh_testroot dh_installdocs dh_installchangelogs dh_compress dh_fixperms dh_installdeb dh_gencontrol dh_md5sums dh_builddeb dpkg-deb: building package `nome' in `../nome_1.0_all.deb'. The package has been created. Attention, the package has been created in the current directory,
E instalar o .deb resultante.
Como se pode ver, há inúmeras utilidades para o equivs
. Inclusive
criar um pacote meus-preferidos, que dependa dos programas que
você sempre instala, por exemplo. É soltar a imaginação, mas com cuidado.
É importante notar que há exemplos de arquivos de controle em
/usr/share/doc/equivs/examples
. Confira.
Muitos usuários de Debian usam apenas um locale. Um usuário de Debian brasileiro, por exemplo, normalmente usa o locale pt_BR o tempo todo e não se importa com o es.
O localepurge
é uma ferramenta muito útil para esses usuários.
Você pode liberar muito espaço tendo apenas os locales que você realmente usa.
Basta usar apt-get install localepurge.
É muito fácil configurá-lo, perguntas feitas com o debconf guiam o usuário em uma configuração passo-a-passo. Seja cuidadoso ao responder a primeira questão; respostas erradas podem remover todos os arquivos de locale, mesmo aqueles que você usa. A única maneira de recuperá-los será reinstalar todos os pacotes que os fornecem.
O apt-show-versions
é um programa que mostra quais pacotes do seu
sistema podem ser atualizados e várias outras informações úteis. Para saber
quais pacotes podem ser atualizados faça:
$ apt-show-versions -u libeel0/unstable upgradeable from 1.0.2-5 to 1.0.2-7 libeel-data/unstable upgradeable from 1.0.2-5 to 1.0.2-7
Como usar o APT
1.8.10 - Novembro de 2004kov@debian.org