<!-- -*- mode: sgml; mode: fold -*- -->
<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [

<!ENTITY % aptent SYSTEM "apt.ent.pt_BR">
%aptent;

]>

<refentry lang="pt_BR">
 &apt-docinfo;

 <refmeta>
   <refentrytitle>apt_preferences</>
   <manvolnum>5</>
 </refmeta>

 <!-- Man page title -->
 <refnamediv>
    <refname>apt_preferences</>
    <refpurpose>Arquivo de controle de prefer�ncias para o APT</>
 </refnamediv>

<RefSect1>
<Title>Descri��o</Title>
<para>
O arquivo de prefer�ncias do APT <filename>/etc/apt/preferences</>
pode ser usado para controlar quais vers�es de pacotes ser�o
selecionadas para instala��o.
</para>

<para>
Diversas vers�es de um pacote podem estar dispon�veis para
instala��o quando o arquivo &sources-list; cont�m refer�ncias para
mais de uma distribui��o (por exemplo, <literal>stable</literal> e
<literal>testing</literal>). O APT atribui uma prioridade para cada
vers�o que esteja dispon�vel. Sujeito a obst�culos de depend�ncias, o
<command>apt-get</command> seleciona para instala��o a vers�o com a
maior prioridade.
O arquivo de prefer�ncias do APT sobrepoe as prioridades que o APT
atribui a cada vers�o de pacote por padr�o, dando assim ao usu�rio
controle sobre qual vers�o do pacote � selecionada para instala��o.
</para>
<para>
Diversas inst�ncias da mesma vers�o de um pacote pode estar dispon�veis
quando o arquivo &sources-list; cont�m refer�ncias a mais de uma fonte.
Nesse caso, o <command>apt-get</command> faz o download da inst�ncia
listada antes no arquivo &sources-list; .
O arquivo de prefer�ncias do APT n�o afeta a escolha da inst�ncia.
</para>

<RefSect2><Title>Atribui��es de Prioridade Padr�o do APT</>

<para>
Caso n�o exista um arquivo de prefer�ncias ou caso n�o exista uma
entrada no arquivo que se aplique a uma inst�ncia em particular, a
prioridade atribu�da a essa inst�ncia � a prioridade da distribui��o
para a qual a inst�ncia pertence. � poss�vel selecionar uma distribui��o,
conhecida como "a vers�o alvo" (the target release), que recebe uma
prioridade maior do que as outras distribui��es. 
A vers�o alvo pode ser definida na linha de comando do
<command>apt-get</command> ou no arquivo de configura��o do APT
<filename>/etc/apt/apt.conf</filename>.
Por exemplo, 
<programlisting>
<command>apt-get install -t testing <replaceable>algum-pacote</replaceable></command>
</programlisting>
<programlisting>
APT::Default-Release "stable";
</programlisting>
</para>

<para>
Caso uma vers�o alvo tenha sido especificada o APT usar� o seguinte
algoritmo para definir as prioridades das inst�ncias de um pacote.
Atribuir� :
<variablelist>
<varlistentry>
<term>prioridade 100</term>
<listitem><simpara>para a inst�ncia que j� esteja instalada (caso exista).</simpara></listitem>
</varlistentry>
<varlistentry>
<term>prioridade 500</term>
<listitem><simpara>para as inst�ncias que n�o est� instaladas e que n�o pertencem a vers�o alvo.</simpara></listitem>
</varlistentry>
<varlistentry>
<term>prioridade 990</term>
<listitem><simpara>para as inst�ncias que n�o estejam instaladas e perten�am a vers�o alvo.</simpara></listitem>
</varlistentry>
</variablelist>
</para>

<para>
Caso nenhuma vers�o alvo tenha sido especificada, o APT simplesmente
ir� atribuir a prioridade 100 para todas as inst�ncias de pacotes instaladas
e a prioridade 500 para todas as inst�ncias de pacotes n�o instaladas.
</para>

<para>
O APT aplica as regras a seguir, listadas em ordem de preced�ncia, para
determinar qual inst�ncia de um pacote instalar.
<itemizedlist>
<listitem><simpara>Nunca faz um downgrade a menos que a prioridade de
uma inst�ncia dispon�vel exceda 1000. (Fazer um "downgrade" � instalar uma
vers�o menos recente de um pacote no lugar de uma vers�o mais recente. Note
que nenhuma das prioridades padr�o do APT excede 1000; prioridades altas
como essa podem ser definidas somente no arquivo de prefer�ncias. Note
tamb�m que fazer um "downgrade" pode ser arriscado.)</simpara></listitem>
<listitem><simpara>Instala a inst�ncia de prioridade mais alta.</simpara></listitem>
<listitem><simpara>Caso duas ou mais inst�ncias possuam a mesma prioridade,
instala a inst�ncia mais recente (ou seja, aquela com o maior n�mero de
vers�o).</simpara></listitem>
<listitem><simpara>Caso duas ou mais inst�ncias possuam a mesma prioridade
e n�mero de vers�o mas os pacotes sejam diferentes em alguns de seus
metadados ou a op��o <literal/--reinstall/ seja fornecida, instala aquela
desinstalada.</simpara></listitem>
</itemizedlist>
</para>

