Menu ▾ ▴

instalacao_delphi

Mobius One

Home > Instalação > Instalação Manual > Delphi

Instalação manual no Delphi

Vale para a 1.1 em diante · Nível: iniciante

Em uma frase: compilar os pacotes do RAL dentro do Delphi e instalar os
componentes na paleta.

Você vai precisar: os fontes do RAL baixados com os submódulos
(Instalação Manual) e as dependências do motor que vai usar
(Como instalar as dependências).

[!NOTE]
Só vai escrever código, sem arrastar componentes no formulário? Pule para o
passo 6: basta o library path.

Passo a passo

  1. Feche todos os projetos e abra pkg\Delphi\PascalRALComponents.groupproj.
  2. No Projects (à direita), confira a plataforma (Target Platform) de cada
    pacote: Win32 para a IDE de 32 bits (a comum) e Win64 para a IDE de
    64 bits. É a plataforma da IDE, não a do seu programa.
  3. Compile e instale nesta ordem (clique direito no pacote):
# Pacote O que fazer Obrigatório?
1 PascalRAL Build (só compilar) sim
2 PascalRALDsgn Build e Install sim
3 um motor, ao menos (tabela abaixo) Build e Install sim, um
4 RALWizard Build e Install não: assistente de novo projeto
5 RALDBPackage Build e Install só para banco de dados (DBWare)
6 RALDBFireDACLink ou RALDBZeosLink Build e Install só com o RALDBPackage
7 RALDBFireDACObjects Build e Install só para o DAO do FireDAC
8 RALBSONStorage Build e Install só para o formato BSON
9 RALBrotliCompress, RALZStdCompress Build e Install só para compressão brotli/zstd

Na 2.0 🚧 os pacotes têm outros nomes e há pacotes novos: veja a seção
Na 2.0 abaixo.

Os motores (pasta pkg\Delphi\Engine). Para escolher, veja
Qual motor escolher?.

Pacote Motor Servidor Cliente
IndyRAL Indy sim sim
SynopseRAL mORMot2 sim sim
SaguiRAL Sagui sim não
NetHttpRAL NetHTTP (Delphi XE8+) não sim
UniGUIRAL UniGUI sim não
MsQuicRAL 🚧 1.2 QUIC (MsQuic) sim sim
OkHttpRAL 🚧 1.2 OkHttp, só Android não sim
KwikRAL 🚧 1.2 QUIC no Android 8 (fora do grupo: abra o .dproj) não sim

[!WARNING]
No Indy e no FireDAC aparece uma janela dizendo que faltam pacotes (IndySystem,
IndyCore, IndyProtocols; ou os do FireDAC) e perguntando se pode adicioná-los.
Clique OK: é assim que o mesmo pacote serve para várias versões do Delphi.

  1. Crie a variável PascalRAL: Tools > Options > IDE > Environment Variables > User System Overrides > New...
  2. Variable Name: PascalRAL (maiúsculas e minúsculas contam)
  3. Variable Value: a pasta src do RAL, por exemplo C:\Fontes\PascalRAL\src
  4. Feche e abra o Delphi.
  5. Acrescente ao library path (Tools > Options > Language > Delphi > Library,
    na plataforma que for usar) um dos modelos abaixo. Sem o passo 4, troque
    $(PascalRAL) pelo caminho da pasta src.

[!WARNING]
Escolha um modelo. Pastas de motores que você não instalou causam erro de
unit não encontrada.

Mínimo, Indy + NetHTTP:

$(PascalRAL)\base;$(PascalRAL)\base\plugins;$(PascalRAL)\base\modules;$(PascalRAL)\utils;$(PascalRAL)\engine\indy;$(PascalRAL)\engine\netHTTP

Indy + NetHTTP + banco de dados com FireDAC:

$(PascalRAL)\base;$(PascalRAL)\base\plugins;$(PascalRAL)\base\modules;$(PascalRAL)\utils;$(PascalRAL)\engine\indy;$(PascalRAL)\engine\netHTTP;$(PascalRAL)\database;$(PascalRAL)\database\FireDAC

Pasta por pasta, para montar o seu:

Pasta Quando
base, base\plugins, base\modules, utils sempre
engine\indy, engine\synopse, engine\sagui, engine\netHTTP, engine\unigui, engine\cgi o motor que usar
engine\msquic, engine\okhttp, engine\kwik 🚧 1.2: o motor que usar
database + database\FireDAC ou database\Zeos banco de dados
others motor Sagui, compressão brotli/zstd e BSON
others\ZSTD, others\pascal_brotli, others\kxBSON zstd, brotli e BSON, respectivamente

