Capítulo 6. Upload e Manutenção de Pacotes Personalizados

Dependendo de qual serviço da Red Hat Network usar, há dois mecanismos diferentes para fazer upload de pacotes para canais privados.
Os clientes com o RHN Proxy Server usam a aplicação RHN Package Manager, que envia as informações do cabeçalho dos pacotes aos Servidores Centrais da Red Hat Network e insere o pacote no repositório local do Proxy que invocou o RHN Package Manager.
Os clientes com o RHN Satellite Server usam a aplicação RHN Push, que envia as informações do cabeçalho dos pacotes ao RHN Satellite Server local e insere o pacote no repositório local do Satellite que invocou o RHN Push.
Este capítulo aborda as duas ferramantas em detalhe.

Atenção

Se você usar o RHN Proxy Server e o RHN Satellite Server, só utilize o RHN Push. A combinação Proxy-Satellite requer o upload de pacotes e canais personalizados somente ao Satellite. A partir deste, os servidores Proxy obtêm os pacotes e os distribuem aos sistemas cliente.

6.1. Upload de Pacotes ao RHN Proxy Server

O RHN Package Manager permite a uma empresa servir pacotes personalizados associados a um canal privado da RHN através do RHN Proxy Server. Se você deseja que o RHN Proxy Server sirva somente os pacotes oficiais do Red Hat Enterprise Linux, instale o RHN Package Manager.
Para usar o RHN Package Manager, instale o pacote RPM rhns-proxy-package-manager e suas dependências. Este pacote está disponível para sistemas RHN Proxy Server registrados e é instalado rodando up2date rhns-proxy-package-manager.

Nota

Somente as informações do cabeçalho dos pacotes são enviadas aos Servidores da RHN. Estes cabeçalhos são necessários para a RHN poder resolver as dependências de pacotes para os sistemas cliente. Os arquivos dos pacotes (*.rpm) são armazenados no RHN Proxy Server. Por este motivo, os pacotes personalizados não podem ser baixados através do site da RHN, apesar de estarem listados. Estes pacotes devem ser obtidos pelo sistema cliente usando up2date.

6.1.1. Configurando e Usando o RHN Package Manager

Antes de usar o RHN Package Manager para o upload de pacotes à RHN, deve-se primeiro copiá-los manualmente para o servidor Proxy. Por exemplo: numa máquina de desenvolvimento você pode usar scp:
scp foo.rpm root@rhnproxy.example.com:/tmp
Ao usar o RHN Package Manager para upload de pacotes à Red Hat Network, aponte os arquivos que você copiou previamente para o servidor.

Nota

Crie, no mínimo, um canal privado para receber os canais personalizados antes do upload à Red Hat Network, já que é necessário um canal para obter os pacotes.
O comando seguinte faz upload do cabeçalho dos pacotes aos Servidores da RHN e copia os pacotes ao repositório do RHN Proxy Server:
rhn_package_manager -c label_of_private_channelpkg-list
A etiqueta_do_canal_privado é o canal personalizado criado para receber estes pacotes. Assegure-se de usar a etiqueta exata especificada para o canal durante sua criação. Se você tem um ou mais canais especificados (usando -c ou --channel), os cabeçalhos dos pacotes enviados são linkados a todos os canais identificados. Se você não especificar um canal, os pacotes são depositados na seção Sem Canais da página Administração de Pacotes. Consulte a Seção 4.6, “Atribuindo Pacotes aos Canais de Software” para instruções sobre a reatribuição de pacotes.
A referência pkg-list representa a lista de pacotes para o upload. Estes pacotes já devem estar fisicamente copiados na máquina do Proxy. Alternativamente, use a opção -d para especificar o diretório local contendo os pacotes a adicionar ao canal. O RHN Package Manager também pode acessar a lista de pacotes pelo input padrão (usando --stdin).
Há outras opções especificadas num arquivo de configuração, tais como URL do Servidor Red Hat Network, o nome de usuário e senha do proxy HTTP (caso necessite de autenticação) e o diretório parente contendo os pacotes. Esta configuração especial não deve ser editada e está alocada em /etc/rhn/default/rhn_proxy_package_manager.conf. Você pode sobrescrever as opções deste arquivo de configuração default, alterando o arquivo de configuração principal, /etc/rhn/rhn.conf, ou através das opções de linha de comando passadas ao RHN Package Manager.
Os parâmetros não definidos neste arquivo são acessados em .rhn_package_manager no diretório home do usuário autenticado no momento e por fim pelo /etc/rhn/rhn_package_manager.conf. Garanta que todos estes arquivos tenham as permissões apropriadas para evitar que outros os acessem.
Após o upload dos pacotes, verifique se o diretório local está sincronizado com a imagem dos canais no Servidor da RHN:
rhn_package_manager -s -c name_of_private_channel
A opção -s lista todos os pacotes faltantes que tiveram upload ao Servidor da RHN, mas não estão presentes do diretório local. Você deve ser um Organization Administrator para usar esta opção. A aplicação pede que você indique seu nome de usuário e senha da RHN.
A opção --copyonly copia o arquivo listado no argumento ao canal especificado sem fazer o upload ao Satellite. Isto é útil quando um canal de um RHN Proxy Server carece de um pacote e você não deseja reimportar todos os pacotes do canal.
rhn_package_manager -c channel-name --copyonly /path/to/missing/file
Você também pode usar o RHN Package Manager para obter uma lista de pacotes de um canal, conforme são armazenados pelo Servidor da RHN.
rhn_package_manager -l -c name_of_private_channel
A opção -l lista o nome, número da versão, arquitetura e nome do canal para cada pacote no(s) canal(is) especificado(s). Consulte a Tabela 6.1, “opções do rhn_package_manager para opções adicionais.
Tabela 6.1, “opções do rhn_package_manager é um resumo de todas as opções da linha de comando para RHN Package Manager (rhn_package_manager):