<para>
Em uma situa��o t�pica, a inst�ncia instalada de um pacote
(prioridade 100) n�o � t�o recente quanto uma das vers�es dispon�veis
nas fontes listadas no arquivo &sources-list; (prioridade 500 ou 990).
Ent�o o pacote ser� atualizado quando os comandos
<command>apt-get install <replaceable>algum-pacote</replaceable></command>
ou <command>apt-get dist-upgrade</command> forem executados.
</para>

<para>
Mais raramente, a vers�o instalada de um pacote � <emphasis/mais/
recente do que qualquer uma das outras vers�es dispon�veis. O dowgrade
do pacote n�o ser� feito quando os comandos
<command>apt-get install <replaceable>algum-pacote</replaceable></command>
ou <command>apt-get upgrade</command> forem executados.
</para>

<para>
Algumas vezes a vers�o instalada de um pacote � mais recente que a vers�o
que pertence a vers�o alvo, mas n�o t�o recente quanto a vers�o que
pertence a alguma outra distribui��o. Um pacote como esse ser� na verdade
atualizado quando os comandos
<command>apt-get install <replaceable>algum-pacote</replaceable></command>
ou <command>apt-get upgrade</command> forem executados, devido a pelo
menos <emphasis/uma/ das vers�es dispon�veis possuir uma prioridade maior
do que a vers�o instalada.
</para>

</RefSect2>

<RefSect2><Title>O Efeito das Prefer�ncias do APT</>

<para>
O arquivo de prefer�ncias do APT permite ao administrador do
sistema personalizar prioridades. O arquivo consiste de um ou mais
registros de m�ltiplas linhas separados por linhas em branco. Registros
podem possuir uma das duas formas, uma forma espec�fica e uma forma geral.
<itemizedlist>
<listitem>
<simpara>
A forma espec�fica atribui uma uma prioridade (uma "Pin-Priority")
para um pacote e vers�o ou faixa de vers�o especificados. Por exemplo,
o registro a seguir atribui uma prioridade alta para todas as vers�es do
pacote <filename/perl/ os quais tenham seus n�meros de vers�o iniciando
com "<literal/5.8/".
</simpara>

<programlisting>
Package: perl
Pin: version 5.8*
Pin-Priority: 1001
</programlisting>
</listitem>

<listitem><simpara>
O forma geral atribui uma prioridade para todas as vers�es de pacotes em
uma dada distribui��o (isto �, para toda as vers�es de pacotes que estejam
em um certo arquivo <filename/Release/) ou para todas as vers�es de
pacotes que provenientes de um site Internet em particular, como
identificado pelo nome de dom�nio totalmente qualificado do site Internet.
</simpara>

<simpara>
Essa entrada de forma geral no arquivo de prefer�ncias do APT
aplica-se somente a grupos de pacotes. Por exemplo, o registro a seguir
faz com que o APT atribua uma prioridade alta para todas as vers�es
de pacotes dispon�veis no site local.
</simpara>

<programlisting>
Package: *
Pin: origin ""
Pin-Priority: 999
</programlisting>

<simpara>
Uma nota de aviso : a palavra-chave usada aqui � "<literal/origin/".
Esta palavra n�o deve ser confundida com a origem ("Origin:") de uma
distribui��o como especificado em um arquivo <filename/Release/. O que
segue a tag "Origin:" em um arquivo <filename/Release/ n�o � um endere�o
de site Internet mas sim nome de autor ou distribuidor (vendor), como
"Debian" ou "Ximian".
</simpara>

<simpara>
O registro a seguir atribui uma prioridade baixa para todas as vers�es
de pacote que perten�am a qualquer distribui��o cujo nome do Reposit�rio
seja "<literal/unstable/".
</simpara>

<programlisting>
Package: *
Pin: release a=unstable
Pin-Priority: 50
</programlisting>

<simpara>
O registro a seguir atribui uma prioridade alta para todas as vers�es de
pacotes que perten�am a qualquer vers�o cujo nome do Reposit�rio seja
"<literal/stable/" e cujo n�mero de vers�o seja "<literal/3.0/".
</simpara>

