Introdução

Introdução

Você já está sabendo sobre a linguagem de programação C. Você tem o gosto e sentiu que queria ir além e escrever o seu próprio. Ou talvez ajude a comunidade e empacote o seu software favorito para a distribuição que você gosta e use. Independentemente da situação, esta parte da série de desenvolvimento C mostrará como criar pacotes para duas das distribuições mais populares, Debian e Fedora. Se você ler nossos artigos até agora e tiver algum conhecimento sólido da linha de comando, e pode dizer que conhece sua distração de escolha, estará pronto.

Antes de irmos mais longe ..

Vamos tirar alguns conceitos e idéias gerais do caminho, só para garantir que estamos na mesma página. O que estamos prestes a esboçar aqui está disponível, independentemente do projeto que você decide empacotar (ou contribuir), seja Arch, NetBSD ou OpenSolaris. A ideia é: tenha cuidado. Verifique o código, seja seu ou não, e lembre -se de que talvez muitas pessoas usem seu código. Você tem uma responsabilidade em suas mãos, e um grande grande nisso. Se você duvidar disso, reverte os lugares por um segundo: um mantenedor de pacotes não tem cuidado ao inspecionar código e algum pouco, mas o bug grave segue seu caminho instalado no seu computador. É sorrateiro, pois só se manifesta em certos hardware e em determinadas situações, mas é grave o suficiente para excluir todos os arquivos residentes dentro da sua pasta doméstico. Por acaso, você tem essa combinação exata de hardware e caos segue, pois você se esqueceu de escrever para DVD essas fotos de suas férias. Você fica com raiva, sua primeira reação é manifestar um sentimento negativo em relação ao sistema operacional (ou distribuição) e, assim, após sua decisão de alterar as distribuições imediatas, que distro perde um usuário, tudo porque a falta de atenção e a completa pessoa de uma pessoa.

Debian

Dada a excelente documentação de Debian, não poderemos cobrir todos as coisas que se precisa para se tornar um desenvolvedor. Afinal, não é isso que queríamos. O que queríamos é mostrar -lhe basicamente como ir de um tarball para um .Deb. Tornar -se um desenvolvedor do Debian leva muito tempo e envolve você ajudar a comunidade por meio de listas de IRC ou correspondência, relatando e ajudando a corrigir bugs, e assim por diante, de modo que esse não é o objeto do nosso artigo. Dê uma olhada na documentação que o projeto fornece para mais informações. A política do Debian, o novo guia do mantenedor e a referência do desenvolvedor são mais do que importantes para iniciar, eles devem ser como algum tipo de livro que você dorme sob o travesseiro.

Sua primeira parada deve ser, conforme descrito acima, a política, onde você deve se familiarizar com a hierarquia do sistema de arquivos, os arquivos, os campos em um arquivo de controle e itens específicos a serem lembrados sobre diferentes categorias de software: binários, bibliotecas, fonte, Jogos, documentação,… lembre -se de que um .O arquivo Deb nada mais é do que um arquivo e é feito de duas partes: a parte de controle, com o arquivo de controle e os scripts de instalação/ desinstalação, e a carga útil, onde os arquivos a serem instalados residem. Não é tão difícil quanto alguém pensaria que é. É uma boa ideia que você baixe um .O arquivo Deb, ainda melhor se estiver embalando algum software com o qual você está familiarizado e comece a olhar para dentro para ver o que é o que. [Dica] - Você pode usar o arquivo de controle para criar o seu próprio, desde que você seja cuidadoso. Como exemplo, vamos tomar vim. Os arquivos Deb não passam de arquivos AR (1), para que eles possam simplesmente ser descompactados usando o seguinte comando Linux:

 $ ar vx vim-nox_7.3.547-5_AMD64.Deb 

Claro, V significa verboso e X significa Extract. Após esta operação, veremos três arquivos: Controle.alcatrão.gz, dados.alcatrão.XZ e um pequeno arquivo de texto chamado Debian-Binária, que nada mais é do que um arquivo dizendo ao DPKG, o gerente do pacote Debian, que formato binário é usado. Mas isso não tem interesse por enquanto. O arquivo de dados também não é, que consiste nos arquivos que devem ser descompactados no seu sistema: as páginas binárias, manuais, bibliotecas e assim por diante, dependendo do software sobre o qual estamos falando. O arquivo de controle é de extrema importância aqui. Se você desempacotá-lo, verá o arquivo essencial, denominado Control, o MD5Sums dos arquivos a serem instalados e dois scripts, um que cuida dos problemas de instalação da postagem e o outro que cuida da pré-remetente. Como tínhamos o qual o seu exemplo de software, vamos pegá -lo e ver como o arquivo de controle ficaria. Cabe a você decidir, caro leitor, se o passado precisar desses dois scripts e, em caso afirmativo, como eles devem ser alterados. Então, aqui está um arquivo de controle, retirado de Vim-nox e modificado para o YEST.

Pacote: YEST Fonte: Yest Version: 2.7.0.5 Arquitetura: AMD64 Manter: rares aioanei instalado tamanho: 40355 Depende: libc6 (> = 2.11) sugere: fornece: Seção do YEST: Outra prioridade: Normal Página inicial: Sourceforge.Net/Projects/YEST Descrição: Esta é uma linha de comando Data/Horário de Manipulação e Formatação Programa, muito útil em scripts. Você pode adicionar ou subtrair facilmente dias, horas e/ou minutos de uma data especificada. Suporta todos os formatos de saída da data (1) e mais. 

