APT_PREFERENCES(5)

NAME
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(5) 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(5) 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(5). O arquivo de preferências do APT não afeta a escolha da instância.

  ATRIBUIçõES DE PRIORIDADE PADRãO DO APT

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 apt-get ou no arquivo de configuração do APT /etc/apt/apt.conf. Por exemplo,
apt-get install -t testing algum-pacote
APT::Default-Release "stable";

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á :

prioridade 100
    para a instância que já esteja instalada (caso exista).

prioridade 500
    para as instâncias que não estã instaladas e que não pertencem a versão alvo.

prioridade 990
    para as instâncias que não estejam instaladas e pertençam a versão alvo.

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.

O APT aplica as regras a seguir, listadas em ordem de precedência, para determinar qual instância de um pacote instalar.

•   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.)

•   Instala a instância de prioridade mais alta.

•   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).

•   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 --reinstall seja fornecida, instala aquela desinstalada.

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(5) (prioridade 500 ou 990). Então o pacote será atualizado quando os comandos apt-get install algum-pacote ou apt-get dist-upgrade forem executados.

Mais raramente, a versão instalada de um pacote é mais recente do que qualquer uma das outras versões disponíveis. O dowgrade do pacote não será feito quando os comandos apt-get install algum-pacote ou apt-get upgrade forem executados.

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 apt-get install algum-pacote ou apt-get upgrade forem executados, devido a pelo menos uma das versões disponíveis possuir uma prioridade maior do que a versão instalada.

  O EFEITO DAS PREFERêNCIAS DO APT

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.

•   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 perl os quais tenham seus números de versão iniciando com "5.8".
    Package: perl
    Pin: version 5.8*
    Pin-Priority: 1001

•   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 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. 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.
    Package: *
    Pin: origin ""
    Pin-Priority: 999
    Uma nota de aviso : a palavra-chave usada aqui é "origin". Esta palavra não deve ser confundida com a origem ("Origin:") de uma distribuição como especificado em um arquivo Release. O que segue a tag "Origin:" em um arquivo Release não é um endereço de site Internet mas sim nome de autor ou distribuidor (vendor), como "Debian" ou "Ximian". 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 "unstable".
    Package: *
    Pin: release a=unstable
    Pin-Priority: 50
    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 "stable" e cujo número de versão seja "3.0".
    Package: *
    Pin: release a=unstable, v=3.0
    Pin-Priority: 50

  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 perl será instalado, contanto que esse número de versão da versão inicie com "5.8". Caso qualquer versão 5.8* de perl esteja disponível e a versão instalada seja 5.9*, será feito um downgrade do perl.

•   Uma versão de qualquer pacote diferente de perl que esteja disponível no sistema local possui prioridade sobre outras versões, mesmo versões pertencentes a versão alvo.

•   Uma versão de um pacote cuja origem não seja o sistema local mas sim algum outro site listado no arquivo sources.list(5) e que pertença a uma distribuição unstable é instalada somente caso a mesma seja selecionada para instalação e nenhuma versão do pacote já esteja instalada.

  DETERMINAçãO DA VERSãO DO PACOTE E PROPRIEDADES DA DISTRIBUIçãO

As localidades listadas em um arquivo sources.list(5) 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 Package:
    informa o nome do pacote

a linha Version:
    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 todos os pacotes na àrvore de diretórios abaixo de seu diretório pai. Diferente do arquivo Packages, quase todas as linhas em um arquivo Release são relevantes para a definição de prioridades do APT :

a linha Archive:
    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 Release estão no respositório stable. Especificar esse valor no arquivo de preferências do APT iria requerer a linha :
    Pin: release a=stable

a linha Version:
    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 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 Component:
    dá nome ao componente de licenciamento associado com os pacotes na àrvore de diretório do arquivo Release. Por exemplo, a linha "Component: main" especifica que todos os pacotes na àrvore de diretório são do componente 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 :
    Pin: release c=main

a linha Origin:
    dá nome ao produtor dos pacotes na àrvore de diretório do arquivo Release. O mais comum é esse valor ser Debian. Especificar essa origem no arquivo de preferências do APT iria requerer a linha :
    Pin: release o=Debian

a linha Label:
    dá nome ao rótulo (label) dos pacotes na árvore de diretório. O mais comum é esse valor ser Debian. Especificar esse rótulo (label) no arquivo de preferências do APT iria requerer a linha :
    Pin: release l=Debian

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

  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 Explanation:. Isto oferece um local para inserir comentários.

A linha 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 Pin-Priority: release ....

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 stable e uma prioridade proibitivamente baixa para versões de pacotes pertencentes a outras distribuições Debian.
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(5) 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) stable.
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 testing; o pacote não serpa atualizado novamente a menos que esse comando seja executado novamente.
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 testing, uma prioridade menor para versões de pacotes da distribuição unstable e uma prioridade proibitivamente baixa para versões de pacotes de outras distribuições Debian.
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(5) 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) testing.
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 unstable. Assim, o comando apt-get upgrade irá atualizar o pacote para a versão 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 unstable mais recente caso a mesma seja mais recente que a versão instalada.
apt-get install pacote/unstable

CONSULTE TAMBéM

apt-get(8) apt-cache(8) apt.conf(5) sources.list(5)

BUGS

Consulte a página de bugs do APT <URL:http://bugs.debian.org/apt>. Caso você queira relatar um bug no APT, por favor consulte o arquivo /usr/share/doc/debian/bug-reporting.txt ou o comando reportbug(1).

AUTHOR

O APT foi escrito pela equipe APT <apt@packages.debian.org>.

TRADUçãO

Esta página de manual foi traduzida para o Português do Brasil por André Luís Lopes <andrelop@ig.com.br>.