Você está na página 1de 5

17/04/2023, 04:46 15.2.

 Construindo seu primeiro pacote

Faça o download do ebook

Anterior Manual do Administrador Debian Próximo

15.2. Construindo seu primeiro pacote

15.2.1. Pacotes Meta ou Pacotes Falsos

Pacotes falsos e meta-pacotes são semelhantes, pois são shells vazios que existem apenas para os efeitos que
seus metadados têm na pilha de manuseio de pacotes.

O objetivo de um pacote falso é enganar dpkg e apt acreditando que algum pacote está instalado, mesmo que
seja apenas um shell vazio. Isso permite satisfazer dependências de um pacote quando o software correspondente
foi instalado fora do escopo do sistema de embalagem. Esse método funciona, mas ainda deve ser evitado sempre
que possível, como não há garantia de que o software instalado manualmente se comporte exatamente como o
pacote correspondente faria e outros pacotes, dependendo dele, não funcionariam corretamente.

Por outro lado, um meta-pacote existe principalmente como uma coleção de dependências, de modo que a
instalação do meta-pacote realmente trará um conjunto de outros pacotes em uma única etapa.

Esses dois tipos de pacotes podem ser criados pelo equivs-control e equivs-build comandos ( no equivs
pacote ). O O comando cria um arquivo de cabeçalho do pacote Debian que deve ser editado para conter o nome
do pacote esperado, seu número de versão, o nome do mantenedor, suas dependências e sua descrição. Outros
campos sem um valor padrão são opcionais e podem ser excluídos. O , , e campos não são campos padrão nos
pacotes Debian; eles só fazem sentido dentro do escopo de , e eles não serão mantidos nos cabeçalhos do pacote
gerado. equivs-control fileCopyrightChangelogReadmeExtra-Filesequivs-build

Exemplo 15.2. Arquivo de cabeçalho do libxml-libxml-perl pacote falso

Seção: perl
Prioridade: opcional
Versão de normas: 4.5.1

Pacote: libxml-libxml-perl
Versão: 2.0207-1
Mantenedor: Raphael Hertzog < hertzog@debian.org >
Depende: libxml2 ( > = 2.9.10 )
Arquitetura: tudo
Descrição: Pacote falso - módulo instalado manualmente em site_perl
Este é um pacote falso para deixar o sistema de embalagem
acredite que este pacote Debian está instalado.
.
De fato, o pacote não está instalado desde uma versão mais recente
do módulo foi compilado manualmente & amp; instalado no
diretório site_perl.

O próximo passo é gerar o pacote Debian com o comando. Voilà: o pacote é criado no diretório atual e pode ser
tratado como qualquer outro pacote Debian. equivs-build file

https://debian-handbook.info/browse/stable/sect.building-first-package.html 1/5
17/04/2023, 04:46 15.2. Construindo seu primeiro pacote

$ equivs-build file Faça o download do ebook


equivs-build control
dpkg-buildpackage: info: source package libxml-libxml-perl
dpkg-buildpackage: info: source version 2.0207-1
dpkg-buildpackage: info: source distribution unstable
dpkg-buildpackage: info: source changed by Raphael Hertzog <hertzog@debian.org>
dpkg-buildpackage: info: host architecture amd64
dpkg-source --before-build .
debian/rules clean
dh clean
dh_clean
debian/rules binary
dh binary
dh_update_autotools_config
dh_autoreconf
create-stamp debian/debhelper-build-stamp
dh_prep
dh_install
dh_installdocs
dh_installchangelogs
dh_perl
dh_link
dh_strip_nondeterminism
dh_compress
dh_fixperms
dh_missing
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb
dpkg-deb: building package 'libxml-libxml-perl' in '../libxml-libxml-perl_2.0207-
1_all.deb'.
dpkg-genbuildinfo --build=binary
dpkg-genchanges --build=binary >../libxml-libxml-perl_2.0207-1_amd64.changes
dpkg-genchanges: info: binary-only upload (no source code included)
dpkg-source --after-build .
dpkg-buildpackage: info: binary-only upload (no source included)

The package has been created.


Attention, the package has been created in the current directory,
not in ".." as indicated by the messaige above!

