Maneira fácil de criar um pacote debian e um repositório de pacotes local

Maneira fácil de criar um pacote debian e um repositório de pacotes local

Este artigo descreve uma maneira simples de criar um pacote Debian feito em casa e incluí -lo em um repositório de pacotes local. Embora pudéssemos usar um pacote Debian/Ubuntu existente, começaremos do zero, criando e empacotando nosso próprio aplicativo trivial. Depois que nosso pacote estiver pronto, incluiremos -o em nosso repositório de pacotes local. Este artigo ilustra uma abordagem muito simplista, no entanto, pode servir como um modelo em muitos cenários diferentes.

Neste tutorial, você aprenderá:

  • Como criar um pacote de Debian Trivial
  • Como criar um repositório de Debian Local
  • Como adicionar o repositório à lista de fontes de software


Requisitos de software e convenções usadas

Requisitos de software e convenções de linha de comando Linux
Categoria Requisitos, convenções ou versão de software usada
Sistema Debian
Programas O pacote essencial de construção
Outro Um servidor da web do Apache funcionado e permissões root
Convenções # - requer que os comandos Linux sejam executados com privilégios root diretamente como usuário root ou por uso de sudo comando
$ - Requer que os comandos do Linux sejam executados como um usuário não privilegiado regular

Criando um executável binário

A primeira coisa que precisamos fazer é criar um programa C ++ simples, compilá -lo e testá -lo. Caso você queira escrever um programa C simples, visite nosso tutorial abrangente para a programação C. Nosso programa não fará mais nada, basta imprimir “LinuxConfig.org ”na tela. Aqui está o código:

#include int main () usando namespace std; cout << "linuxconfig.org\n"; 
cópia de

Salve o código acima como LinuxConfig.cc. Para compilar o programa, precisamos do g++ Compilador, que é fornecido pelo pacote essencial de construção. Podemos instalá -lo em execução:

$ sudo apt-get install edifício-essencial

Para compilar o código, usamos o seguinte comando Linux:

$ g ++ linuxconfig.cc -o linuxconfig $ ./LinuxConfig LinuxConfig.org

Tudo está bem. Neste ponto, devemos ter um executável chamado "LinuxConfig", que imprime alguma string na tela.



Criando um pacote Debian

Agora que temos nosso pequeno programa pronto na forma de um binário executável, podemos criar um pacote Debian. Para fazer isso, usamos o DPKG-DEB ferramenta. Primeiro de tudo, precisamos criar a estrutura do pacote Debian. Os únicos arquivos necessários para construir um pacote Debian são:

  • Debian/Control
  • arquivos personalizados para fazer parte do pacote (não é necessário)

Primeiro crie um diretório chamado LinuxConfig. Este diretório manterá todos os arquivos de pacote necessários:

$ mkdir linuxconfig

Em seguida, crie o diretório do Debian e o arquivo de controle:

$ mkdir linuxconfig/Debian $ VI LinuxConfig/Debian/Control

Dentro do arquivo de controle, inserimos as seguintes informações:

Pacote: LinuxConfig Versão: 1.0 Seção: Prioridade personalizada: Arquitetura Opcional: All essencial: sem tamanho instalado: 1024 MEPINGER: LinuxConfig.Org Descrição: Imprima LinuxConfig.org na tela

Ótimo, a única coisa que está faltando é o nosso programa LinuxConfig. Dentro de LinuxConfig diretório, criamos uma árvore de diretório que representa o caminho em que nosso programa será instalado no sistema e copiar
executável nele:

$ mkdir -p linuxconfig/usr/bin/$ cp/path/to/linuxconfig linuxconfig/usr/bin/

Neste ponto, estamos prontos para criar o pacote:

$ dpkg-deb-build linuxconfig dpkg-deb: pacote de construção 'linuxconfig' em 'linuxconfig.Deb '. $ ls linuxconfig linuxconfig.Deb

Você pode alterar o nome do pacote para incluir a versão do programa e a arquitetura do pacote. Por exemplo:

$ MV LinuxConfig.Deb LinuxConfig-1.0_AMD64.Deb

Tudo feito ! Nosso pacote está pronto ! (Nota: este é apenas um exemplo, a criação de pacotes oficiais requer mais trabalho).

Configurando um repositório de pacotes local

