17. Como configurar uma nova arquitetura
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 |  | Próxima
16. Como regerar pacotes baseados em outra versão menor do FreeBSD | Principal | 18. 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>.