Deploying Your Application/pt
│
English (en) │
español (es) │
français (fr) │
português (pt) │
Instaladores para Windows
InnoSetup
O Inno Setup é um instalador free para programas Windows. Pode ser usado completamente sem encargos, mesmo quando distribuído com aplicações comerciais. Fontes completos estâo disponìveis (Borland Delphi 2.0-5.0). (http://www.jrsoftware.org/).
Suporta todas as versões do Windows em uso hoje -- Windows 95, 98, 2000, 2003, XP, Me, NT 4.0. O instalador tem a habilidade de comparar informações de versão de arquivo, substituir arquivos in-use, usar contagem de arquivo compartilhado, registrar DLL/OCX e bibliotecas de tipo e instalar fontes. Criação de atalhos em qualquer lugar, incluindo o Menu Iniciar e a Área de Trabalho. Criação de entradas de registro e de arquivos INI. Pascal Scripting Engine integrada. Suporte para instalação multilíngüe. Suporte para senha e instalações encriptadas. Instalação e desinstalação silenciosas.
O Inno Setup tem copyrigt, não é um software de domínio público. Existem algumas restriçôes na distribuiçâo e uso; veja o arquivo http://www.jrsoftware.org/files/is/license.txt para detalhes.
O Inno Setup é usado para criar o instalador do Lazarus para Windows.
InstallJammer
InstallJammer, um instalador GUI multiplataforma e de código aberto, desenhado para ser completamente cross-plataforma e funcionar em Windows e na maioria das versões de UNIX, com suporte eventual a macOS.
HJ-Install
HJ-Install é um instalador freeware para Windows 95, 98 ME, NT 4.0, 200 e XP. Ele foi criado com intenções de instalar pela internet, por CD-Rom ou por floppy disk único ou múltiplo, mas pode também ser usado em situações de rede e como uma scripting engine stand-alone. O instalador é pequeno e adiciona apenas 138 Kb. Não suporta modificações no registro e arquivos INI, ou desinstalação. Veja em http://www.freebyte.com/hjinstall/
LizaJet Installer
O LizaJet Installer é um instalador comercial, mas uma edição free está disponível. Usa Object Pascal para script. Veja em http://www.lizajet.com
NSIS (Nullsoft Scriptable Install System)
Um sistema de código aberto profissional para criar instaladores Windows. Um instalador NSIS completo tem um overhead de apenas 34 Kb. Veja em http://nsis.sourceforge.net/Main_Page and http://hmne.sourceforge.net/
Grupo de Ferramentas para Windows Installer XML (WiX)
Um grupo de ferramentas que constrói pacotes de instalação para Windos de código fonte XML. Elas suportam um ambiente de linha de comando que os desenvolvedore podem integrar em seus processos que construção para construir pacotes de instalação MSI e MSN. Veja em http://wix.sourceforge.net/
Instaladores para Unix
Criando um pacote RPM em Linux
No Linux, a melhor maneira de distribuir aplicações é usando o sistema de pacotes nativo. Dos muitos sistemas de pacotes disponíveis, o RPM (RedHat Package Manager) é o formato mais comumente utilizado e é definido como o padrão na Linux Standard Base.
Para criar um arquivo RPM, você precisa criar um arquivo texto spec com a informação necessária para construir o software e também um ambiente para construir aquele spec. O melhor editor para criar pacotes RPM é o Emacs, porque ele reconhece a extensão spec, faz a synthax-highlight do texto de maneira apropriada e tem até um item de menu para construir pacotes RPM.
Configurando o seu ambiente de construção
Pacotes RPM são instalados como root no sistema base (/ directory), mas um acidente como root pode destruir sua máquina. Para evitar isso, pacotes podem ser construídos como uso normal. O processo de construção inclui uma instalação real, para se certificar e que os pacotes funcionam, mas esta instalação é feita para um diretório root falso representado pela variável $RPM_BUILD_ROOT.
Primeiro vá ao diretório home (ou outro diretório dentro dele) e crie a seguinte estrutura de diretório:
RPM
RPM/BUILD - Este diretório é utilizado pelo RPM para construir o pacote.
RPM/RPMS - Aqui você pode encontrar RPMs binários depois de construí-los.
RPM/SOURCES - Ponha seus arquivos comprimidos tar e patches aqui.
RPM/SPECS - Ponha todos os seus arquivos spec aqui.
RPM/SRPMS - Here you can find source RPMs after you build them.
Next you will need to create a configuration file to tell rpm builder software where he can find your build directories. Go to your home directory and create a file named .rpmmacros and place the text bellow on it. Make sure to change the directories to the correct ones on your system.
%_topdir /home/felipe/RPM/ %_tmppath /home/felipe/tmp %_signature gpg %_gpg_name Mandrakelinux %_gpg_path ~/.gnupg
Criando um pacote somente binário
A maneira mais fácil de criar pacotes RPM é fazêe-lo instalar software já compilado. Existem algumas razões por que nós podemos querer evitar de compilar o software em um arquivo spec:
- Requer a criação de um Makefile e eles são complexos
- Alguns pacotes não têm qualquer binário neles e não precisam ser construídos.
Each RPM Package contains a single compressed tar archive. Place the archive under the RPM/SOURCES directory. Zip, gz and bz2 compressions should work ok. The file can either contain the full source of the project if you with to create a source and a binary package or a directory with the files already in place, like if they were installed in the user machine, if you with to create a binary only package.
Para construir um pacote binário abra um arquivo spec com o editor de texto Emacs. No Emacs abra o menu RPM spec --> RPM Build --> Build Binary Package. Isto vai criar um arquivo RPM no diretório RPM/RPMS.
Bellow is a spec file that doesn't build the software. In this case the software is a Braille Course composed of html and Macromedia Flash files. Flash files cannot be build on Linux, so it's not possible to create a source package in this case.
%define name braillevirtual %define version 1.0 %define release mdk %define dir braillevirtual %define root /home/felipe/tmp/ROOT/ Summary: Curso On-Line de Braille Name: %{name} Version: %{version} Release: %{release} Vendor: Laboratório de Brinquedos da Faculdade de Educação da USP URL: www.braillevirtual.fe.usp.br License: Distribuível livremente Group: Books/Other Packager: Felipe Monteiro de Carvalho Source0: home/felipe/Programacao/SOURCES/braillevirtual.tar.bz2 BuildRoot: %{root} %description O Braille Virtual é um curso on-line público e gratuito destinado à difusão e ensino do sistema Braille de leitura e escrita para cegos a pessoas que vêem. É orientado especialmente a pais, crianças, professores e funcionários de escolas inclusivas e pretende facilitar a comunicação entre estas pessoas e as pessoas com cegueira. %prep cd $RPM_SOURCE_DIR cp braillevirtual.tar.bz2 $RPM_BUILD_DIR cd $RPM_BUILD_DIR rm -rf %{dir} rm -f braillevirtual.tar bunzip2 -d braillevirtual.tar.bz2 tar -xvf braillevirtual.tar %install rm -rf $RPM_BUILD_ROOT/usr/share/%{dir} cp -r $RPM_BUILD_DIR/%{dir} $RPM_BUILD_ROOT/usr/share/ %clean rm -rf $RPM_BUILD_DIR/*.* %files /usr/share/%{dir}/ %changelog * Mon Oct 24 2005 1.0-mdk.noarch.rpm - Nova atualização do pacote de instalação. Inclusão dos exercícios avançados. * Wed May 12 2005 1.0-mdk.noarch.rpm - Atualizei o pacote para refletir as mudanças no site. Várias pequenas mudanças. * Sun May 05 2005 1.0-1mdk.i586.rpm - O pacote de instalação do braille Virtual para linux é criado.
Creating a source and binary package
Linux distributions only accept RPM packages that can build the software. This will probably require creating build scripts and/or a Makefile. For more information see the section Deploying_Your_Application#Creating_a_Makefile_for_your_Lazarus_software.
You need to use the %build section to compile the software.
Bellow is an example of a spec file capable of building the software. Be very careful when studing this as every little detail is important and follows a precise pattern.
Name: magnifier Version: 3.2.1 Release: 1 Summary: Virtual Magnifying Glass Group: Accessibility License: GPL Version 2 URL: http://magnifier.sourceforge.net Source0: http://internap.dl.sourceforge.net/sourceforge/magnifier/magnifier-3.2.1.zip BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: fpc >= 2.0.2, lazarus >= 0.9.12 Requires: ImageMagick %description Virtual Magnifying Glass is a free, open source, multiplatform, screen magnification tool. It is simple, customizable, and easy-to-use. %prep %setup -q magnifier %build make TARGET=%{_target_cpu} %install ./install.sh DESTDIR=$RPM_BUILD_ROOT %clean rm -rf $RPM_BUILD_ROOT/ %files %defattr(-,root,root,-) /usr/share/magnifier/ /usr/bin/magnifier %changelog * Wed Feb 15 2006 Felipe Monteiro de Carvalho <felipemonteiro.carvalho at gmail.com> - 3.2-mdk.i386.rpm - The Linux RPM package is created.
Creating a Debian Package on Linux
Please, write me.
In the mean time have a look at this tutorial written by IBM.
http://www-128.ibm.com/developerworks/linux/library/l-debpkg.html
GUInseng
GUInseng is a a GTK+ based installer for Linux released under GPL.
Creating a Makefile for your Lazarus software
The following is a command line build system for a Lazarus software. This is particularly usefull if you with to create a RPM package suitable for inclusing on GNU/Linux distributions. The comments on the files should explain what each part does.
make.sh
# # Detects and parses the architecture # ARCH=$(uname -m) case "$ARCH" in "i686") ARCH="i386";; "i586") ARCH="i386";; "i486") ARCH="i386";; esac echo "Target architecture: $ARCH" # # Detects and parses the OS # OS="linux" echo "Target operating system: $OS" # # Command line to build the sofware # fpc -S2cgi -OG1 -gl -WG -vewnhi -l -Fu/usr/lib/lazarus/components/opengl/gtk2x11/ -Fi/usr/lib/lazarus/components/opengl/gtk2x11/include/ -Fu/usr/lib/lazarus/components/jpeg/ -Fu/usr/lib/lazarus/lcl/units/$ARCH-$OS/ -Fu/usr/lib/lazarus/lcl/units/$ARCH-$OS/ -Fu/usr/lib/lazarus/lcl/units/$ARCH-$OS/gtk2/ -Fu/usr/lib/lazarus/packager/units/$ARCH-$OS/ -Fu. -o./magnifier -dLCL -dLCLgtk2 magnifier.dpr
install.sh
# # Parses command line options. Currently supported options are: # # DESTDIR Destination root directory # DESTDIR="" for arg; do case $arg in DESTDIR=*) DESTDIR=${arg#DESTDIR=};; esac; done # # Does the install # # "mkdir -p" is equivalent to ForceDirectories pascal function # mkdir -p $DESTDIR/usr/share/magnifier cp ./topleft.bmp $DESTDIR/usr/share/magnifier/ cp ./topright.bmp $DESTDIR/usr/share/magnifier/ cp ./bottomleft.bmp $DESTDIR/usr/share/magnifier/ cp ./bottomright.bmp $DESTDIR/usr/share/magnifier/ cp ./top.bmp $DESTDIR/usr/share/magnifier/ cp ./left.bmp $DESTDIR/usr/share/magnifier/ cp ./bottom.bmp $DESTDIR/usr/share/magnifier/ cp ./right.bmp $DESTDIR/usr/share/magnifier/ cp ./icon3.ico $DESTDIR/usr/share/magnifier/ mkdir -p $DESTDIR/usr/bin cp ./magnifier $DESTDIR/usr/bin/
clean.sh
rm -rf *.o rm -rf *.ppu rm -rf *.pas~ rm -rf *.sh~ rm -rf *.bak rm -rf *~ rm -rf magnifier
uninstall.sh
# # Don´t use "rm -rf" in here, because you should only remove the files you created # rm -f /usr/share/magnifier/topleft.bmp rm -f /usr/share/magnifier/topright.bmp rm -f /usr/share/magnifier/bottomleft.bmp rm -f /usr/share/magnifier/bottomright.bmp rm -f /usr/share/magnifier/top.bmp rm -f /usr/share/magnifier/left.bmp rm -f /usr/share/magnifier/bottom.bmp rm -f /usr/share/magnifier/right.bmp rm -f /usr/share/magnifier/icon3.ico rm -f /usr/share/magnifier/magnifier rm -f /usr/bin/magnifier rmdir /usr/share/magnifier
Makefile
# # Targets # # # The First target is the one build when there is nothing on make command line # all: ./make.sh clean: ./clean.sh install: ./install.sh uninstall: ./uninstall.sh
macOS installers
Using PackageMaker on macOS
Most macOS programs are distributed as a disk image file (.dmg extension). Normally you download or copy a program's .dmg file to your Mac and double-click it. This "mounts" the disk image and opens it in a window on the desktop, where you'll typically see a package file (.pkg extension) that you double-click to perform the actual program installation. After installation is complete, you "unmount" (eject) the mounted disk image by dragging it to the trash. You can also delete the .dmg file by dragging it to the trash as well.
The installer .pkg file is actually a directory, as is the resulting application bundle (.app extension) that it copies to the Applications folder. To the user, .pkg and .app files look and act like ordinary files, but they're really directories whose details have been hidden from the user. You can see what's inside a .pkg or .app file by entering normal cd commands in a terminal window (for example, cd progname.app) or by Ctrl-clicking the file and choosing Show Package Contents from the popup menu.
You create .pkg files using PackageMaker, which is installed along with the XCode tools in /Developer/Applications/Utilities. With PackageMaker, you select the folder containing the files you want to package and set other installation options, for example whether a password must be entered to install the program. Note that the folder you select can be an .app file. Choose File | Create Package to create the .pkg file. You can also save your settings for future use in PackageMaker by choosing File | Save to create a .pmsp file that you name (.pmproj with later versions).
To create a .dmg file, run the macOS Disk Utility, which is installed in /Applications/ Utilities. Select Images | New | Image from Folder and choose the folder containing your .pkg file and any other files you want to include in the disk image. In the Convert Image dialog, enter the name of the .dmg file to create, select where it should be saved, and select "compressed" as the image format. The .dmg file that Disk Utility creates is then ready for distribution.
Installing X11 and GTK on macOS
GUI apps created with Lazarus that use the GTK widgetset require X11 and the GTK libraries to run. X11 is included with macOS, but may not be installed by default on a user's Mac, so you'll want to mention this in your app's read-me file.
To install the GTK libraries on a user's system, you could include instructions for using fink. Or you could create a separate .dmg file containing just the files from the /sw/lib folder on your Mac. If you don't want to install all of the subfolders under the /sw/lib folder, copy just the .dylib files from /sw/lib to a different folder and package this folder instead of /sw/lib. Also, remember that the GTK libraries installed on your Mac are specific to the processor that you're running. That is, if you want to support both PowerPC and Intel Macs you'll need to create two different .dmg files and instruct your users to install the appropriate one. Note that the GTK libraries only need to be installed once and can be used with any number of Lazarus GUI programs that you develop.