Para criar um repositório de pacotes local, precisamos de um trabalho. Nesse caso, assumiremos o uso de Apache com configurações padrão. Para instalar o Apache WebServer, tudo o que precisamos fazer é executar:

$ sudo apt-get install apache2


Uma vez instalado, para verificar se o servidor da web funciona, podemos navegar para o endereço IP da máquina (ou para 'http: // localhost', se executando um navegador na própria máquina) que, no nosso caso, é http: // 10.1.1.4. Devemos ver o
famoso Funciona! mensagem.

O software do servidor da web está em execução, mas nenhum conteúdo foi adicionado, mas. O Documentroot do Apache padrão VirtualHost, é /var/www/html: é aqui que criaremos nosso repositório.

Vamos criar o diretório "debian" dentro /var/www/html e copie o LinuxConfig-1.0_AMD64.Pacote Deb dentro dele:

$ sudo mkdir/var/www/html/debian $ sudo cp/path/to/linuxconfig-1.0_AMD64.Deb/var/www/html/debian/

A próxima etapa consiste na geração de uma lista de pacotes. Nós nos mudamos para o Debian diretório e use o DPKG-SCANPACKAGES utilidade para realizar a tarefa. Pode ser necessário instalar o dpkg-dev pacote no caso de o DPKG-SCANPACKAGES O comando está faltando:

$ dpkg-scanpackages . | gzip -c9> pacotes.GZ DPKG-SCANPACKAGES: Informações: Escreveu 1 entradas para o arquivo de pacotes de saída.

Nosso repositório local agora está pronto.

Adicionando o repositório às fontes de software

Neste ponto, para poder instalar nosso pacote a partir do repositório local que criamos, precisamos editar o /etc/apt/fontes.lista Arquivo, adicione a entrada em relação a ele (altere o endereço IP para refletir o da sua máquina) e
Sincronize os repositórios:

eco "Deb [Trusted = Sim] http: // 10.1.1.4/Debian ./"| tee -a/etc/apt/fontes.Lista> /dev /null 

Certifique -se de adicionar o acima [Trusted = sim] Para evitar a seguinte mensagem de erro:

 Release 'não tem um arquivo de liberação. N: Atualizar desse repositório não pode ser feito com segurança e, portanto, está desativado por padrão. 

Sincronize repositórios:

$ sudo apt-get update IGN: 1 http: // 10.1.1.4/Debian ./Inrelease Ign: 2 http: // 10.1.1.4/Debian ./Libere ign: 3 http: // 10.1.1.4/Debian ./Pacotes IGN: 3 http: // 10.1.1.4/Debian ./Pacotes IGN: 3 http: // 10.1.1.4/Debian ./Pacotes Get: 3 http: // 10.1.1.4/Debian ./ Pacotes [303 B]

Para instalar nosso pacote, agora podemos usar a ferramenta APT-Get:

$ sudo apt-get install linuxconfig listas de pacotes de leitura… FEITO CONSTRUIR DE DEPENDÊNCIA LEITURA DE ESTADO DE REATIMENTAÇÃO. Precisa obter 3174 b de arquivos. Após esta operação, 1.049 kb de espaço de disco adicional será usado. Aviso: os pacotes a seguir não podem ser autenticados! LinuxConfig Instale esses pacotes sem verificação [S/N]? y

Executar:

$ linuxconfig linuxconfig.org

Para remover o pacote do sistema, basta executar:

$ sudo apt-get Remova listas de pacotes de leitura LinuxConfig… FEITO CONSTRUIR DE DEPENDÊNCIA LEITURA DE REATIVA DE ESTADO ... Após esta operação, o espaço em disco de 1049 kb será libertado. Você quer continuar? [Y/n] y

Tutoriais do Linux relacionados:

  • Uma introdução à automação, ferramentas e técnicas do Linux
  • Coisas para instalar no Ubuntu 20.04
  • Mastering Bash Script Loops
  • Mint 20: Melhor que o Ubuntu e o Microsoft Windows?
  • Como trabalhar com a API de Rest WooCommerce com Python
  • Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
  • Como criar arquivos temporários usando MKTemp no Linux
  • Como reconstruir um pacote usando o sistema de construção do arco Linux
  • Como criar um aplicativo Flatpak a partir do zero
  • Como trabalhar com grupos de pacotes DNF