Lá vai você, pessoal. Você acha que há mais alguma coisa que você precisa para criar um pacote? Verifique se todos os seus arquivos estão no lugar, você pode usar um método mais antigo, especialmente porque o software é pequeno e simples e sem trabalho, se essas palavras existirem.

 $ dpkg -b yestdir.Deb 

Agora, muitas pessoas me dirão, e eu mal posso esperar, é claro, que este é um método antigo de fazer coisas e assim por diante. E eles estão certos. Eu sugiro olhar através do DPKG-BuildPackage Página manual, bem como Lintian para verificar a qualidade do seu .Deb, e lembre -se de fazer isso antes de iniciar qualquer coisa, para ter certeza de que está instalado:

 # instalação apt-get Build-essencial AutoConf Automake AutoTools-Dev DH-Make Debhelper Devscripts Fakerot Xutils Lintian Pbuilder 

Fedora

Na minha opinião, o Fedora/Red Hat facilita a empacotamento das pessoas em comparação com o Debian e os derivados. Dito isto, mais fácil nem sempre significa melhor, pelo menos no mundo de TI. Você poderá fazer uma opinião educada após este artigo, esperamos.

Novamente, verifique se você tem todas as ferramentas instaladas, o que pode ser feito digitando isso:

 # yum install @Development-Tools Fedora-Packager 

Agora crie um usuário nomeado Makerpm, Certifique -se de que ele esteja no grupo simulado e atribua uma senha:

 # userAdd -m -g Mock Makerpm && passwd Makerpm 

Faça logon como esse usuário e emitir o comando

 $ rpmdev-setuptree 

no diretório doméstico. Você verá, depois que o comando sair, uma nova estrutura de diretório chamada rpmbuild. Reserve algum tempo para examiná -lo e descobrir os propósitos de cada diretório e arquivo. Agora, assim como o Debian faz uso de arquivos de controle, o Fedora usa o SpecFiles. Eles são chamados assim porque têm o .Extensão de especificações, então o usuário sabe que especifica os parâmetros da construção de pacotes: versão, nome, autor, mantenedor, depende e assim por diante. De qualquer forma, estou me adiantando. Vamos começar como fizemos antes e baixar um pacote de origem (novamente vim, para consistência) para ver onde está onde. Para isso, é preciso instalar o pacote Yum-Utils, que oferece YumDownloader:

 $ yumdownloader-SOURCE VIM aprimorado 

Agora, para instalar em ~/rpmbuild, digitamos

 $ rpm -ivh vim aprimorou […].src.RPM 

Lembre -se de que um arquivo rpm é um arquivo, assim como .Os arquivos Deb são. A diferença é o formato: enquanto Debian usa AR, o Fedora/RH usa o CPIO como o formato de escolha. Sabendo disso, qual seria o método a ser usado para descompactar manualmente .rpms?

Você deve ter notado que há um diretório chamado especificações em seu ~/rpmbuild. CD para ele e criar um arquivo usando Vim ou Emacs, um arquivo chamado YEST.espec. Você ficará agradavelmente surpreso ao descobrir que esses dois editores são modificados pelo Fedora de tal maneira, para que eles ofereçam um "esqueleto" de um especfile (desde que o arquivo que você deseje criar tenha o .Extensão de especificações), para que você possa apenas preencher os espaços em branco. Agora, sua tarefa é, com base no arquivo de controle acima e no seu conhecimento até agora, para escrever uma especificação completa para o seu ano e, é claro, criar um rpm a partir dela. O Wiki do Fedora tem uma explicação detalhada em todas as seções de um especfile, leia -o. Só iremos ajudá -lo com a construção e verificação reais do pacote. Em resumo, use o qual.Especial como um argumento para rpmlint para verificar a conformidade do arquivo com as diretrizes de embalagem do Fedora e, em seguida, quando tudo prova estar em ordem, e depois de ler o manual do RPMbuild, faça algo assim:

 $ rpMbuild -ba YEST.espec 

As opções dadas ao RPMbuild representam "Build All", mas você também pode construir apenas o pacote de origem, usando -bs. Lembre -se de que Mock e Koji são duas ferramentas muito úteis, e também.

Conclusão

Uma coisa a lembrar é que, se você criou o software que está empacotando ou não, mantenedia é muito importante, às vezes ainda mais importante como o ato da própria criação. Portanto, certifique -se de saber que responsabilidade você está assumindo: se você não estiver preparado para doar tempo, é melhor que você não comece, ou verifique se pode dar o pacote a outra pessoa para manter. Esperamos que você tenha gostado do nosso pequeno passeio pela embalagem Linux.

Todos os artigos desta série:

  • EU. C Desenvolvimento no Linux - Introdução
  • Ii. Comparação entre C e outras linguagens de programação
  • Iii. Tipos, operadores, variáveis
  • 4. Controle de fluxo
  • V. Funções
  • Vi. Ponteiros e matrizes
  • Vii. Estruturas
  • Viii. E/S básico
  • Ix. Estilo de codificação e recomendações
  • X. Construindo um programa
  • XI. Embalagem para Debian e Fedora
  • Xii. Obtendo um pacote nos repositórios oficiais do Debian

Tutoriais do Linux relacionados:

  • Coisas para instalar no Ubuntu 20.04
  • Uma introdução à automação, ferramentas e técnicas do Linux
  • Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
  • Mastering Bash Script Loops
  • Ubuntu 20.04 Guia
  • Coisas para instalar no Ubuntu 22.04
  • Como fazer bota dupla kali linux e windows 10
  • Coisas para fazer depois de instalar o Ubuntu 22.04 Jellyfish…
  • Manipulação de big data para diversão e lucro Parte 1
  • Mint 20: Melhor que o Ubuntu e o Microsoft Windows?