%aptent; ]> &apt-docinfo; apt_preferences 5 apt_preferences Arquivo de controle de preferências para o APT Descrição O arquivo de preferências do APT /etc/apt/preferences pode ser usado para controlar quais versões de pacotes serão selecionadas para instalação. 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, stable e testing). O APT atribui uma prioridade para cada versão que esteja disponível. Sujeito a obstáculos de dependências, o apt-get 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. 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 apt-get 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. 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 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): 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 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 500 < P <=990 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 100 < P <=500 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 0 <= P <=100 faz com que uma versão seja instalada somente caso não exista uma versão instalada do pacote P < 0 impede a versão de ser instalada 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. Por exemplo, suponha que o arquivo de preferências do APT contenha os três registros 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 versão de qualquer pacote diferente de 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 Determinação da Versão do Pacote e Propriedades da Distribuição As localidades listadas em um arquivo &sources-list; devem fornecer arquivos Packages e Release para descrever os pacotes disponíveis nessas localidades. O arquivo Packages é normalmente 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 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 Pin: release a=stable a linha 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 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 os pacotes na àrvore de diretório do arquivo Pin: release c=main a linha dá nome ao produtor dos pacotes na àrvore de diretório do arquivo Pin: release o=Debian a linha dá nome ao rótulo (label) dos pacotes na árvore de diretório. 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 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 todas as versões de pacotes pertencentes a distribuição 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 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 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) 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 upgrade irá atualizar o pacote para a versão apt-get install pacote/unstable Consulte também &apt-get; &apt-cache; &apt-conf; &sources-list; &manbugs; &manauthor; &ptbr-mantranslator;