dpkg e o apt para acreditarem que algum pacote está instalado mesmo que em realidade seja apenas uma caixa vazia. Isto permite satisfazer dependências num pacote quando o programa correspondente foi instalado fora do escopo do sistema de pacotes. Este método funciona, porém deve mesmo assim ser evitado sempre que possível, já que não existem garantias de que o programa instalado manualmente se comportará exatamente como o pacote correspondente faria e outros pacotes dependentes dele podem não funcionar corretamente.
equivs-control e equivs-build (do pacote equivs). O comando equivs-control arquivo cria um arquivo de cabeçalho de pacote Debian que deve ser editado para conter o nome do pacote desejado, 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. Os campos Copyright, Changelog, Readme e Extra-Files não são campos padrões em pacotes Debian; eles só fazem sentido no âmbito da equivs-build, e eles não serão mantidos nos cabeçalhos do pacote gerados.
Exemplo 15.2. Arquivo de cabeçalho do pacote falso libxml-libxml-perl
Section: perl Priority: optional Standards-Version: 3.9.6 Package: libxml-libxml-perl Version: 2.0.116-1 Maintainer: Raphael Hertzog <hertzog@debian.org> Depends: libxml2 (>= 2.7.4) Architecture: all Description: Fake package - módulo instalado manualmente em site_perl Este é um pacote falso para deixar o sistema de empacotamento acreditando que este pacote Debian está instalado. . Na verdade, o pacote não está instalado desde uma versão mais recente do módulo que foi manualmente compilada & instalada no diretório site_perl.
equivs-build arquivo. Voilà: o pacote foi criado no diretório atual e pode ser manejado como qualquer outro pacote Debian seria.
falcot-data-1.0 que conterá o pacote fonte. O pacote irá, logicamente, ser chamado de falcot-data e terá o número de versão 1.0. O administrador então coloca os documentos em um subdiretório data. Então ele chama o comando dh_make (do pacote dh-make) para adicionar os arquivos necessários para o processo de criação do pacote, o qual será armazenado em um subdiretório debian:
$cd falcot-data-1.0$dh_make --nativeType of package: single binary, indep binary, multiple binary, library, kernel module, kernel patch or cdbs? [s/i/m/l/k/n]iMaintainer name : Raphael Hertzog Email-Address : hertzog@debian.org Date : Fri, 04 Sep 2015 12:09:39 -0400 Package Name : falcot-data Version : 1.0 License : gpl3 Type of Package : Independente Pressione <enter> para confirmar: Atualmente não há nível superior Makefile. Isto pode exigir um ajuste adicional. Feito. Por favor, edite os arquivos no agora debian/subdiretório. Você também deve verificar se o instalador falcot-data Makefiles em $DESTDIR e não em /. $
Arquitetura: all). single binary atua como contraparte, e leva a um único pacote binário que é dependente da arquitetura alvo ( Arquitetura: any). Neste caso, a primeira escolha é mais relevante uma vez que o pacote contém apenas os documentos e não programas binários, para que possa ser usado de forma semelhante em computadores de todas as arquiteturas.
dh_make criou uma pasta debian com muitos arquivos. Alguns são necessários, em particular rules, control, changelog e copyright. Arquivos com extensão .ex são exemplos de arquivos que podem ser utilizados, modificando-os (e removendo a extensão), se for o caso. Quando eles não são necessários, entao é recomendado removê-los. O arquivo compat deve ser mantido, uma vez que é necessário para o funcionamento correto do conjunto de programas debhelper (todos começando com o prefixo dh_) utilizado em diferentes estágios do processo de construção do pacote.
copytight (direitos autorais) deve conter informações sobre os autores dos documentos incluídos no pacote, e as licenças relacionadas. No nosso caso, estes são documentos internos e sua utilização é limitada para dentro da empresa Falcot Corp. O arquivo changelog padrão é geralmente apropriado; substituir o "lançamento inicial" com uma explicação mais detalhada e alterar da distribuição instável para interna é suficiente . O arquivo control também foi atualizado: o campo Section foi alterado para misc e os campos Homepage, Vcs-Git e Vcs-Browser foram removidos. O campo Depends foi completado com iceweasel | www-browser, de modo a assegurar a disponibilidade de um navegador web capaz de exibir os documentos contidos no pacote.
Exemplo 15.3. O arquivo control
Source: falcot-data
Section: misc
Priority: optional
Maintainer: Raphael Hertzog <hertzog@debian.org>
Build-Depends: debhelper (>= 9)
Standards-Version: 3.9.5
Package: falcot-data
Architecture: all
Depends: iceweasel | www-browser, ${misc:Depends}
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.Exemplo 15.4. O arquivo changelog
falcot-data (1.0) internal; urgency=low
* Initial Release.
* Let's start with few documents:
- internal company structure;
- contacts for each department.
-- Raphael Hertzog <hertzog@debian.org> Fri, 04 Sep 2015 12:09:39 -0400Exemplo 15.5. O arquivo copyright
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: falcot-data Files: * Copyright: 2004-2015 Falcot Corp License: All rights reserved.
rules geralmente contém um conjunto de regras usado para configurar, construir e instalar o software em um subdiretório específico (nomeado de acordo com o pacote binário gerado). O conteúdo desta pasta é depois arquivado dentro do pacote Debian, como se fosse a raiz do sistema de arquivos. No nosso caso, os arquivos serão instalados na pasta debian/falcot-data/usr/share/falcot-data/, para que a instalação do pacote gerado implante os arquivos em /usr/share/falcot-data/. O arquivo rules é utilizado como um Makefile, com alguns alvos padrões (incluindoclean e binary, utilizados, respectivamente, para limpar a pasta de origem e gerar o pacote binário).
debhelper. Tal é o cado dos arquivos gerados pelo dh_make. Para instalar nossos arquivos, nós simplesmente configuramos o comportamento do comando dh_install criando o seguinte arquivo debian/falcot-data.install:
data/* usr/share/falcot-data/
falcot-data.desktop e o instalaremos em /usr/share/applications através da adição de uma segunda linha em debian/falcot-data.install.
Exemplo 15.6. O arquivo falcot-data.desktop
[Desktop Entry] Name=Internal Falcot Corp Documentation Comment=Starts a browser to read the documentation Exec=x-www-browser /usr/share/falcot-data/index.html Terminal=false Type=Application Categories=Documentation;
debian/falcot-data.install atualizado se parece com isso:
data/* usr/share/falcot-data/ falcot-data.desktop usr/share/applications/
dpkg-buildpackage -us -uc de dentro do diretório falcot-data-1.0.