<programlisting>
Package: *
Pin: release a=unstable, v=3.0
Pin-Priority: 50
</programlisting>
</listitem>
</itemizedlist>
</para>

</RefSect2>

<RefSect2>
<Title>Como o APT Interpreta Prioridades</Title>

<para>
Prioridades (P) atribu�das no arquivo de prefer�ncias do APT devem ser
n�meros inteiros positivos ou negativos. Eles s�o interpretados como a
seguir (a grosso modo):

<variablelist>
<varlistentry>
<term>P &gt; 1000</term>
<listitem><simpara>faz com que uma inst�ncia seja instalada
mesmo caso isso constitua um dowgrade do pacote</simpara></listitem>
</varlistentry>
<varlistentry>
<term>990 &lt; P &lt;=1000</term>
<listitem><simpara>faz com que uma vers�o seja instalada
mesmo caso a mesma n�o venha de uma vers�o alvo,
a menos que a vers�o instalada seja mais recente</simpara></listitem>
</varlistentry>
<varlistentry>
<term>500 &lt; P &lt;=990</term>
<listitem><simpara>faz com que uma vers�o seja instalada
a menos que exista uma vers�o dispon�vel pertencente a vers�o
alvo ou a vers�o instalada seja mais recente</simpara></listitem>
</varlistentry>
<varlistentry>
<term>100 &lt; P &lt;=500</term>
<listitem><simpara>faz com que uma vers�o seja instalada
a menos que exista uma vers�o dispon�vel pertencente a alguma
outra distribui��o ou a vers�o instalada seja mais recente</simpara></listitem>
<varlistentry>
<term>0 &lt;= P &lt;=100</term>
<listitem><simpara>faz com que uma vers�o seja instalada
somente caso n�o exista uma vers�o instalada do pacote</simpara></listitem>
</varlistentry>
<varlistentry>
<term>P &lt; 0</term>
<listitem><simpara>impede a vers�o de ser instalada</simpara></listitem>
</varlistentry>
</variablelist>
</para>

<para>
Caso um dos registro de forma espec�fica descritos acima case (match) com
uma vers�o dispon�vel do pacote ent�o o primeiro desses registros
encontrados determinar� a prioridade da vers�o do pacote. Na falha desse
cen�rio, caso quaisquer registros de forma gen�rica casem (match) com uma
vers�o do pacote dispon�vel ent�o o primeiro desses registros encontrado
determinar� a prioridade da vers�o do pacote.
</para>

<para>
Por exemplo, suponha que o arquivo de prefer�ncias do APT contenha
os tr�s registros apresentados anteriormente :

<programlisting>
Package: perl
Pin: version 5.8*
Pin-Priority: 1001

Package: *
Pin: origin ""
Pin-Priority: 999

Package: *
Pin: release unstable
Pin-Priority: 50
</programlisting>

Ent�o :

<itemizedlist>
<listitem><simpara>A vers�o mais recente dispon�vel do pacote
<literal/perl/ ser� instalado, contanto que esse n�mero de vers�o da
vers�o inicie com "<literal/5.8/".  Caso <emphasis/qualquer/ vers�o 5.8*
de <literal/perl/ esteja dispon�vel e a vers�o instalada seja 5.9*, ser�
feito um downgrade do <literal/perl/.
</simpara></listitem>
<listitem><simpara>Uma vers�o de qualquer pacote diferente de
<literal/perl/ que esteja dispon�vel no sistema local possui prioridade
sobre outras vers�es, mesmo vers�es pertencentes a vers�o alvo.
</simpara></listitem>
<listitem><simpara>Uma vers�o de um pacote cuja origem n�o seja o sistema
local mas sim algum outro site listado no arquivo &sources-list; e que
perten�a a uma distribui��o <literal/unstable/ � instalada somente
caso a mesma seja selecionada para instala��o e nenhuma vers�o do
pacote j� esteja instalada.
</simpara></listitem>
</itemizedlist>
</para>
</RefSect2>

<RefSect2>
<Title>Determina��o da Vers�o do Pacote e Propriedades da Distribui��o</Title>

<para>
As localidades listadas em um arquivo &sources-list; devem fornecer
arquivos <filename>Packages</filename> e <filename>Release</filename> para
descrever os pacotes dispon�veis nessas localidades.
</para>

