<!-- -*- 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</>
<para>
O arquivo de prefer�ncias do APT <filename>/etc/apt/preferences</>
pode ser usado para controlar qual vers�o de um pacote ser�
selecionada 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>); al�m disso, diversas inst�ncias da mesma
vers�o de um pacote podem estar dispon�veis quando o arquivo cont�m
refer�ncias para mais de um site para download para uma distribui��o
espec�fica. O APT atribui uma "prioridade" para cada inst�ncia que
esteja dispon�vel. (No que se segue, uma "inst�ncia" ser� uma inst�ncia
de um pacote que esteja dispon�vel de acordo com o arquivo
&sources-list;.)
Sujeito a obst�culos de depend�ncias, o <command>apt-get</command>
instala a inst�ncia com a prioridade mais alta. Caso duas inst�ncias
possuam a mesma prioridade o APT ir� instalar a inst�ncia mais recente,
ou seja, aquela com o maior n�mero de vers�o.
</para>

<para>O arquivo de prefer�ncias do APT sobrep�e as prioridades que o
APT atribui por padr�o a inst�ncias de pacote, dando portanto ao usu�rio
controle sobre qual pacote � eslecionado para instala��o.
</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" (target release), a qual 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>
# Comando para instalar a vers�o <literal/testing/ do pacote <replaceable>algum-pacote</replaceable>
<command>apt-get install -t testing <replaceable>algum-pacote</replaceable></command>
</programlisting>

<programlisting>
# Configura��o que torna <literal/stable/ a vers�o alvo
APT::Default-Release "stable";
</programlisting>
</para>

<para>Caso um avers�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��m
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 todos as inst�ncias de pacotes instalados
e a prioridade 500 para todas as inst�ncias de pacotes n�o instalados.
</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 "dowgrade" � 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.)
</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,
instalar a inst�ncia mais recente.
</simpara></listitem>
<listitem><simpara>Caso duas ou mais inst�ncias possuam o mesmo n�mero de
vers�o, instalar a inst�ncia a qual a fonte esteja listada no &sources-list;.
(A inst�ncia instalada, caso exista, � sempre a preferida em uma compara��o
como essa a menos que o comando <command>apt-get --reinstall</command> seja
usado.)
</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 inst�ncias dispon�veis
nas fontes listadas no arquivo &sources-list; (prioridade 500 ou 990).
Ent�o o pacote ser� atualizado com o comando :
<command>apt-get install</command> ou <command>apt-get dist-upgrade</command>.
</para>

<para>Raramente, a inst�ncia instalada de um pacote � <emphasis/mais/
recente do que qualquer uma das outras inst�ncias dispon�veis. O dowgrade
do pacote n�o ser� feito.
</para>

<para>Algumas vezes a inst�ncia instalada de um pacote � mais recente
que a vers�o que pertence a vers�ao alvo, mas n�o t�o recente quanto a
vers�o que pertence a alguma outra distribui��o. Um pacote como esse
ser� realmente atualizado, devido a pelo menos <emphasis/uma/ das
inst�ncias dispon�veis possuir uma prioridade maior do que a inst�ncia
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 as prioridades. O arquivo consiste de um ou mais
registro de m�ltiplas linhas separados por linhas em branco. Registros
podem possuir uma ou duas formas, uma forma espec�fica e uma forma
geral.
<itemizedlist>
<listitem>
<simpara>A forma "espec�fica" pina uma prioridade (um "Pin-Priority")
para um pacote e vers�o ou faixa de vers�o especificados. Por exemplo,
o registro a seguir pina uma prioridade alta para todas as vers�es do
pacote <filename/perl/ as quais o n�mero de vers�o inicia com <literal/5.8/".
</simpara>

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

<listitem><simpara>
O forma "geral" pina uma prioridade para todas as vers�es de pacotes em
uma dada distribui��o (isto �, para toda as vers�es de pacotes que est�o
em um certo arquivo <filename/Release/) ou para todas as inst�ncias de
pacotes que v�m de um site Internet em particular, como identificado
por seu nome de dom�nio totalmente qualificado.
</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 inst�ncias
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 n�o deve ser confundida com 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/ normalmente 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 faz com que o APT atribua uma prioridade
baixa para todas as vers�es de pacote que perten�am a qualquer
distribui��o a qual o nome do "Archive" (<literal/a/) seja
"<literal/unstable/".
</simpara>

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