15.2.2. Arquivo simples
Os administradores da Falcot Corp precisam criar um pacote Debian para facilitar a implantação de um conjunto de
documentos em um grande número de máquinas. O administrador responsável por esta tarefa lê primeiro o Guia
do Novo Mantenedor “ e depois começa a trabalhar no primeiro pacote.
→ https://www.debian.org/doc/manuals/maint-guide/

O primeiro passo é criar um falcot-data-1.0 diretório para conter o pacote de origem de destino. O pacote
será logicamente nomeado falcot-data e suportar o 1.0 número da versão. O administrador coloca os
arquivos do documento em um data subdiretório. Então eles invocam o dh_make comando ( do dh-make pacote )
para adicionar arquivos exigidos pelo processo de geração do pacote, que serão armazenados em um debian
subdiretório:

$ cd falcot-data-1.0
$ dh_make --native

Type of package: (single, indep, library, python)


[s/i/l/p]? i

https://debian-handbook.info/browse/stable/sect.building-first-package.html 2/5
17/04/2023, 04:46 15.2. Construindo seu primeiro pacote
Maintainer Name : Raphael Hertzog
Faça o download do ebook
Email-Address : hertzog@debian.org
Date : Sat, 26 Feb 2021 13:02:06 +0100
Package Name : falcot-data
Version : 1.0
License : gpl3
Package Type : indep
Are the details correct? [Y/n/q]
Currently there is not top level Makefile. This may require additional tuning
Done. Please edit the files in the debian/ subdirectory now.

O tipo selecionado de pacote (emep) indica que este pacote de origem gerará um único pacote binário que pode
ser compartilhado em todas as arquiteturas (Architecture: all em debian/control). solteiro atua como
contrapartida e leva a um único pacote binário que depende da arquitetura de destino (Architecture: any).
Nesse caso, a escolha anterior é mais relevante, pois o pacote contém apenas documentos e nenhum programa
binário, portanto pode ser usado de maneira semelhante em computadores de todas as arquiteturas.

O biblioteca type corresponde a um pacote de origem que leva a vários pacotes binários. É útil para bibliotecas
compartilhadas, pois elas precisam seguir regras rígidas de embalagem.

DICA Nome e endereço de e-mail do mantenedor

A maioria dos programas envolvidos na manutenção de pacotes procurará seu nome e endereço de e-mail no
DEBFULLNAME e DEBEMAIL ou EMAIL variáveis de ambiente. Defini-los de uma vez por todas evitará que você precise
digitá-los várias vezes. Se o seu shell habitual for bash, é simples adicionar as duas linhas a seguir nas suas ~/.bashrc
file ( você obviamente substituirá os valores por outros mais relevantes! ):

exportar EMAIL = "hertzog@debian.org"


exportar DEBFULLNAME = "Raphael Hertzog"

O dh_make comando criou um debian subdiretório com muitos arquivos. Alguns são necessários, em particular
rules, control, changelog e copyright. Arquivos com o .ex extensão são exemplos de arquivos que
podem ser usados modificando-os ( e removendo a extensão ) quando apropriado. Quando não são necessários,
recomenda-se removê-los. O compat arquivo não é mais usado nem criado. Em vez de definir o nível de
compatibilidade do debhelper como um número neste arquivo, agora é definido como uma dependência de
compilação no debhelper-compat pacote virtual no Build-Depends arquivo em debian/control.

O copyright o arquivo deve conter informações sobre os autores dos documentos incluídos no pacote e os
direitos autorais e licenças relacionados. No nosso caso, esses são documentos internos e seu uso é restrito à
empresa Falcot Corp. O formato padrão usado para este arquivo é definido no Format campo.
→ https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/

O padrão changelog arquivo é geralmente apropriado; substituindo a liberação inicial “ ” por uma explicação mais
detalhada e alterando a distribuição de UNRELEASED ou unstable para o nome de lançamento de destino é
suficiente.

O control o arquivo também deve ser atualizado: o Section campo pode ser alterado para misc e o Homepage,
Vcs-Git e Vcs-Browser campos foram removidos. O Depends campos foi completado com firefox-esr |
www-browser para garantir a disponibilidade de um navegador da web capaz de exibir os documentos no pacote.
Se o pacote não precisar executar nenhum comando como root (, consulte FERRAMENTA fakeroot), o Rules-
Requires-Root campo pode ser deixado como está.

Exemplo 15.3. O control Arquivo

