%aptent; ]> &apt-docinfo; apt_preferences 5 apt_preferences Arquivo de controle de preferências para o APT 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 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): P > 1000 faz com que uma instância seja instalada mesmo caso isso constitua um dowgrade do pacote 990 < P <=1000 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 500 < P <=990 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 100 < P <=500 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 0 <= P <=100 faz com que uma instância seja instalada somente caso não exista uma instância instalada do pacote P < 0 impede a instância de ser instalada 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. Por exemplo, suponha que o arquivo de preferências do APT contenha os três registrsos apresentados anteriormente : Package: perl Pin: version 5.8* Pin-Priority: 1001 Package: * Pin: origin "" Pin-Priority: 999 Package: * Pin: release unstable Pin-Priority: 50 Então : A versão mais recente disponível do pacote Uma instância de qualquer pacote que não 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 " Determinação da Versão do Pacote e Propriedades de Distribuição As localidades listadas em um arquivo &sources-list; de um sistema devem fornecer arquivos Package e Release para descrever as instâncias de pacote disponíveis nestas localidades. O arquivo Packages é nromalmente encontrado no diretório .../dists/nome-distribuição/componente/arquitetura : por exemplo, .../dists/stable/main/binary-i386/Packages. 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 : a linha informa o nome do pacote a linha informa o número de versão do pacote O arquivo Release é normalmente encontrado no diretório .../dists/nome-distribuição : por exemplo, .../dists/stable/Release, ou .../dists/woody/Release. O arquivo consiste de um registro de múltiplas linhas o qual se aplica a a linha dá nome ao repositório para o qual as instâncias de pacote na àrvore de diretório pertencem. Por exemplo, a linha Pin: release a=stable a linha 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. Pin: release v=3.0 Pin: release a=stable v=3.0 Pin: release 3.0 a linha dá nome ao componente de licenciamento associado com as instâncias de pacote na àrvore de diretório do arquivo Pin: release c=main a linha dá nome ao produtor das instâncias de pacote na àrvore de diretório do arquivo Pin: release o=Debian a linha parece redundante. seems redundant. O mais comum é esse valor ser Pin: release l=Debian Todos os arquivos Packages e Release obtidos das localidades listadas no arquivo &sources-list; são mantidos no diretório /var/lib/apt/lists ou no arquivo indicado pela variável debian.lcs.mit.edu_debian_dists_unstable_contrib_binary-i386_Release contém o arquivo Release obtido do site Linhas Opcionais em um Registro de Preferências do APT Cada registro em um arquivo de preferências do APT pode opcionalmente iniciar com uma ou mais linhas iniciadas com a palavra A linha Exemplos</> <RefSect2><Title>Acompanhando a Stable 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 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 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) apt-get install nome-pacote apt-get upgrade apt-get dist-upgrade O comando a seguir fará com que o APT atualize o pacote especificado para a última versão da distribuição apt-get install pacote/testing Acompanhando a Testing 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 Package: * Pin: release a=testing Pin-Priority: 900 Package: * Pin: release a=unstable Pin-Priority: 800 Package: * Pin: release o=Debian Pin-Priority: -10 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) apt-get install nome-pacote apt-get upgrade apt-get dist-upgrade O comando a seguir fará com que o APT atualize o pacote especificado para a última versão da distribuição apt-get dist-upgrade e os outros apt-get install pacote/unstable Consulte também</> <para> &apt-get; &apt-cache; &apt-conf; &sources-list; </RefSect1> &manbugs; &manauthor; &ptbr-mantranslator; </refentry>