This is a read only archive of pad.okfn.org. See the
shutdown announcement
for details.
Empacotamento_Passos
gigt Opcional: Crie um usuário na máquina separado para realizar o empacotamento.
- * su <usuario> (Com o usuario já devidamente criado)
- * Vá para a home deste usuário
1) Ter um ambiente centos7/fedora (Utilizar o vagrant por exemplo)
2) Instalar os pacotes necessários para o empacotamento:
- * rpm-build
- * mock.noarch (Para instalar o mock, adicionar o repositório do epel)
- * redhat-rpm-config
3) Clone o repositório aonde estão os specs do pacotes
4) Para gerar os diretórios necessários para realizar o empacotamento entre no diretório
- do pacote em questão
- -> rpmbuild -ba <nome do software>.spec. Isso criará um diretório chamado rpmbuild na home do
5) Baixar repositório do upstream(source, ex: noosfero)
6) Instale as dependências necessárias
7) Gerar tarball(source) a partir de uma tag/branch
- -> A partir de uma tag é possível criar um branch apenas com o código da tag. E a partir da ai aplicar códigos de outras
- branchs na branch da tag, aplicando apenas o que for necessário.
- -> git tag (lista as tags)
- -> git tag (lista as tags)
- -> mude para a branch da tag
- -> git tag (lista as tags)
- -> git checkout {nome da tag}
- -> Para atualizar com um commit específico, use o comando git cherry-pick
- -> Para mais informações: man git tag.
- -> Para atualizar localmente a lista de tags do remote: git fetch --tags
- -> Para gerar a tarball
- -> Altere a versão do pacote no arquivo .spec no repositório pkg-rpm e no respectivo projeto.
- * LEMBRE-SE QUE CASO O UPSTREAM MUDE, DEVEMOS ALTERAR A VERSÃO DO PACOTE E COLOCAR A RELEASE COMO 1(ZERAR A RELEASE).
- * CASO APENAS O PACOTE MUDE, A VERSÃO É MANTIDA E A RELEASE É INCREMENTADA.
- -> No upstream: git archive --format=tar.gz --prefix={versao do pacote} > noosfero{versão do pacote}.tar.gz.
- -> Ex: Se a versão ta tag for 1.2+spb1, então ficará: git archive --format=tar.gz --prefix=1.2+spb1/ {nome da tag} > noosfero-1.2+spb1.tar.gz.
- -> Se o comando acima funcionar corretamente a tarball sera gerada no diretório em que o comando foi executado
- -> Mova a tarball para o diretório SOURCES dentro de rpmbuild
Com as dependências instaladas no ambiente, os diretórios do rpmbuild criados, a versão do spec devidamente atualizada, e a tarball do upstream gerada rode o comando
rpmbuild -ba <nome do software>.spec para gerar o pacote final;
- -> Se o comando acima funcionar corretamente um pacote será gerado no diretório ~/rpmbuild/RPMS/noarch/
* Testando o pacote gerado usando a biblioteca mock
- -> Para instalar no centos:
- sudo yum install epel-release
- sudo yum install mock
- É preciso instalar as dependencias do pacote que estamos testando, No caso do do noosfero ele depende dos pacotes
- tango-icon-theme e noosfero-deps. A maneira paleativa que encontramos para instalar as dependências, foi baixando os pacotes e
- através da flag --install do mock, instalar as dependentcias dentro do chroot criado.
- -> sudo mock --install <dependência> Obs: Verificar se o mock permite a adição de repositórios, para que não seja necessário baixar a dependência
- na mão.
- Após instalar as dependências, testaremos o pacote com o seguinte comando:
- -> sudo mock --rebuild --no-clean <nome do pacote>.src.rpm
- * A opção --no-clean impede que o chroot seja limpo antes da instalação, mantendo as dependências dentro do chroot.
Empacotando o noosfero-spb
- * Dentro do repositório noosfero-spb
- -> git submodule init
- -> git submodule update
- -> make dist (Vai gerar a tarball do noosfero-spb)
*Para dar privilégio de administrador para um usuário:
1)Fazer login na Social
2)Ir para o diretório do noosfero em /usr/lib/noosfero
3)Abrir um console "sudo su noosfero -c "bundle exec rails c production"
- ->Com o usuário criado de antemão use o comando "Environment.default.add_admin user.person", onde o user será o usuário desejado
- *Testando Pacote pelo Converge na Social
- Para que alteração no pacote seja instalada pelo converge é necessário que o pacote atualizado esteja disponivel em um repositório .Dessa maneira alternativa utilizada implica em "subir" o pacote
- para o repositorio do fedora , Fedora copr(https://copr.fedoraproject.org/coprs/ribeiro/athos-spb/)
- No copr o upload do pacote só é feito com um endereço com acesso externo.Assim , os arquivos gerados pelo build localmente devem ser colocados no diretório configurado com apache em uma vm com acesso externo.
- O passo a passo a seguir presume que o usuário já um usuário no COPR bem como um projeto chamado SPB já criado.
- ->Criando um novo Build
- Selecione o projeto "SPB"
- Clique na aba new project
- coloque o endereço da vm com acesso externo
Feito isso o build será gerado ( pode demorar um pouco) , o próximo passo agora é adicionar o endereço do pacote no reposítório no repositório local do servidor SOCIAL.
>Adicionando repositório no SERVIDOR SOCIAL
- Ainda no repositório FEDORA copr , após o build ser gerado , clique em "OVERVIEW".Será apresentado o último build estável.
- Clique em "Repo download". Em seguida copie as informações apresentadas.
- Localmente no servidor SOCIAL acesse o repositório yum.repo.d e execute wget [ endereço copiado em repo download]
- Altere o arquivo recém baixado pelo wget adicionando o seguitnte valor : cost = 900 . Dessa maneira o repositório copr terá prioridade.
- Em seguida execute: rake converge:social SPB_ENV=[ambiente_desejado]
- Empacotamento COLAB
- Execute o comando rpmdev-setuptree
- Esse comando irá criar os diretórios necessários para geração do build
- Lembrete* Mudar estrutura de diretório dos arquivos que estão no lappis.unb.br/source
- Subindo pacotes para o OBS
- *Para obs sobe-se o arquivo spec e source(tarball)
- OBS:
- -> O primeiro passo e baixar os repositórios do obs para o ambiente local. Dentro de pkg-rpm execute: