
Como o título diz, eu quero fazer um pacote Ubuntu que as pessoas possam baixar apt
e gostaria de configurar o pacote com um script System V para que as pessoas possam iniciar e parar o serviço (como mysql
).
Eu já li este artigohttps://packaging.ubuntu.com/html/packaging-new-software.htmlmas é muito básico e não entendi completamente. Como posso dizer ao empacotador em quais pastas vai o quê?
Estou um pouco perdido e agradeceria qualquer ajuda. Obrigado.
Este guia é realmente útilhttps://blog.serverdensity.com/how-to-create-a-debian-deb-package/
Também aqui está a documentação adequada que o guia está usandohttps://wiki.debian.org/Packaging/Intro?action=show&redirect=IntroDebianPackaging
Responder1
Aqui estão os princípios básicos da criação de pacotes. Eles se aplicam a uma ampla variedade de sistemas, desde FreeBSD e OpenBSD até Arch Linux, Debian Linux e Ubuntu Linux.
Faz-se um pacote por:
- Obtendo a árvore do código-fonte, via git ou subversion ou algo assim, ou baixando e descompactando um arquivo compactado.
- Pré-requisito de instalaçãoconstruir pacotes, fornecendo as ferramentas que o software precisa para compilar.
- Aplicar patches por sistema operacional a isso.
- Compilar os binários e arquivos de dados, porém o software específico faz isso.
- Construir uma árvore de diretórios temporários onde os binários e arquivos de dados a serem empacotados são dispostos nessa árvore como seriam dispostos
/
após a instalação do pacote. - Usando uma ferramenta de criação de pacote, em conjunto com um manifesto de remessa e alguns outros metadados, para criar o pacote.
Em seguida, ele é colocado em um repositório de pacotes, executado por nós mesmos ou publicado pelos mantenedores do sistema operacional. Existem muitos obstáculos logísticos e políticos neste último processo. Em ambos, você precisa lidar com a assinatura de coisas.
Os detalhes variam de sistema operacional para sistema operacional, ou melhor, de sistema de empacotamento para sistema de empacotamento. A forma como os arquivos de manifesto do pacote são estruturados varia, por exemplo. Ebuild-essential
o metapacote Debiannão é uma coisa universal. Mas estes são os princípios gerais.
Portanto, todas essas ferramentas sem sentido na página do Ubuntu são wrappers de alto nível para isso, que fazem coisas como manter um repositório de controle de origem de todas as coisas extras que você adiciona ao código-fonte original.
As ferramentas do Debian são um pouco diferentes. Na verdade, existem três estilos diferentes de ferramentas Debian, incluindo"ajudante deb".
Observe também que as instruções do Debian de várias pessoas na WWW são frequentemente voltadas para a ideia de que você está baixando um arquivo existentePacote fonte Debiane construí-lo, em vez de escrever todos os recursos auxiliaresCoisas de empacotamento do Debiando princípio. Tal pacote possui metadados de empacotamento Debian, arquivos de controle e patches, já fornecidos na árvore de origem. É a fonte originalalém do material de empacotamento do Debian.
Geralmente, um pacote constrói ele próprio uma árvore de teste apropriada se for fornecido um diretório de destino para "instalar" em vez do /
diretório. Se você estiver empacotando seu próprio software, deverá fornecer um mecanismo para "instalar" corretamente em uma área de teste independente. (Eu tenho pacotes "slashpackage", com um package/stage
script que eleva tudo de command/
, manual/
, guide/
, library/
, et al. para uma área de teste adequada para /usr
.)
Finalmente: Não, você não fornece um rc
script van Smoorenburg para iniciar e interromper serviços. Esta não tem sido a forma nativa no Ubuntudesde 2006, quase uma década e meia neste momento. Você fornece arquivos de unidade do systemd. Mesmo se você quiser fornecer rc
scripts van Smoorenbrg paraDebianpessoas que não estão usando o systemd, você fornece onovo estiloscripts van Smoorenburg rc
, introduzidos em 2014, com base no exemplo da init-d-script
página de manual, que são bastante diferentes em conteúdo do que a maioria (bem desatualizada) documentação da WWW irá lhe dizer.
Agora você pode voltar aos detalhes de debian/control
, debian/rules
e similares nessas (e outras) páginas da WWW.
Leitura adicional
- Para onde /etc/init.d/skeleton?
- https://askubuntu.com/a/707750/43344
- https://unix.stackexchange.com/a/332441/5132
- Jonathan de Boyne Pollard (2018). "Adicionando pacotes específicos do sistema operacional na parte superior"A geração do slashpackage. Respostas dadas com frequência.