Na 2.0 🚧

[!IMPORTANT]
Em desenvolvimento (2.0). Ainda não está numa versão lançada e pode mudar.

Os passos são os mesmos; mudam os pacotes e as pastas. A troca de cada nome da 1.x
está em Migrar para a 2.0.

# Pacote Pasta em pkg\Delphi O que fazer Obrigatório?
1 PascalRAL (raiz) Build sim
2 PascalRALDsgn (raiz) Build e Install sim
3 um motor, ao menos (IndyRAL, SynopseRAL...) Engine Build e Install sim, um
4 RALPluginAuthPackage Plugins Build e Install para Basic, JWT, Digest, OAuth2
5 RALPluginTLSPackage Plugins Build e Install para o certificado automático
6 RALStoragePackage Storage Build e Install para storages e banco de dados
7 RALModuleWebPackage, RALModuleSwaggerPackage Modules Build e Install para servir arquivos e Swagger (este exige o RALPluginAuthPackage)
8 RALWizardDsgn Wizard Build e Install não: assistente de novo projeto
9 RALDBPackage + RALDBDsgn Database Build o primeiro; Build e Install o segundo para DBWare
10 RALDBFireDACPackage + RALDBFireDACDsgn, ou RALDBZeosPackage + RALDBZeosDsgn Database idem com o DBWare
11 RALDBFireDACDAOPackage Database Build e Install para o DAO do FireDAC
12 RALStorageBSONPackage Storage Build e Install para o formato BSON
13 RALCompressBrotliPackage, RALCompressZStdPackage Compression Build e Install para brotli/zstd
14 RALModuleXMLPackage Modules Build e Install para XML e Storage XML (exige o RALStoragePackage)
15 RALModuleSOAPPackage + RALModuleSOAPDsgn Modules Build o primeiro; Build e Install o segundo para SOAP (servidor, cliente)

O grupo PascalRALComponents.groupproj já está nessa ordem. Não há pacote de CGI no
Delphi: o Delphi não deixa as units do Web Broker entrarem num pacote, então um
programa CGI compila o RALCGIServer direto dos fontes.

Library path mínimo, Indy + NetHTTP:

$(PascalRAL)\core;$(PascalRAL)\common;$(PascalRAL)\compress;$(PascalRAL)\crypto;$(PascalRAL)\plugins;$(PascalRAL)\engine\indy;$(PascalRAL)\engine\netHTTP
Pasta Quando
core, common, compress, crypto, plugins sempre
engine\<motor> o motor que usar; MsQuic e Sagui também bindings
plugins\auth, plugins\tls autenticação, certificado automático
storage, storage\bson storages, BSON
modules\web, modules\swagger, modules\xml, modules\soap os módulos que usar
database + database\FireDAC ou database\Zeos banco de dados
compress\zstd, compress\brotli zstd, brotli
others\ZSTD, others\pascal_brotli, others\kxBSON os submódulos de zstd, brotli e BSON

Erros comuns

Mensagem Causa O que fazer
Cannot load package ... It contains unit X, which is also contained in package Y um pacote foi compilado com a pasta src no search path do projeto do pacote tire src do search path do pacote, recompile; depois veja o próximo item
o componente sumiu da paleta depois de um erro o Delphi moveu o pacote para Disabled Packages Component > Install Packages, marque o pacote de novo
F2039 Could not create output file ... PascalRAL.bpl o pacote está carregado na IDE feche todos os projetos, ou feche a IDE e compile pela linha de comando
File not found: 'IdHTTP.dcu' (ou mormot.*, ZConnection) a dependência do motor não está instalada Como instalar as dependências
E2202 Required package 'IndyCore...' not found o .dproj cita a versão do Indy de outra IDE aceite a janela do aviso acima, ou remova a linha do Requires
ponto de entrada não encontrado ao abrir a IDE várias versões do Delphi na máquina Múltiplas versões do Delphi

Mais casos: Problemas comuns.

Veja também


Related

Wiki: Instalacao_manual
Wiki: atualizacao
Wiki: atualizar_indy
Wiki: dbware
Wiki: guia_dependencias
Wiki: instalacao_lazarus
Wiki: migrar para 2.0
Wiki: problemas comuns
Wiki: swagger
Wiki: xml