<simpara>O registro a seguir faz com que o APT atribua uma prioridade
alta para todas as vers�es de pacotes que pertencem a qualquer vers�o
a qual o nome do reposit�rio ("Archive") (<literal/a/) seja
"<literal/stable/" e a qual o n�mero de vers�o ("Version")
(<literal/v/) 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 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 inst�ncia seja instalada
mesmo caso a mesma n�o venha de uma vers�o alvo,
a menos que a inst�ncia instalada seja mais recente
</simpara></listitem>
</varlistentry>
<varlistentry><term>500 &lt; P &lt;=990</term>
<listitem><simpara>faz com que uma inst�ncia seja instalada
a menos que exista uma inst�ncia 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 inst�ncia seja instalada
a menos que exista uma inst�ncia 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 inst�ncia seja instalada
somente caso n�o exista uma inst�ncia instalada do pacote
</simpara></listitem>
</varlistentry>
<varlistentry><term>P &lt; 0</term>
<listitem><simpara>impede a inst�ncia de ser instalada
</simpara></listitem>
</varlistentry>
</variablelist>
</para>

<para>Caso um dos registro de forma espec�fica descritos acima caso com
uma inst�ncia dispon�vel de pacote, tal registro determina a prioridade
da inst�ncia. Caso dois registros de forma espec�fica casem com uma
inst�ncia dispon�vel, o primeiro registro encontrado determina a
prioridade. Caso dois registros de forma geral casem com uma inst�ncia
dispon�vel, o primeiro registro encontrado determina a prioridade.
</para>

<para>Por exemplo, suponha que o arquivo de prefer�ncias do APT contenha
os tr�s registrsos 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 inst�ncia de qualquer pacote que n�o <literal/perl/
que esteja dispon�vel no sistema local possui prioridade sobre outras
inst�ncias, mesmo inst�ncias pertencentes a vers�o alvo.
</simpara></listitem>
<listitem><simpara>Uma inst�ncia de um pacote a qual a origem n�o seja
o sistema local mas sim algum outro site listado n &sources-list; e a
qual perten�a a uma distribui��o "<literal/unstable/" � instalada somente
caso a mesma seja selecionada para instala��o e nenhuma inst�ncia do
pacote j� esteja instalada.
</simpara></listitem>
</itemizedlist>
</para>
</RefSect2>

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

<para>As localidades listadas em um arquivo &sources-list; de um sistema
devem fornecer arquivos <filename>Package</filename> e
<filename>Release</filename> para descrever as inst�ncias de pacote
dispon�veis nestas localidades.
</para>

<para>O arquivo <filename>Packages</filename> � nromalmente 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/todas/ as inst�ncias de pacote 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 as inst�ncias de
pacote na �rvore de diret�rio pertencem. Por exemplo, a linha
<literal/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, as
inst�ncias de pacote na �rvore podem pertencer a distribui��o Debian
GNU/Linux vers�o 3.0. Normalmente n�o existe n�mero de vers�o para as
distribui��es "testing" e "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
as inst�ncias de pacote na �rvore de diret�rio do arquivo
<filename/Release/. Por exemplo, a linha <literal/Component: main/
especifica que todas as inst�ncias 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 das inst�ncias de pacote 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>parece redundante. 
seems redundant. 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 uma oportunidade de se comentar
sobre o registro.
</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</>
<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 todos
as vers�es de pacote pertencentes a distribui��o <literal/stable/ e uma
prioridade proibitivamente baixa para vers�es de pacotes pertencentes a
outras distribui��es <literal/Debian/.

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

Explanation: Desinstala ou n�o instala nenhuma inst�ncia originada do
Explanation: Debian a n�o ser aquelas na distribui��o stable
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/;
por�m, atualiza��es futuras n�o ir�o ocorrer automaticamente.

<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 o arquivo de prefer�ncias o 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 dist-upgrade</command> e os outros
<emphasis/far�o/ com que o pacote seja atualizado para a �ltima vers�o
<literal/unstable/.

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

</RefSect2>
</RefSect1>

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

 &manbugs;
 &manauthor;
 &ptbr-mantranslator;

</refentry>