Como criar rapidamente um repositório local apt para pacotes aleatórios usando uma distribuição linux baseada no Debian?

19

Algumas situações exigem a instalação manual de um pacote local usando dpkg -i <packagename> . Às vezes, pode ser útil aproveitar a funcionalidade de apt com esse pacote, então a pergunta é:

Como você rapidamente cria um repositório local para pacotes aleatórios usando uma distribuição linux baseada no Debian - como o Xubuntu 13.04 / Ubuntu?

    
por jus cogens prime 17.08.2013 / 08:03

2 respostas

29

Isso deve ser diferenciado da situação em que você está tentando replicar uma árvore completa de pacotes um repositório oficial e prioridades de fontes de ajuste fino . Pacotes aleatórios significam pacotes virtuais, pacotes que são compilados localmente ou copiados de forma gradativa para propósitos de teste. Aqui está uma configuração simples com base na documentação obsoleta .

Primeiro, crie um diretório para hospedar os pacotes:

mkdir <packagedir>

Em seguida, mova seus arquivos de pacote .deb para lá. Execute este comando no diretório acima do que acabamos de criar (certifique-se de que as permissões permitam isso!):

dpkg-scanpackages packagedir | gzip > packagedir/Packages.gz

Agora crie um arquivo com extensão .list em /etc/apt/sources.list.d/ com o conteúdo:

deb [trusted=yes] file:///path_to_dir_above_packagedir packagedir/

e atualize o banco de dados apt:

apt-get update

Neste ponto, os pacotes em nosso repositório local podem ser instalados como qualquer outro pacote usando apt-get install <packagename> . Quando novos pacotes são adicionados ao repositório local, o comando dpkg-scanpackages prescrito deve ser emitido novamente para atualizar o arquivo Packages.gz e apt deve ser atualizado antes que os novos pacotes sejam disponibilizados. Espero que isso seja útil para fins de testing .

    
por 08.09.2018 / 00:02
3

Se você quiser criar um repositório com a estrutura completa necessária para ferramentas como o debootstrap, a maneira mais simples que encontrei é:

  1. Crie um diretório de repositório.

    # mkdir -p /opt/debian
    
  2. Crie um subdiretório conf.

    # mkdir /opt/debian/conf
    
  3. Crie um arquivo / opt / debian / conf / distributions com conteúdo como este (ajuste conforme apropriado para a distribuição que você está usando):

    Label: Local APT repository
    Codename: jessie
    Architectures: amd64
    Components: main
    Description: Local APT repository for debootstrap
    
  4. Importe seu pacote com reprepro.

    # reprepro -b /opt/debian includedeb jessie /path/to/package.db
    
  5. Importe vários pacotes com um shell for-loop, por exemplo, tudo do seu cache do APT:

    # cd /var/cache/apt/archives
    # for DEB in *.deb; do reprepro -b /opt/debian includedeb jessie $DEB; done
    

Isso criará um arquivo não assinado. Pode ser usado com o debootstrap com a opção --no-check-gpg.

    
por 22.08.2016 / 21:03