Pesquisa de site

Crie um "repositório de pacotes .deb" no Sourceforge.net usando a ferramenta "Reprepro" no Ubuntu


Reprepro é uma pequena ferramenta de linha de comando para criar e gerenciar repositórios .deb facilmente. Hoje mostraremos como criar repositórios de pacotes Debian facilmente usando reprepro e como carregue-o no Sourceforge.net usando o comando rsync.

Etapa 1: Instale o Reprepro e gere a chave

Primeiro, instale todos os pacotes necessários, usando o seguinte comando apt-get.

sudo apt-get install reprepro gnupg

Agora você precisa gerar uma chave gpg usando gnupg, para fazer isso, aplique este comando.

gpg --gen-key

Ele irá fazer algumas perguntas, como o tipo de chave que você deseja, por quanto tempo a chave deve ser válida, se você não sabe o que responder, basta clicar em Enter para as opções padrão (recomendado ).

Claro, ele irá pedir um nome de usuário e uma senha, lembre-se disso, pois precisaremos deles mais tarde.

gpg (GnuPG) 1.4.14; Copyright (C) 2013 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Please select what kind of key you want:
   (1) RSA and RSA (default)
   (2) DSA and Elgamal
   (3) DSA (sign only)
   (4) RSA (sign only)
Your selection? 
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048) 
Requested keysize is 2048 bits
Please specify how long the key should be valid.
         0 = key does not expire
        = key expires in n days
      w = key expires in n weeks
      m = key expires in n months
      y = key expires in n years
Key is valid for? (0) 
Key does not expire at all
Is this correct? (y/N) Y

You need a user ID to identify your key; the software constructs the user ID
from the Real Name, Comment and Email Address in this form:
    "Heinrich Heine (Der Dichter) <[email >"

