Procedimentos para Construção de Pacotes
Anterior |  | Próxima

# 17 Como configurar uma nova arquitetura

> Nota: Os passos iniciais precisam ser feitos usando sudo.

- Crie um novo usuário e grupo `ports-`arch``.

-     mkdir /var/portbuild/arch

- Crie um novo sistema de arquivo zfs:

      zfs create -o mountpoint=/a/portbuild/arch a/portbuild/arch

-     chown ports-arch:portmgr /var/portbuild/arch;
      chmod 755 /var/portbuild/arch;
      cd /var/portbuild/arch

- Crie e popule o diretório `.ssh`.

- Crie um diretório para os `logs` de compilação e para os `logs` de erros:

      mkdir /dumpster/pointyhat/arch/archive

  > Nota: É possível que `/dumpster/pointyhat` não tenha mais espaço suficiente. Neste caso, crie o diretório dos arquivos como `/dumpster/pointyhat/`arch`/archive` e crie um `link` simbólico para ele. (Isso precisa ser resolvido.)

- Crie um `link` para o diretório acima para o servidor web:

      ln -s /dumpster/pointyhat/arch/archive archive

> Nota: Os próximos passos são mais fáceis de serem realizados como o usuário `ports-`arch``.

- No diretório `/var/portbuild/`arch`` execute:

      mkdir clients

- Popule o diretório `clients` como de costume.

-     mkdir loads

-     mkdir lockfiles

- Crie um `make.conf` local. Nos casos mais comuns você pode executar:

      ln ../make.conf ./make.conf

- Crie um arquivo vazio `mlist`.

- (Necessário apenas para o antigo código base) Crie o `pnohang.`arch``. (O modo mais fácil é fazer isso em um cliente, e depois copiar o arquivo de volta):

      cc pnohang.c -o pnohang-arch

- Crie um novo arquivo `portbuild.conf` a partir de um existente para uma outra arquitetura.

- Crie os arquivos `portbuild.`machinename`.conf` personalizando-os de forma adequada.

-     cd .ssh && ssh-keygen

- Edite o arquivo `.ssh/config` para tornar mais conveniênte o uso do ssh.

- Crie o diretório de configuração privada:

      mkdir /var/portbuild/conf/arch

- Crie os `scripts` `dotunnel.*` que forem necessários dentro do diretorio acima.

> Nota: Mais uma vez usando sudo:

- Informe o qmanager sobre a arquitetura:

      python path/qmanager/qclient add_acl name=ports-arch uidlist=ports-arch gidlist=portmgr sense=1

- (Necessário apenas para o novo código base): Adicione a `arch` na variável `SUPPORTED_ARCHS` do arquivo `/var/portbuild/`arch`/server.conf`.

- (Necessário apenas para o antigo código base): Edite o `/var/portbuild/scripts/buildenv`.

- Adicione o diretório `arch` no `/var/portbuild/scripts/zbackup` e no `/var/portbuild/scripts/zexpire`.

- Necessário apenas para o antigo código base): Como no procedimento para criação de um novo `branch`: crie os `links` para o servidor web no diretório `/var/portbuild/errorlogs/`:

      ln -s ../arch/branch/builds/latest/bak/errors arch-branch-full
      ln -s ../arch/branch/builds/latest/bak/logs arch-branch-full-logs
      ln -s ../arch/branch/builds/latest/errors arch-branch-latest
      ln -s ../arch/branch/builds/latest/logs arch-branch-latest-logs
      ln -s ../arch/branch/builds/latest/bak/packages arch-branch-packages-full
      ln -s ../arch/branch/builds/latest/packages arch-branch-packages-latest

- Crie mais dois `links` simbólicos para o servidor web dentro do diretório `/var/portbuild/errorlogs/`:

      ln -s ../arch/archive/buildlogs arch-buildlogs
      ln -s ../arch/archive/errorlogs arch-errorlogs

> Nota: Novamente como `ports-`arch``:

- Para cada `branch` que será suportado, faça o seguinte:

  - Inicie a compilação para o `branch` com:

        build create arch branch

  - Crie o `bindist.tar`.

> Nota: Uma última vez usando o sudo:

- (Necessário apenas para o antigo código base): Só depois que a primeira execução do dopackages for feita para a arquitetura: adicione a arquitetura ao `/var/portbuild/scripts/dopackagestats`.

- Adicione uma entrada `arch` apropriada para o `/var/portbuild/scripts/dologs` no `crontab` do usuário root. (Esta é uma solução paliativa)

Anterior | Principal | Próxima
Como regerar pacotes baseados em outra versão menor do FreeBSD |  | Como configurar um novo nó principal (instância do pointyhat)

Este, e outros documentos, podem ser obtidos em ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Para perguntas sobre FreeBSD, leia a documentação antes de contatar <questions@FreeBSD.org>.
Para perguntas sobre esta documentação, envie e-mail para <doc@FreeBSD.org>.