<para>
O arquivo <filename>Packages</filename> � normalmente encontrado no
diret�rio <filename>.../dists/<replaceable>nome-distribui��o</replaceable>/<replaceable>componente</replaceable>/<replaceable>arquitetura</replaceable></filename> :
por exemplo, <filename>.../dists/stable/main/binary-i386/Packages</filename>.
O arquivo consiste de uma s�rie de registros de m�ltiplas linhas, uma para
cada pacote dispon�vel no diret�rio. Somente duas linhas em cada registro
s�o relevantes para definir prioridades do APT :
<variablelist>
<varlistentry>
<term>a linha <literal/Package:/</term>
<listitem><simpara>informa o nome do pacote</simpara></listitem>
</varlistentry>
<varlistentry>
<term>a linha <literal/Version:/</term>
<listitem><simpara>informa o n�mero de vers�o do pacote</simpara></listitem>
</varlistentry>
</variablelist>
</para>

<para>
O arquivo <filename>Release</filename> � normalmente encontrado no
diret�rio
<filename>.../dists/<replaceable>nome-distribui��o</replaceable></filename> :
por exemplo, <filename>.../dists/stable/Release</filename>,
ou <filename>.../dists/woody/Release</filename>.
O arquivo consiste de um registro de m�ltiplas linhas o qual se aplica a
<emphasis/todos/ os pacotes na �rvore de diret�rios abaixo de seu
diret�rio pai. Diferente do arquivo <filename/Packages/, quase todas as
linhas em um arquivo <filename/Release/ s�o relevantes para a defini��o de
prioridades do APT :

<variablelist>
<varlistentry>
<term>a linha <literal/Archive:/</term>
<listitem><simpara>d� nome ao reposit�rio para o qual todos os pacotes
na �rvore de diret�rio pertencem. Por exemplo, a linha
"Archive: stable"
especifica que todos os pacotes na �rvore de diret�rio
abaixo do diret�rio pai do arquivo <filename/Release/ est�o no
resposit�rio <literal/stable/.  Especificar esse valor no arquivo de
prefer�ncias do APT iria requerer a linha :
</simpara>
<programlisting>
Pin: release a=stable
</programlisting>
</listitem>
</varlistentry>

<varlistentry>
<term>a linha <literal/Version:/</term>
<listitem><simpara>d� nome a vers�o da distribui��o. Por exemplo, os
pacote na �rvore podem pertencer a distribui��o Debian GNU/Linux vers�o
3.0. Note que normalmente n�o existe n�mero de vers�o para as
distribui��es <literal/testing/ e <literal/unstable/ devido as mesmas
n�o terem sido lan�adas ainda. Especificar isso no arquivo de prefer�ncias
do APT iria requerer uma das linhas a seguir.
</simpara>

<programlisting>
Pin: release v=3.0
Pin: release a=stable v=3.0
Pin: release 3.0
</programlisting>

</listitem>
</varlistentry>

<varlistentry>
<term>a linha <literal/Component:/</term>
<listitem><simpara>d� nome ao componente de licenciamento associado com
os pacotes na �rvore de diret�rio do arquivo <filename/Release/. Por
exemplo, a linha "Component: main" especifica que todos os pacotes na
�rvore de diret�rio s�o do componente <literal/main/, o que significa que
as mesmas est�o licenciadas sob os termos da Linhas Guias Debian para o
Software Livre (a DFSG). Especificar esse componente no arquivo de
prefer�ncias do APT iria requerer a linha :
</simpara>
<programlisting>
Pin: release c=main
</programlisting>
</listitem>
</varlistentry>

<varlistentry>
<term>a linha <literal/Origin:/</term>
<listitem><simpara>d� nome ao produtor dos pacotes na �rvore de diret�rio
do arquivo <filename/Release/. O mais comum � esse valor ser
<literal/Debian/.  Especificar essa origem no arquivo de prefer�ncias do
APT iria requerer a linha :
</simpara>
<programlisting>
Pin: release o=Debian
</programlisting>
</listitem>
</varlistentry>

<varlistentry>
<term>a linha <literal/Label:/</term>
<listitem><simpara>d� nome ao r�tulo (label) dos pacotes na �rvore de
diret�rio. O mais comum � esse valor ser <literal/Debian/. Especificar
esse r�tulo (label) no arquivo de prefer�ncias do APT iria requerer a
linha :
</simpara>
<programlisting>
Pin: release l=Debian
</programlisting>
</listitem>
</varlistentry>
</variablelist>
</para>

