Como criar deb de fonte para pacote com binários e não binários?

2

Atualmente, estou criando um pacote deb com uma coleção de programas simples (por exemplo, scripts de shell, código python etc.) e binários (código C compilado com gcc ). A fim de atender as diretrizes para a criação de pacotes, eu preciso ter um pacote fonte com o código-fonte para os binários. Como existe apenas um binário no meu pacote e o resto são todos programas de texto simples, de que maneira devo fazer o meu pacote fonte?

Para elaborar: Meu pacote de fontes deve ser

  1. Ter o diretório DEBIAN e, em seguida, apenas o caminho para o binário (substituído pelo código-fonte dos binários?
  2. Ter apenas o código-fonte dos binários em um diretório sem o diretório DEBIAN e, em seguida, gunzip desse diretório?
  3. Tenha o mesmo layout de diretório do pacote real, apenas substituindo os binários por seu próprio código-fonte (por exemplo, bin/somebinary se torna bin/somebinary.c )?

    Qualquer ajuda seria muito apreciada!
por Interesting... 21.07.2015 / 12:44

2 respostas

2

Primeiro de tudo, é um tópico muito amplo. Você pode usar dpkg-buildpackge para criar o pacote fonte a partir das fontes. Como você mencionou explicitamente como deve ser sua embalagem debian, vou escrever sobre isso.

  • Você deve ter um diretório debian dentro de sua pasta de origem.
  • rules dentro do diretório debian, você deve sobrescrever algumas das regras auxiliares deb como auto configure ou strip usando palavras-chave auxiliares deb (Por exemplo, usando, override_dh_auto_configure: ou override_dh_strip etc etc ...)
  • Você deve ter um arquivo package.install especificando o que deve ir onde, Por exemplo, se você gerou um binário, deve mencionar o caminho do binário onde ele deve ser instalado ou se você tiver algum arquivo de objetos compartilhados (.so) Se você estiver usando automake , então será muito fácil. Você pode apenas mencioná-lo em Makefile.am dizendo onde seu binário ou biblioteca deve ser instalado.
  • Você deve ter um arquivo control usado para mencionar as dependências de construção e as dependências de pacote (as coisas que são necessárias durante a instalação do debian pakcage).
  • Um script de pós-instalação usado para executar quaisquer operações / alterações após a instalação do pakcage debian (por exemplo, se você quiser alterar a permissão de um arquivo após a instalação ou qualquer outra coisa).
  • Um arquivo changelog com a descrição das alterações no pacote e o número da versão.

    Se tudo correr bem, então dpkg-buildpackage deve fornecer um arquivo package_arch_version.deb .

Como eu disse, é um tópico muito grande. Isso lhe dará uma idéia de como o pacote debian parece e o que ele irá conter? Você deve cutomizar esses arquivos de acordo com suas necessidades.

    
por 21.07.2015 / 13:18
2

Use dh_make para criar um modelo para o pacote. Ele fará algumas perguntas e criará o diretório debian necessário.

Para um pacote que contém tanto executáveis binários quanto programas independentes de arquitetura, você tem duas opções: criar um pacote binário independente de arquitetura ou criar um pacote binário dependente de arquitetura contendo os executáveis binários e um pacote binário independente de arquitetura contendo os scripts e outros arquivos independentes de arquitetura. A principal vantagem dos pacotes independentes de arquitetura é economizar espaço nos espelhamentos de distribuição que armazenam pacotes para várias arquiteturas. Você também precisa colocar os arquivos independentes de arquitetura em um pacote independente de arquitetura se tiver uma instalação multiarch e desejar instalar os binários para mais de uma arquitetura. A menos que você se preocupe com isso, faça um pacote único, é mais simples. Se você decidir criar dois pacotes, é comum ter um pacote dependente da arquitetura foo dependendo de foo-common ou foo-data , que é independente de arquitetura.

Seu pacote fonte conterá tudo que é necessário para preparar o (s) pacote (s) binário (s), incluindo os scripts de empacotamento deb no subdiretório debian , as fontes dos programas compilados e os vários scripts. Mantenha o arquivo upstream como o arquivo de origem, não reorganize ou remova arquivos para criar o pacote de código-fonte deb.

As ferramentas de automação de compilação Debhelper ( dh ) cuidarão da montagem da estrutura de diretórios do pacote binário. Não há relação entre a estrutura de diretórios na árvore de origem e para o pacote instalado. O padrão debian/rules é

%:
        dh $@

Se os comandos forem diferentes de ./configure && make && make install , adicione os destinos correspondentes em debian/rules . Por exemplo, para passar opções para ./configure :

configure:
        ./configure --with-foo

Para a instalação de arquivos, liste os arquivos que você precisa copiar em debian/PACKAGENAME.install , eles serão copiados por dh_install . Listar diretórios para criar em debian/PACKAGENAME.dirs (para dh_installdirs ).

Veja o manual do debhelper para todas as etapas que podem ser configuradas. Há automação para instalar a saída de compilação, man pages, fontes, bibliotecas compartilhadas, módulos perl, etc.

Para mais informações, consulte:

por 22.07.2015 / 03:37