Maneira fácil de criar um pacote debian e um repositório de pacotes local
- 3321
- 94
- Randal Kuhlman
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
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
- « Como configurar um servidor Lemp no Debian 10 Buster
- Como instalar o NextCloud no Debian 10 Buster Linux »