<para>
Todos os arquivos <filename>Packages</filename> e
<filename>Release</filename> obtidos das localidades listadas no arquivo
&sources-list; s�o mantidos no diret�rio
<filename>/var/lib/apt/lists</filename> ou no arquivo indicado pela vari�vel
<literal/Dir::State::Lists/ no arquivo <filename/apt.conf/.
Por exemplo, o arquivo
<filename>debian.lcs.mit.edu_debian_dists_unstable_contrib_binary-i386_Release</filename>
cont�m o arquivo <filename>Release</filename> obtido do site
<literal/debian.lcs.mit.edu/ para a arquitetura <literal/binary-i386/,
arquivos do componente <literal/contrib/ da distribui��o <literal/unstable/.
</para>

</RefSect2>

<RefSect2>
<Title>Linhas Opcionais em um Registro de Prefer�ncias do APT</Title>

<para>
Cada registro em um arquivo de prefer�ncias do APT pode opcionalmente
iniciar com uma ou mais linhas iniciadas com a palavra
<literal/Explanation:/. Isto oferece um local para inserir coment�rios.
</para>

<para>
A linha <literal/Pin-Priority:/ em cada registro de prefer�ncias do
APT � opcional. Caso omitida, o APT atribuir� uma prioridade de 1 menos o
�ltimo valor especificado em uma linha iniciando com
<literal/Pin-Priority: release .../.
</para>
</RefSect2>
</RefSect1>

<RefSect1>
<Title>Exemplos</Title>
<RefSect2>
<Title>Acompanhando a Stable</Title>

<para>
O arquivo de prefer�ncias do APT a seguir far� com que o APT atribua uma
prioridade maior do que a prioridade padr�o (500) para todas as vers�es
de pacotes pertencentes a distribui��o <literal/stable/ e uma prioridade
proibitivamente baixa para vers�es de pacotes pertencentes a outras
distribui��es <literal/Debian/.

<programlisting>
Explanation: Desinstala ou n�o instala nenhuma vers�o de pacote originada
Explanation: do Debian a n�o ser aquelas na distribui��o stable
Package: *
Pin: release a=stable
Pin-Priority: 900

Package: *
Pin: release o=Debian
Pin-Priority: -10
</programlisting>
</para>

<para>
Com um arquivo &sources-list; apropriado e o arquivo de prefer�ncias
acima, quaisquer um dos comandos a seguir far�o com que o APT atualize
para a(s) ul�tma(s) vers�o(�es) <literal/stable/.

<programlisting>
apt-get install <replaceable>nome-pacote</replaceable>
apt-get upgrade
apt-get dist-upgrade
</programlisting>
</para>

<para>
O comando a seguir far� com que o APT atualize o pacote
especificado para a �ltima vers�o da distribui��o <literal/testing/;
o pacote n�o serpa atualizado novamente a menos que esse comando seja
executado novamente.

<programlisting>
apt-get install <replaceable>pacote</replaceable>/testing
</programlisting>
</RefSect2>

<RefSect2>
<Title>Acompanhando a Testing</Title>

<para>
O arquivo de prefer�ncias do APT a seguir far� com que o APT atribua uma
prioridade maior para vers�es de pacote da distribui��o <literal/testing/,
uma prioridade menor para vers�es de pacotes da distribui��o
<literal/unstable/ e uma prioridade proibitivamente baixa para vers�es de
pacotes de outras distribui��es <literal/Debian/.

<programlisting>
Package: *
Pin: release a=testing
Pin-Priority: 900

Package: *
Pin: release a=unstable
Pin-Priority: 800

Package: *
Pin: release o=Debian
Pin-Priority: -10
</programlisting>
</para>

<para>
Com um arquivo &sources-list; adequado e o arquivo de prefer�ncias do APT
acima, quaisquer dos comandos a seguir far�o com que o APT atualize para
a(s) �ltima(s) vers�o(�es) <literal/testing/.

<programlisting>
apt-get install <replaceable>nome-pacote</replaceable>
apt-get upgrade
apt-get dist-upgrade
</programlisting>
</para>

<para>
O comando a seguir far� com que o APT atualize o pacote especificado para
a �ltima vers�o da distribui��o <literal/unstable/. Assim, o comando
<command>apt-get upgrade</command> ir� atualizar o pacote para a vers�o
<literal/testing/ mais recente caso essa vers�o seja mais recente que a
vers�o instalada, caso n�o seja, o pacote ser� atualizado para a vers�o
<literal/unstable/ mais recente caso a mesma seja mais recente que a
vers�o instalada.

<programlisting>
apt-get install <replaceable>pacote</replaceable>/unstable
</programlisting>
</para>

</RefSect2>
</RefSect1>

<RefSect1>
<Title>Consulte tamb�m</Title>
<para>
&apt-get; &apt-cache; &apt-conf; &sources-list;
</para>
</RefSect1>

 &manbugs;
 &manauthor;
 &ptbr-mantranslator;