Como faço para criar pacotes autônomos do repositório do Ubuntu?

6

É possível criar pacotes deb independentes, mesclando dependências sem reempacotamento manual?

Eu analisei essa questão mas ela realmente não responda o que estou tentando alcançar acima.

se possível, como fazer isso?

atualização 1

Nenhuma ferramenta disponível (?) Então, que tal criar um novo pacote deb contendo todos os pacotes que copiarão as dependências para o cache e executando o pacote principal. É possível?

atualização 2

O método acima parece ser impossível porque o dpkg não pode manipular mais de uma operação por vez. Alguns scripts podem fazer isso

atualização 3

esta ferramenta é muito útil, mas atualmente não suporta oneric e acima ainda esperando por uma ferramenta mais genérica

Agradecemos antecipadamente

    
por Tachyons 21.02.2012 / 14:03

7 respostas

5

Use o criador super deb. Você pode criar pacotes independentes para o Ubuntu 11.04. Para mais detalhes, consulte o site oficial. link

    
por prasadkumar013 28.02.2012 / 14:02
4

Não. Se você quiser um único pacote sem dependências, precisará reempacotá-lo.

Para entender como os pacotes funcionam, leia o guia de embalagem do debian .

    
por psusi 24.02.2012 / 20:11
3

Se todas essas coisas já estiverem no repositório do Ubuntu, então tudo o que você realmente quer é um pacote meta que cause sua instalação, certo?

Você realmente só precisa criar um pacote quase vazio com o dh_make. Diga que você quer um único binário e um pacote nativo. Em um diretório vazio:

dh_make --native --indep --packagename --defaultless your-thing

Em seguida, edite o debian / control, e na seção do pacote binário (o segundo) Adicione todos os pacotes que você deseja instalar na seção Depends: separados por vírgulas.

Em seguida, crie o pacote com

debuild binary

Se você quiser enviá-lo para um PPA no Launchpad para que outras pessoas possam acessá-lo com facilidade:

dch --release --distribution oneiric
debuild -S

Claro, mude onírico para o que você deseja empacotar isso. Então, no diretório acima, você deve ter

your-thing_1.0_source.changes

Depois de criar um PPA, basta fazer

dput ppa:yourusername/ppaname your-thin_1.0_source.changes

E qualquer um que instalar esse pacote também baixará e instalará todos os outros bits.

    
por SpamapS 28.02.2012 / 00:42
3

Se eu fosse fazer uma invasão, faria o seguinte:

  • Baixe e extraia todos os pacotes
  • Guarde a cópia do pacote principal da pasta DEBIAN, coloque os outros 'de um lado
  • Altere o arquivo DEBIAN/control para
    • Relacione cada pacote que você está fornecendo na Provides line
    • Adicione Conflicts entradas para os pacotes que você está substituindo
    • Remova as dependências da linha Dependencies
  • Altere os scripts postinst e preinst , prerm e postrm para que sua nova cópia manipule as coisas para todos os pacotes. Isso não é simples porque você precisa entender o que cada pacote está fazendo em cada etapa.
  • Reembale a coisa toda de volta novamente para ter todos os arquivos e os novos arquivos DEBIAN.

No final, você deve ter algo que possa instalar, mas não é ótimo. Você terá que repetir manualmente essas etapas sempre que um dos pacotes originais for atualizado.

Os sistemas que mantêm seus sistemas de embalagem originais são muito melhores. Você seria melhor apenas enviar débitos separados ao redor. Vai levar menos tempo e será mais robusto.

    
por Oli 28.02.2012 / 12:53
1

Claro que é possível, mas não conheço nenhuma ferramenta que faça isso por você. Então o reempacotamento manual é o caminho a seguir.

    
por tumbleweed 25.02.2012 / 09:18
1

Disclaimer: Eu não tentei isso, este é apenas o meu esboço de uma solução.

Você poderia baixar todas as dependências para um diretório, transformá-lo em um repositório debian, criar uma imagem ISO do repositório e depois distribuir o ISO.

Você então montaria o ISO como um dispositivo de loopback, e instruiria o apt para usar o diretório montado como uma fonte de pacotes - assim como você pode usar o seu disco de instalação do Ubuntu como um repositório.

Parece muito trabalho, mas você acabaria com um único arquivo redistribuível que contém todas as dependências, sem que seja necessário reempacotar os arquivos deb.

    
por Lakritsbollar 25.02.2012 / 11:29
0

se eles não tiverem conectividade 'boa', mas ainda assim alguns, você pode compartilhar o diretório / var / cache / apt / archives, que será usado ao invés de baixar novamente o arquivo.

Este método não resolve o problema de como sincronizar o índice do repositório.

    
por ithkuil 21.02.2012 / 14:08