Tabela 6.1. opções do rhn_package_manager

Opção Descrição
-v, --verbose Aumenta a verbosidade das mensagens de output padrão.
-d, --dir DIRECTORY_NAME Processa pacotes deste diretório.
-c, --channel CHANNEL_NAME Especifica o canal a receber os pacotes. É possível especificar diversos canais usando as instâncias de -c (ex.: -c channel_one -c channel_two)
-n, --count NUMBER Processa este número de cabeçalhos por chamada — o default são 32.
-l, --list Lista os pacotes no(s) canal(is) especificado(s).
-s, --sync Verifica se o diretório local está sincronizado com o servidor.
-p, --printconf Imprime o arquivo da configuração corrente e fecha.
--newest Força somente os pacotes mais novos que aqueles no servidor. Note que os pacotes fonte são especiais pois suas versões nunca são comparadas entre si. Suas novidades dependem de seus pacotes binários associados. Usando esta opção com RHN Package Manager e somente um pacote fonte faz o upload, mas o pacote fonte não aparece na interface web da RHN até que o pacote binário associado tenha seu upload concluído. Esta contrasta com --source. Usar --source --newest juntamente, atualiza o pacote fonte independente com pacotes mais novos e não requer que um pacote binário associado tenha seu upload primeiro.
--source Faz o upload dos pacotes fonte indicados, tratando-os como pacotes independentes, somente texto e não como pacotes fonte especiais associados entre si, ou com algum pacote binário pré-existente. Por exemplo: você pode usar esta tática para distribuir aplicações fonte para desenvolvedores e testadores fora da administração regular de controle da fonte.
--stdin Lê os nomes dos pacotes pelo input padrão.
--nosig Não falha caso os pacotes não estejam assinados.
--no-ssl Desligar SSL (não recomendado).
--stdin Lê os nomes dos pacotes pelo input padrão.
--username USERNAME Especifica o nome de usuário da RHN. Se não o fizer é pedido indicar o nome de usuário de um Administrador de Canal válido.
--password PASSWORD Especifica a senha da RHN. Se não provê-la, é pedido indicar o nome de usuário de um Administrador de Canal válido.
--dontcopy No passo pós-upload, não copia os pacotes em sua localidade final na árvore de instalação.
--copyonly Copia somente os pacotes e não os reimporta.
--test Imprime somente uma lista dos pacotes a serem forçados.
-?, --help Apresenta a tela de ajuda com diversas opções.
--usage Descreve brevemente as opções disponíveis.
--copyonly Copia somente pacotes

Nota

Estas opções da linha de comando também estão descritas na página man do rhn_package_manager: man rhn_package_manager.