Real name: ravisaive
Email address: [email 
Comment: tecmint
You selected this USER-ID:
    "Ravi Saive (tecmint) <[email >"

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
You need a Passphrase to protect your secret key.

We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.

+++++
gpg: key 2EB446DD marked as ultimately trusted
public and secret key created and signed.

gpg: checking the trustdb
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: depth: 0  valid:   1  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 1u
pub   2048R/2EB446DD 2014-06-24
      Key fingerprint = D222 B1C9 342E 5911 02B1  9147 3BD6 7918 2EB4 46DD
uid                  Ravi Saive (tecmint) <[email >
sub   2048R/7EF2F750 2014-06-24

Agora sua chave será gerada, para verificar se sim, execute este comando como privilégios de root.

sudo gpg --list-keys
Saída de amostra
/home/ravisaive/.gnupg/pubring.gpg
----------------------------------
pub   2048R/2EB446DD 2014-06-24
uid                  ravisaive (tecmint) <[email >
sub   2048R/7EF2F750 2014-06-24

Etapa 2: Crie um repositório de pacotes e uma chave de exportação

Vamos começar o trabalho agora de criação do repositório, primeiro você tem que criar algumas pastas, nosso repositório estará no diretório /var/www/apt, então vamos criar algumas pastas.

sudo su
cd /var/www
mkdir apt
mkdir -p ./apt/incoming 
mkdir -p ./apt/conf
mkdir -p ./apt/key

Agora você precisa exportar a chave criada para a pasta do repositório e executar.

gpg --armor --export username [email  >> /var/www/apt/key/deb.gpg.key

Observação: substitua nome de usuário pelo nome de usuário digitado na etapa acima e [email protegido] pelo seu e-mail.

Precisamos criar um arquivo chamado “distributions” dentro de /var/www/apt/conf.

touch /var/www/apt/conf/distributions

Adicione as seguintes linhas ao arquivo de distribuição e salve o arquivo.

Origin: (yourname)
Label: (name of repository)
Suite: (stable or unstable)
Codename: (the codename for the distribution you are using, like trusty)
Version: (the version for the distribution you are using, like 14.04)
Architectures: (the repository packages  architecture, like i386 or amd64)
Components: (main restricted universe multiverse)
Description: (Some information about the repository)
SignWith: yes

A seguir, teremos que criar a árvore do repositório, para isso execute esses comandos.

reprepro --ask-passphrase -Vb /var/www/apt export
Saída de amostra
Created directory "/var/www/apt/db"
Exporting Trusty...
Created directory "/var/www/apt/dists"
Created directory "/var/www/apt/dists/Trusty"
Created directory "/var/www/apt/dists/Trusty/universe"
Created directory "/var/www/apt/dists/Trusty/universe/binary-i386"
FF5097B479C8220C ravisaive (tecmint) <[email > needs a passphrase
Please enter passphrase:
Successfully created '/var/www/apt/dists/Trusty/Release.gpg.new'
FF5097B479C8220C ravisaive (tecmint) <[email > needs a passphrase
Please enter passphrase:
Successfully created '/var/www/apt/dists/Trusty/InRelease.new'

Etapa 3: adicionar pacotes ao repositório recém-criado

Agora prepare seus pacotes .deb para serem adicionados ao repositório. Vá para o diretório /var/www/apt, você deve fazer isso toda vez que quiser adicionar pacotes.

cd /var/www/apt
reprepro --ask-passphrase -Vb . includedeb Trusty /home/ravisaive/packages.deb

Nota: Substitua trusty pelo codinome que você digitou para o repositório no arquivo de distribuição e substitua /home/username/package .deb com o caminho para o pacote, será solicitada a senha para inserir.

Saída de amostra
/home/ravisaive/packages.deb : component guessed as 'universe'
Created directory "./pool"
Created directory "./pool/universe"
Created directory "./pool/universe/o"
Created directory "./pool/universe/o/ojuba-personal-lock"
Exporting indices...
FF5097B479C8220C ravisaive (tecmint) <[email > needs a passphrase
Please enter passphrase:
Successfully created './dists/Trusty/Release.gpg.new'
FF5097B479C8220C ravisaive (tecmint) <[email > needs a passphrase
Please enter passphrase:
Successfully created './dists/Trusty/InRelease.new'

Seu pacote é adicionado ao repositório para removê-lo.

reprepro --ask-passphrase -Vb /var/www/apt remove trusty  package.deb

E, claro, você precisa modificar o comando com o nome do seu pacote e o codinome do repositório.

Etapa 4: Carregar o Repositório para Sourceforge.net

Para fazer upload do repositório para Sourceforge.net, você precisa ter uma conta em execução lá, é claro, e um projeto em execução, vamos supor que você deseja fazer upload do repositório para http://sourceforge .net/projects/myfoo/testrepository onde myfoo é o nome do seu projeto (nome UNIX, não URL, não o título) e testrepository é a pasta onde você deseja fazer upload dos arquivos. Faremos isso usando rsync comando.

rsync -avP -e ssh /var/www/apt/ [email :/home/frs/project/myfoo/testrepository/

Nota: Substitua username pelo seu nome de usuário no sourceforge.net e myfoo pelo nome UNIX do seu projeto e testrepository pela pasta na qual você deseja armazenar os arquivos.

Agora que seu repositório foi carregado em http://sourceforge.net/projects/myfoo/testrepository, para adicioná-lo ao seu sistema instalado, primeiro você tem que importar a chave do repositório, ela estará em < b>/var/www/apt/key/deb.gpg.key, mas esse é um caminho local e os usuários do seu repositório não poderão adicioná-lo aos seus sistemas, é por isso que estaremos importando a chave do sourceforge.net.

sudo su
wget -O - http://sourceforge.net/projects/myfoo/testrepository/apt/key/deb.gpg.key | apt-key add -

Você pode adicionar o repositório facilmente agora ao seu sistema, abra /etc/apt/sources.list e adicione esta linha.

deb http://sourceforge.net/projects/myfoo/testrepository/apt/key/deb.gpg.key trusty main

Nota: Substitua myfoo pelo nome UNIX do seu projeto, trusty pelo codinome do seu repositório, testrepository pela pasta na qual você carregou os arquivos e main pelos componentes do repositório que você adicionou o arquivo de distribuições.

Em seguida, execute o seguinte para atualizar a lista de repositórios.

sudo apt-get update

Parabéns! Seu repositório está ativo! Agora você pode instalar pacotes facilmente a partir dele, se desejar.