Criando uma distribuição com suporte a repositório de pacotes no Yocto Project

- por Sergio Prado

Categorias: Yocto Project Tags: , ,

Criar uma distribuição Linux com suporte a repositório de pacotes oferece algumas vantagens, dentre elas a facilidade de atualização e testes de aplicações durante o desenvolvimento e a possibilidade da implementação de um mecanismo de upgrade do sistema baseado em pacotes.

Para construir uma distribuição com esta funcionalidade, é necessário:

  1. Criar e manter um repositório de pacotes em um servidor remoto.
  2. Instalar na plataforma-alvo (target) a base de dados de pacotes e uma ferramenta de gerenciamento de pacotes.

Uma das grandes vantagens do Yocto Project e de seu sistema de build Poky perante outras ferramentas é a facilidade na implementação desta funcionalidade.

CONFIGURANDO O SISTEMA DE BUILD

Para configurar o sistema de build para gerar uma distribuição com suporte à gerenciamento de pacotes, as alterações podem ser realizadas no conf/local.conf ou no arquivo de configuração da distribuição.

O primeiro passo é selecionar o tipo de pacote que deseja-se trabalhar através da variável PACKAGE_CLASSES. Dentre as opções disponíveis, temos package_rpm (RPM), package_deb (DEB) e package_ipk (IPK). Por padrão, são habilitados pacotes do tipo RPM:

PACKAGE_CLASSES ?= "package_rpm"

Habilite também a feature de imagem package-management. Esta feature irá automaticamente habilitar a instalação da base de dados de pacotes e da ferramenta de gerencimento de pacotes no target.

EXTRA_IMAGE_FEATURES += "package-management"

Por último, a URL do servidor de pacotes pode ser configurada na variável PACKAGE_FEED_URIS:

PACKAGE_FEED_URIS = "http://myserver.com/packages/"

E então é só gerar a imagem.

CONFIGURANDO O SERVIDOR

Para configurar o servidor de pacotes, primeiro instale um servidor Web no host.

Depois copie para o diretório HOME do servidor WEB os pacotes gerados pelo sistema de build, disponíveis em tmp/deploy/<pkgtype>. Exemplo:

$ sudo cp -av tmp/deploy/rpm /var/www/packages/

Agora é só testar o acesso ao repositório no target.

TESTANDO O REPOSITÓRIO

Para pacotes do tipo RPM, a ferramenta de gerenciamento de pacotes Smart é instalada no target.

Você pode verificar a lista dos canais de atualização de pacotes com o comando abaixo:

# smart channel --show

E a lista de pacotes instalados pode ser exibida com o parâmetro query:

# smart query --installed

INSTALANDO UM NOVO PACOTE

Caso você processe uma receita que resulte em um novo pacote no repositório de pacotes, você pode atualizar o índice de pacotes processando a receita package-index:

$ bitbake package-index

No target, é necessário atualizar a base de dados para ter acesso ao pacote adicionado no repositório:

# smart update

E então você pode exibir informações do pacote e instalá-lo:

# smart info <package>
# smart install <package>

MUDANDO A VERSÃO DE UM PACOTE

A versão de um pacote é definida através das variáveis PV, PE e PR.

Sempre que a versão mudar, você pode atualizar o pacote conforme abaixo:

$ smart update
$ smart upgrade <package>

Uma lista das opções disponíveis na ferramenta smart está documentada no guia de usuário da aplicação.

Um abraço,

Sergio Prado

Faça um Comentário

Navegue
Creative Commons Este trabalho de Sergio Prado é licenciado pelo
Creative Commons BY-NC-SA 3.0.