https://debian-handbook.info/browse/stable/sect.building-first-package.html 3/5
17/04/2023, 04:46 15.2. Construindo seu primeiro pacote

Fonte: dados do falcot Faça o download do ebook


Seção: misc
Prioridade: opcional
Mantenedor: Raphael Hertzog < hertzog@debian.org >
Depende da construção: debhelper-compat ( = 13 )
Versão de normas: 4.5.1
Regras-Requeridas-Raiz: não

Pacote: dados falcot


Arquitetura: tudo
Depende: firefox-esr | www-browser, $ { misc: Depende }
Description: Internal Falcot Corp Documentation
This package provides several documents describing the internal
structure at Falcot Corp. This includes:
- organization diagram
- contacts for each department.
.
These documents MUST NOT leave the company.
Their use is INTERNAL ONLY.

Example 15.4. The changelog file

falcot-data (1.0) bullseye; urgency=low

* Initial Release.
* Let's start with few documents:
- internal company structure;
- contacts for each department.

-- Raphael Hertzog <hertzog@debian.org> Sat, 26 Feb 2022 15:12:06 +0100

Example 15.5. The copyright file

Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: falcot-data

Files: *
Copyright: 2004-2021 Falcot Corp
License:
All rights reserved.

BACK TO BASICS Makefile file

A Makefile file é um script usado pelo make programa; descreve regras de como criar um conjunto de arquivos um do
outro em uma árvore de dependências ( por exemplo, um programa pode ser construído a partir de um conjunto de
arquivos de origem ). O Makefile O arquivo descreve essas regras no seguinte formato:

alvo: fonte1 fonte2 ...


comando1
command2

A interpretação básica de tal regra é a seguinte: se um dos source* arquivos é mais recente que o target arquivo, o
destino precisa ser gerado, usando command1 e command2.

Observe que as linhas de comando devem começar com um caractere de guia; observe também que quando uma linha de
comando começa com um caractere de traço (-), a falha do comando não interrompe todo o processo.

https://debian-handbook.info/browse/stable/sect.building-first-package.html 4/5
17/04/2023, 04:46 15.2. Construindo seu primeiro pacote
O rules O arquivo geralmente contém um Faça
conjunto de regrasdo
o download usadas
ebookpara configurar, criar e instalar o software
em um subdiretório dedicado ( com o nome do pacote binário gerado ). O conteúdo deste subdiretório é então
arquivado no pacote Debian como se fosse a raiz do sistema de arquivos. No nosso caso, os arquivos serão
instalados no debian/falcot-data/usr/share/falcot-data/ subdiretório, para que a instalação do pacote
gerado implante os arquivos em /usr/share/falcot-data/. O rules arquivo é usado como Makefile, com
alguns alvos padrão ( incluindo clean e binary, usado respectivamente para limpar o diretório de origem e gerar
o pacote binário ).

Although this file is the heart of the process, it increasingly contains only the bare minimum for running a standard
set of commands provided by the debhelper tool. Such is the case for files generated by dh_make. To install our
files, we simply configure the behavior of the dh_install command by creating the following debian/falcot-
data.install file:

data/* usr/share/falcot-data/

At this point, the package can be created. We will, however, add a lick of paint. Since the administrators want the
documents to be easily accessed from the menus of graphical desktop environments, we add a falcot-
data.desktop file and get it installed in /usr/share/applications by adding a second line to
debian/falcot-data.install.

Example 15.6. The falcot-data.desktop file

[Desktop Entry]
Name=Internal Falcot Corp Documentation
Comentário = Inicia um navegador para ler a documentação
Exec = x-www-browser / usr / share / falcot-data / index.html
Terminal = falso
Tipo = Aplicação
Categorias = Documentação;

A atualização debian/falcot-data.install fica assim:

dados / * usr / share / falcot-data/


falcot-data.desktop usr / share / applications/

Nosso pacote de origem está pronto. Tudo o que resta a fazer é gerar o pacote binário, com o mesmo método
usado anteriormente para reconstruir pacotes: executamos o dpkg-buildpackage -us -uc comando de
dentro do falcot-data-1.0 diretório.

Anterior Up Casa Próximo


Capítulo 15. Criando um pacote Debian 15,3. Criando um repositório de pacotes para APT

https://debian-handbook.info/browse/stable/sect.building-first-package.html 5/5

Você também pode gostar