Em primeiro lugar, será necessário que já esteja em funcionamento seu servidor HTTP ou FTP, já com a árvore dos pacotes de sua distribuição e contendo o diretório "base". É necessário também verificar se os arquivos em seu servidor estão disponíveis para download.
A estrutura de diretórios deverá conter:
main directory
Deverá conter os arquivos de licença, diretórios com os fontes dos pacotes, diretórios com os binários dos mesmos, exatamente como o diretório raiz do CD.
vendor directory
Esta é uma base para os outros diretórios que irão conter conter os pacotes binários da versão indicada.
repositories
São os diretórios dentro do "vendor directory" que conterão os pacotes. Seus nomes devem começar com RPMS, por exemplo "RPMS.main", "RPMS.extra", até mesmo apenas "RPMS".
Com estes diretórios será possível configurar seu /etc/apt/sources.list para acessar seu próprio repositório. Exemplo:
Em /etc/apt/sources.list inclua a linha:
rpm http://joes.box.com/stuff 5.1/conectiva cds security
|
Sendo:
"joes.box.com" o endereço do http disponível;
"stuff" o diretório base a todos os outros (main directory);
"5.1/conectiva" o diretório correspondente a versão, contendo os binários e source da mesma (vendor directory);
"cds" e "security" os complementos de diretórios RPMS, que serão RPMS.cds e RPMS.security;
Para este modelo, existiria uma árvore de diretórios como a seguinte:
/home/httpd/stuff
/home/httpd/stuff/5.1
/home/httpd/stuff/5.1/lots-of-README-and-LICENSE-files
/home/httpd/stuff/5.1/SRPMS
/home/httpd/stuff/5.1/conectiva
/home/httpd/stuff/5.1/conectiva/base
/home/httpd/stuff/5.1/conectiva/base/hdlist.cds
/home/httpd/stuff/5.1/conectiva/base/hdlist.security
/home/httpd/stuff/5.1/conectiva/base/pkglist.cds.bz2
/home/httpd/stuff/5.1/conectiva/base/pkglist.security.bz2
/home/httpd/stuff/5.1/conectiva/RPMS.cds/
/home/httpd/stuff/5.1/conectiva/RPMS.security/
/home/httpd/stuff/5.1/conectiva/etc-etc
|
Todo repositório precisa de um arquivo index de pacotes, que conterá a lista dos pacotes disponíveis, sua descrição e dapendências dos mesmos. Este arquivo deve ter o nome pkglist e deve ser compactado em formato bzip2. Para gerar este arquivo usa-se o comando genbasedir que tem a sintaxe a seguir:
[root@localhost]# genbasedir [-s | --sign] [--topdir=dir] distribution component
|
Sendo:
-s ou --sign o parametro utilizado que indica que os pacotes contém assinaturas gpg, o que leva a uma confirmaçãdo da assinatura "passphrase". Será criado um arquivo com o nome hashfile.gpg;
--topdir o parametro que indica o diretório base do serviço utilizado, indicando onde seu repositório é encontrado. É o correspondente a URL especificada em seu sources.list;
distribution é o nome da distribuição GNU/Linux. É também utilizado como identificador da versão.
component(s) são os diretórios RPMS onde seus arquivos rpm estão alocados.
Para o repositório indicado em nosso exemplo:
[root@localhost]# genbasedir --topdir=/home/httpd/stuff 5.1/conectiva cds
|
[root@localhost]# genbasedir --topdir=/home/httpd/stuff 5.1/conectiva security
|